From 5849020c672f73519546c8d166d0e9315b559503 Mon Sep 17 00:00:00 2001 From: John Hall Date: Thu, 3 Oct 2024 07:03:05 -0400 Subject: [PATCH] update frontend --- .Rbuildignore | 10 +- .../Entrepreneurship_support_and_services.png | Bin 0 -> 1243001 bytes ...alent_Development_support_and_services.png | Bin 0 -> 1084427 bytes assets/index-14d1d7ab.js | 1388 +++++++++++++++++ assets/index-1c2d9ba0.css | 1 + assets/index-7d5d06d7.js | 1388 +++++++++++++++++ assets/index-c844f23b.js | 1388 +++++++++++++++++ frontend | 2 +- 8 files changed, 4175 insertions(+), 2 deletions(-) create mode 100644 assets/images/Entrepreneurship_support_and_services.png create mode 100644 assets/images/Tech_Talent_Development_support_and_services.png create mode 100644 assets/index-14d1d7ab.js create mode 100644 assets/index-1c2d9ba0.css create mode 100644 assets/index-7d5d06d7.js create mode 100644 assets/index-c844f23b.js diff --git a/.Rbuildignore b/.Rbuildignore index dbe0a75..0eb3b60 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -4,14 +4,21 @@ ^\.gitignore$ ^\.idea$ ^\.Renviron$ +^\.git$ +^\.github$ +^\.gitignore$ +^\.idea$ +^\.Renviron$ ^\.Rprofile$ ^\.quarto$ ^\.ssh$ ^\.viminfo$ ^\.vscode$ +^.*\.Rproj$ ^\.Rproj\.user$ -^_quarto\.yml$ +^_pkgdown\.yml$ ^_site$ +^_targets$ ^assets$ ^docs$ ^cisco$ @@ -36,6 +43,7 @@ ^frontend\/node_modules\/\.vite$ ^frontend\/node_modules\/\.package-lock\.json$ ^LICENSE\.md$ +^Makefile$ ^node_modules$ ^node_modules\/ [.]qmd$ diff --git a/assets/images/Entrepreneurship_support_and_services.png b/assets/images/Entrepreneurship_support_and_services.png new file mode 100644 index 0000000000000000000000000000000000000000..1ecac07b529be72d0a990a41a33c910b6f3567fb GIT binary patch literal 1243001 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 z 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

sE8UvTKgf?w*|Xb)SKi{W2$?b`nUJAL|UUeTlb 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%0Aq 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

{?lU5<67Y364Ot}IFsXt6IHtDYk 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�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%0D^4^ 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%0ARoZi|Z8b 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 >13`!I#bZ=GCyt>ys5PTQ7N$8$`wVClrH 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

L7nq>40C;jE<393otyqk0vU+BJXHhBs`3 zl$T}|{o*10-07b(kzJs+?iVJM*?Al{fK~`jr1I-SXo%)#bu}@9zBVn#_fC+%borGv zk#ihH9D8(k*@#Mx)gQgF28-#OIJCF;x^0yM`v+Sx!r7lSLZeUC3rBuZG4`xKo3+kV+B;~8sNy@Hx{+|Uv>d-Pf5!nY!=qNlX$KEyVyZ;iLP z1nu-0t~-BgcJ$>lBGR}A99bgEi&$F|S@i}oCFF-LUP4kBos3!bihk=vZm4x_?dOYC z7zcboWOc6)aJWs%8h8U#cp*oj4g4k4^_Ud;Q5SQPh3AHNMA!_Q4t15F{x zFACU|+(_JJ+vBE}R6P4FKg= zv%ycOv%>LI4+YrDSl?&K)Q5Q85XX@6pT39HRj(9~trbO~Ap3nejzuqy)`ue3>qW=0 zrCazz28;?s;W1X0(Af zx!X7=Je9O&q!Ep<@U^jC&816VkO)FADrZqM!R0nA?8|=4uAjH-a)r7~rNG(w7b%j? z&$)m^Ws^+dYvIA+S1IhOxL4Tc&kg7%DsUmDAa}IL$>~p1#zspR!))&{1W|rIQrKhu z#jm6tPm@yByjjbvjjfb=z-F<$OQupI$Xeo_1>xd4cptIyqp~q~5#HqM$*C*(<)?kL zr>I9`1h)7e$D9?`EF1+?E8*-tEqpuTw)OT59Pu%E!DEl8tVRrLB;@e%JcI2U=U|Op z?{8f<p3zyes$BAM|Ky8I33RiM1JrW(= z-UAGs6N(G20%HW6cFym*pqO+#oU+wcZ zBbgj5ppZvxWXncFVU+w~B5Up=2$?dao*8BTQ~&*s3<$)oizveJRTAO&HhL`%*I~hlh~uxiDh~Cb(CB_P+xm%Z#LAXI ziWDC$@Cbo4D!=nU0mVL&%@^E~9Y>K(DT2iWY8%NvM^dY>ui{IBFivvv*w;`q>Yt3bK3PXxNeUrvmfTh* z0HTK-6Sazn-Ly6D>VQ9>oRF*Q?KY6JXOIE8=o)swyNZWZSSt}?62Qj5^}3}8GI@9? zFK`t43{ybmZ+WafPa(~jQt9d#macSa$}0;LTZPNYlJp0@wjM58MAM(6rB#){V372_ zF`duI6uhwZ7iHn);%CYS>5vJ$(iZyUJGJpP* z`_~cQAL8w=3&liP%x6?b{RYF&ia&_SFJPhuK}xc&M%M-qQizcYf|CH|2LgJ74? zA93;J^`cm!2Sc!i+>CA7QHwLliv_E8J)#v&{E_yZ!ThljAg7M3DJg)6e!X?M$noxE zejEP}cE|F-h}10?EX@Olgc22lt5#!*+Y-4JdhOX#c0t=A!dXtwdydH_r;T^zkVAo; z6tQtr^!5knDOkE-Ehrp&@)o+(PsI<<56Ue)Ix;;;L<(p$Q%LlfE9d|Zl}g_#suc6n zctmi2!96u>p;~(@C8;YkJFqJhBTwl=h*`paR9S#{-Q0OMuEiEUM-NufXZ4JEAcOY# zPd=Z&qKryU7R)n0?!GHR3mSn|pqruOWa%IlvZ|G5BOELP-@h>e(7gtDe4wyi{A#x{ z<7hAA$xx7#|Gpdcwg{IhT#yI!0$w?m2o}6tQe~Nn7v!}3oK4Gh8vvC_p3dRp=U>LH zio^cYq(35LK>J+0;Ie8A_uh|r4ts`N&#ip5L9C4Va)d?CB+3?50XD>5YoaipK2Rc< zgpMa0YSpkd0^-=32@n6UTBs&4rU0FryZ^pRb)sD8^ZTA?^&Yt!IoPs+UyVy|R1g9q z4}@(YxIi>Gv|Mu}_c=qx$F6>$b1sh2$Zz~SBfw91Au2Dl#A>+D&!r*v?^9)#qfX>> z;~P-BYk+ynjzpV2R?Ag#g1<5p{*eKkT4tO`1=Lnm4hf%HeGKcc)6`6Wmt# z8Bu&Q`}rJ4aU4ZVR=t$2dBS+V8z>;Z0S&eVA=tfUgjC^$qMFdf3~gxV`^e54V%C6t z*7~L}CJJyxd!^Sw#g6Z}FisW-M*sFtOG=ofUsaNRUl`;~&Sqb-@dL-srtvc-!&NE}Y@>{&ZZuA6&a-jCD#j-UFlFG=4QqpUcXqct)v~WXbt$S-Oq9Lq!-2T$>Moik}B8j zJZ#KGJ(Zz^*C`HN5;{SxG5I{5LW(qAIfU{YYKm`?pMSnHx(&qr!~*{J3&&SdzN>u7 z0yz=99w_KvHJ_7w=P3IE za_`COxcepF_c?JR7`fWVm45K2dQUvLg=ZzrhVCez;ZEk+9C_ptAK(l-!zGE*)1@kY zfvH#jOM%ruJ|;KIjazRhN((ZqQ8tk6k%xA;IHv2Yk9LBVm$J`Dkl*;QiH1MAT~bXT zF*=V==Q+7Cw5J@-`iwK-cJS57#L3s_N)_F==dYN9=F7t^5ok zHIkv(7e;nqHRTqgGf})5bj|@DeteBznszf6fGx6jMJDM)D5MulH5?J>Mhy!q2`%5M z{nEQmYP#?8>o@xhfKA7de?V`n)~gp6L}1u6C`4KXGnxx%vtQ23nFkXmNR;@VNb-sz zKe`ewGA{tZPMXV5LyUt10FCud_Gf?-Fl#I8a40Z4)&uW;%g>JL0x^kIj~L(iqh<@8 z)|JhMQ5ui|j}QbiL^WG)^9H{nX~1x3B2Q1!C_(>HBA-r@5+|n4yZ@64!Cqfin)t%Q ziR}|(=I-#Hqxi-5w2@7r8XfxD3}`-2-2xHRz00%Zj55ZxAah zMlno0izEq^L$7bT>>X z0W1ORE=Qk!71xh;F~qWOjO1NHujbEX|K-@iSy(hbP$Sc*04Scdx?PfT?YiCw%KvD<(sD8ZaXVhn~KEI zh2~6lp`M=&%S}o_b}(CUl_?2X4r318frl|{(od!Pr-Yrv*9d@{^M`fE#C$1ch+k3n zH`n|G9*DV~m?>{!Ezu=YB}_DK2(xP(!SIySNW*1wZhL$g>7H@7S*E05jz#!GPWPkX zy4Ifc^1y`Gs3cWNA)rOv+*Kyvbt5y;@g|i2Fb;?rE6+Oe`Da!zsw-@=x(#Vk1M#2N z=v%1`IKSob3$_vJXpQ^extX<7m3X6XP?<*C(3dEKXIlx@-OanH)+AmO-p1tkPE*aWuR;tGuZ4}L$smARR(fAp}x*XT(H2#+V*>bc~ zPsS&3kc~5;&%iq}jyzk%e z#jNT1XAKG^X$^pKChOmeF$<;*ghZ?4bi8w3SuVf?r+>T6W z733jS3i(VTP}C&r(H6tVtHnlrW0T<|&60l(lnKVNFA@c2+~HJ}x$`K|*BP4ghA~#C z>2Ts{l@9Ut#c14}aj!o>D9bmuv|QqztQwga~%gw%q&XH~PUBKatlQQs#qt_npiK9hGDqzU~z$Kp29Ckcb<& z`^-}I#`HOT@a$nRs9|TOKz>H#GBR7VrNX}})MJm#XU*PX9=^N!HX2%8mS1z6Wp!?A$?fF-&Pf3N^EIh`y z2sYAd&v}RNP+6&zC@YFDDFz@XDNrHefn-Xc-JYYijKM(k%bF9>MqFbwg6}6+#^}p- zNJ;?w8?vAra56#@dfG(b#s8sq+-69Om2Ffyu^V%CXhnF6cy9#fMM77Rq8TfUMg0}h zsoxV}^)3EKgT6kjUi!D^<%L2N%z36qY3bw^^kE zaM{}eMbMuY$&D!0chh$iKOQb;L#hznYbNo=FQZ&jkSRETb{rZ{WPai=jIOprlZ#-e zDJmXAgt%9`EmpD@sqfk+Nnrr87*Ml77zJ5f=>L2b>uc5EqoEbo>CMfe| zY3<`p_}K;nlL`{!m$?CjG$^fC%9~6 zTQ6pr3;l+1;BQL>M0Ux#bGgoxM@6e0I{MPnMLPt2O^`;QVTHV|+wY82^Gn%5iYF<< zMl}WumBU=mzq#x_K}ku2xQVR{UTJb6m`xv@w=|0UKQMM zC@eJ3NPYBXBZ(JI@*Uu0nJKX^)%AqTB-|ja4Ji0g?g}G$&>mDV9=oVF`+}#q{_to` zBhr-0dms7C72V}q*d3!a3tPSNe2drH^N$!Gz|H<6c7dsuGC68v2Gz(G;e(fkKoj~! z64RIC7jV5QPl4NNQxxAb{fUaaKU+A1#Lp}d6}^N;nJ=(E?YiNBYr@g` zZ{MmEQ3#l2GQwX>Lf(JSv8QmqkD#mug{bAK_Mv1t`nGip)NKMg=n`mCaAoOgj)A ze&3<<6j9->6vwMPmK@RAf*3VT1CzMJLet0#6JB%90)>tx^+@D^EMFsN&iRPsbl-EH z(e^z-$O4*La)vp{>R9EFcBIr)<@iFX8Ao$yUb~&m5QzJCdCZxJ9S3Fa64*$AIqMOc zgr_wWeaY$9ZEs+VL%Qk$_MiZbzWS)uYIaC(-EXna7E>~q0CmH&ykkJbot)w5XSJ`X z_{`~hX&Rav9Pt9fxCb81Kf(~#Vh4yrA-@Ip8rWk`6QC$pVFLN^n^tU|nU`en8UK>N zOKo%BZPVG!%mEDiPX#Mb{)R)+8jDy9k@Vrh>Mci{BCB6#Kc@t2&N}s&#UK2tvWxqu zL#@Il!9)yvPo)q}Y`k#gBy&4L+J^qKG1Ckpyog(l;Wu?E(rQ=+wgWWKZRPz*DC8WK z?egH1ZusG68*{8n7GBKVw|s-`Fd?uYCm5NF#IhWlxD_moF8+-@r!$g^QJ^6xps zheW8%MhpNcLkVrTLtpxMMHrw``^aY9RO@-X#yziT<8NpvZpP2UXmz)!Rgt_@FgV8R zk&}rvK|?e3temGq!UVB5p)-%-UnoxTYLjjIHz}#g6&bR^D5oDKwbUdDEXIVqB?Wi5 zoijmIa^>9uh2YRLlwaIN?etZ!gHqAQ1JPD1sUCg?K?3N}siOe8lApH(t}GN4MXzXO zT!C3H_h#M9mmc~-sLIIDT+$RXJxQ_pYVO2u8s^kF^&9l<&U9ri;X>e3@0;VceesvB;|%Lkxlkz0Lsv7c>cY( zYi{cS_u3|&yXl`!?IpC%fD|yCv!}D?@i~c1+A_w~)qXJ43A+ZsPaESVy2*roUv`&8TD9=j|coTT>2t^#>Hvpq-qw*uM}3` zG!s2I3Ws%UxAyY{I?0hZJ!Q_Km3eh#-3HK>&l_%zau4ikg%2u#k`=UFu$y4A1vW7D zVC0Ar+tF?_^atk2bvq|gIKB;ZDnjbW;fup}FMOny(>O=0)TP!r7KY}U2`R!aThDm( zpB*T!91Wq2#3c4O%_e2>{+H??Oom<`8MS5E$v3VqV0%f_()8zlf8;+lHvw_JD_57Q zlZC0mC#8atP}PKr<(W@R#nbwVKj?A^G_@?WeaskFc9oQYiQTix_+|9B+{-$ZiC-$8 zNk~6jXW?l=(Oh_qGg7cS5H&R-g!qyCm;+_8GE!DQIkAT^j$BTu>HMz&)Qg@we#~yk z39b2bws-{v)Vh*QB64{nr^+#C6n(MYDS*D>5;sF?bJ*vE#k})Q-o?z8{?zJ4I4kg{SIG=f)>0VoQ;KW@2Z^ z$xudKJ(!vs%1qRDZLqlegy>5REF<0pE2Wjd3HL6=curpybwJ(w!AM~3#Zhc0CYa4A z^vGB>`~Wp=vnp%)8BUA;VLXSkf_Uesrc?yM9^`uG^JF|&|BJ>LsYV;`rTIwLo*rye zSEsas-Wbw2vcK`IU?|TdHP&hxU*7Ala9?8Zb`5UaTML|?MhUX>*q$n^0@&#Q8Ξ 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

}Vgdx#)v=Gp(FFpLO=n?5;cR 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

17;Ydmxc@rh6PJmv>L=zNa(uL0 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�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

F4q<#;STXb&+1pHIa(#+Z%_-`;h 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�zN2|h}?8c3pQ)WsW@QK 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 literal 0 HcmV?d00001 diff --git a/assets/index-14d1d7ab.js b/assets/index-14d1d7ab.js new file mode 100644 index 0000000..8784286 --- /dev/null +++ b/assets/index-14d1d7ab.js @@ -0,0 +1,1388 @@ +function AM(t,i){for(var l=0;lh[g]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const g of document.querySelectorAll('link[rel="modulepreload"]'))h(g);new MutationObserver(g=>{for(const x of g)if(x.type==="childList")for(const T of x.addedNodes)T.tagName==="LINK"&&T.rel==="modulepreload"&&h(T)}).observe(document,{childList:!0,subtree:!0});function l(g){const x={};return g.integrity&&(x.integrity=g.integrity),g.referrerPolicy&&(x.referrerPolicy=g.referrerPolicy),g.crossOrigin==="use-credentials"?x.credentials="include":g.crossOrigin==="anonymous"?x.credentials="omit":x.credentials="same-origin",x}function h(g){if(g.ep)return;g.ep=!0;const x=l(g);fetch(g.href,x)}})();var Co=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function sv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var f2={exports:{}},Yt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var up=Symbol.for("react.element"),CM=Symbol.for("react.portal"),IM=Symbol.for("react.fragment"),MM=Symbol.for("react.strict_mode"),kM=Symbol.for("react.profiler"),PM=Symbol.for("react.provider"),zM=Symbol.for("react.context"),LM=Symbol.for("react.forward_ref"),RM=Symbol.for("react.suspense"),DM=Symbol.for("react.memo"),OM=Symbol.for("react.lazy"),Jw=Symbol.iterator;function BM(t){return t===null||typeof t!="object"?null:(t=Jw&&t[Jw]||t["@@iterator"],typeof t=="function"?t:null)}var m2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g2=Object.assign,_2={};function Lu(t,i,l){this.props=t,this.context=i,this.refs=_2,this.updater=l||m2}Lu.prototype.isReactComponent={};Lu.prototype.setState=function(t,i){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,i,"setState")};Lu.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function y2(){}y2.prototype=Lu.prototype;function av(t,i,l){this.props=t,this.context=i,this.refs=_2,this.updater=l||m2}var lv=av.prototype=new y2;lv.constructor=av;g2(lv,Lu.prototype);lv.isPureReactComponent=!0;var Qw=Array.isArray,v2=Object.prototype.hasOwnProperty,cv={current:null},x2={key:!0,ref:!0,__self:!0,__source:!0};function w2(t,i,l){var h,g={},x=null,T=null;if(i!=null)for(h in i.ref!==void 0&&(T=i.ref),i.key!==void 0&&(x=""+i.key),i)v2.call(i,h)&&!x2.hasOwnProperty(h)&&(g[h]=i[h]);var s=arguments.length-2;if(s===1)g.children=l;else if(1>>1,dn=Ke[Bt];if(0>>1;Bt<_n;){var ei=2*(Bt+1)-1,Wi=Ke[ei],ti=ei+1,pi=Ke[ti];if(0>g(Wi,xt))tig(pi,Wi)?(Ke[Bt]=pi,Ke[ti]=xt,Bt=ti):(Ke[Bt]=Wi,Ke[ei]=xt,Bt=ei);else if(tig(pi,xt))Ke[Bt]=pi,Ke[ti]=xt,Bt=ti;else break e}}return Tt}function g(Ke,Tt){var xt=Ke.sortIndex-Tt.sortIndex;return xt!==0?xt:Ke.id-Tt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var x=performance;t.unstable_now=function(){return x.now()}}else{var T=Date,s=T.now();t.unstable_now=function(){return T.now()-s}}var M=[],F=[],q=1,X=null,oe=3,Ae=!1,fe=!1,ke=!1,ze=typeof setTimeout=="function"?setTimeout:null,ue=typeof clearTimeout=="function"?clearTimeout:null,re=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function le(Ke){for(var Tt=l(F);Tt!==null;){if(Tt.callback===null)h(F);else if(Tt.startTime<=Ke)h(F),Tt.sortIndex=Tt.expirationTime,i(M,Tt);else break;Tt=l(F)}}function De(Ke){if(ke=!1,le(Ke),!fe)if(l(M)!==null)fe=!0,wr(je);else{var Tt=l(F);Tt!==null&&Or(De,Tt.startTime-Ke)}}function je(Ke,Tt){fe=!1,ke&&(ke=!1,ue(ut),ut=-1),Ae=!0;var xt=oe;try{for(le(Tt),X=l(M);X!==null&&(!(X.expirationTime>Tt)||Ke&&!di());){var Bt=X.callback;if(typeof Bt=="function"){X.callback=null,oe=X.priorityLevel;var dn=Bt(X.expirationTime<=Tt);Tt=t.unstable_now(),typeof dn=="function"?X.callback=dn:X===l(M)&&h(M),le(Tt)}else h(M);X=l(M)}if(X!==null)var _n=!0;else{var ei=l(F);ei!==null&&Or(De,ei.startTime-Tt),_n=!1}return _n}finally{X=null,oe=xt,Ae=!1}}var tt=!1,lt=null,ut=-1,Ve=5,jt=-1;function di(){return!(t.unstable_now()-jtKe||125Bt?(Ke.sortIndex=xt,i(F,Ke),l(M)===null&&Ke===l(F)&&(ke?(ue(ut),ut=-1):ke=!0,Or(De,xt-Bt))):(Ke.sortIndex=dn,i(M,Ke),fe||Ae||(fe=!0,wr(je))),Ke},t.unstable_shouldYield=di,t.unstable_wrapCallback=function(Ke){var Tt=oe;return function(){var xt=oe;oe=Tt;try{return Ke.apply(this,arguments)}finally{oe=xt}}}})(S2);T2.exports=S2;var VM=T2.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var GM=ft,Lr=VM;function it(t){for(var i="https://reactjs.org/docs/error-decoder.html?invariant="+t,l=1;l"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),t0=Object.prototype.hasOwnProperty,$M=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,tb={},nb={};function qM(t){return t0.call(nb,t)?!0:t0.call(tb,t)?!1:$M.test(t)?nb[t]=!0:(tb[t]=!0,!1)}function ZM(t,i,l,h){if(l!==null&&l.type===0)return!1;switch(typeof i){case"function":case"symbol":return!0;case"boolean":return h?!1:l!==null?!l.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function WM(t,i,l,h){if(i===null||typeof i>"u"||ZM(t,i,l,h))return!0;if(h)return!1;if(l!==null)switch(l.type){case 3:return!i;case 4:return i===!1;case 5:return isNaN(i);case 6:return isNaN(i)||1>i}return!1}function tr(t,i,l,h,g,x,T){this.acceptsBooleans=i===2||i===3||i===4,this.attributeName=h,this.attributeNamespace=g,this.mustUseProperty=l,this.propertyName=t,this.type=i,this.sanitizeURL=x,this.removeEmptyString=T}var Pi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Pi[t]=new tr(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var i=t[0];Pi[i]=new tr(i,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Pi[t]=new tr(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Pi[t]=new tr(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Pi[t]=new tr(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Pi[t]=new tr(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Pi[t]=new tr(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Pi[t]=new tr(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Pi[t]=new tr(t,5,!1,t.toLowerCase(),null,!1,!1)});var hv=/[\-:]([a-z])/g;function dv(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Pi[t]=new tr(t,1,!1,t.toLowerCase(),null,!1,!1)});Pi.xlinkHref=new tr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Pi[t]=new tr(t,1,!1,t.toLowerCase(),null,!0,!0)});function pv(t,i,l,h){var g=Pi.hasOwnProperty(i)?Pi[i]:null;(g!==null?g.type!==0:h||!(2s||g[T]!==x[s]){var M=` +`+g[T].replace(" at new "," at ");return t.displayName&&M.includes("")&&(M=M.replace("",t.displayName)),M}while(1<=T&&0<=s);break}}}finally{vy=!1,Error.prepareStackTrace=l}return(t=t?t.displayName||t.name:"")?Id(t):""}function HM(t){switch(t.tag){case 5:return Id(t.type);case 16:return Id("Lazy");case 13:return Id("Suspense");case 19:return Id("SuspenseList");case 0:case 2:case 15:return t=xy(t.type,!1),t;case 11:return t=xy(t.type.render,!1),t;case 1:return t=xy(t.type,!0),t;default:return""}}function o0(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case ru:return"Fragment";case iu:return"Portal";case n0:return"Profiler";case fv:return"StrictMode";case i0:return"Suspense";case r0:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case I2:return(t.displayName||"Context")+".Consumer";case C2:return(t._context.displayName||"Context")+".Provider";case mv:var i=t.render;return t=t.displayName,t||(t=i.displayName||i.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case gv:return i=t.displayName||null,i!==null?i:o0(t.type)||"Memo";case Ea:i=t._payload,t=t._init;try{return o0(t(i))}catch{}}return null}function XM(t){var i=t.type;switch(t.tag){case 24:return"Cache";case 9:return(i.displayName||"Context")+".Consumer";case 10:return(i._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=i.render,t=t.displayName||t.name||"",i.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return o0(i);case 8:return i===fv?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i}return null}function Fa(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function k2(t){var i=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function KM(t){var i=k2(t)?"checked":"value",l=Object.getOwnPropertyDescriptor(t.constructor.prototype,i),h=""+t[i];if(!t.hasOwnProperty(i)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var g=l.get,x=l.set;return Object.defineProperty(t,i,{configurable:!0,get:function(){return g.call(this)},set:function(T){h=""+T,x.call(this,T)}}),Object.defineProperty(t,i,{enumerable:l.enumerable}),{getValue:function(){return h},setValue:function(T){h=""+T},stopTracking:function(){t._valueTracker=null,delete t[i]}}}}function qf(t){t._valueTracker||(t._valueTracker=KM(t))}function P2(t){if(!t)return!1;var i=t._valueTracker;if(!i)return!0;var l=i.getValue(),h="";return t&&(h=k2(t)?t.checked?"true":"false":t.value),t=h,t!==l?(i.setValue(t),!0):!1}function Pm(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function s0(t,i){var l=i.checked;return Xn({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:l??t._wrapperState.initialChecked})}function rb(t,i){var l=i.defaultValue==null?"":i.defaultValue,h=i.checked!=null?i.checked:i.defaultChecked;l=Fa(i.value!=null?i.value:l),t._wrapperState={initialChecked:h,initialValue:l,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function z2(t,i){i=i.checked,i!=null&&pv(t,"checked",i,!1)}function a0(t,i){z2(t,i);var l=Fa(i.value),h=i.type;if(l!=null)h==="number"?(l===0&&t.value===""||t.value!=l)&&(t.value=""+l):t.value!==""+l&&(t.value=""+l);else if(h==="submit"||h==="reset"){t.removeAttribute("value");return}i.hasOwnProperty("value")?l0(t,i.type,l):i.hasOwnProperty("defaultValue")&&l0(t,i.type,Fa(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(t.defaultChecked=!!i.defaultChecked)}function ob(t,i,l){if(i.hasOwnProperty("value")||i.hasOwnProperty("defaultValue")){var h=i.type;if(!(h!=="submit"&&h!=="reset"||i.value!==void 0&&i.value!==null))return;i=""+t._wrapperState.initialValue,l||i===t.value||(t.value=i),t.defaultValue=i}l=t.name,l!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,l!==""&&(t.name=l)}function l0(t,i,l){(i!=="number"||Pm(t.ownerDocument)!==t)&&(l==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+l&&(t.defaultValue=""+l))}var Md=Array.isArray;function gu(t,i,l,h){if(t=t.options,i){i={};for(var g=0;g"+i.valueOf().toString()+"",i=Zf.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;i.firstChild;)t.appendChild(i.firstChild)}});function Gd(t,i){if(i){var l=t.firstChild;if(l&&l===t.lastChild&&l.nodeType===3){l.nodeValue=i;return}}t.textContent=i}var zd={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},YM=["Webkit","ms","Moz","O"];Object.keys(zd).forEach(function(t){YM.forEach(function(i){i=i+t.charAt(0).toUpperCase()+t.substring(1),zd[i]=zd[t]})});function O2(t,i,l){return i==null||typeof i=="boolean"||i===""?"":l||typeof i!="number"||i===0||zd.hasOwnProperty(t)&&zd[t]?(""+i).trim():i+"px"}function B2(t,i){t=t.style;for(var l in i)if(i.hasOwnProperty(l)){var h=l.indexOf("--")===0,g=O2(l,i[l],h);l==="float"&&(l="cssFloat"),h?t.setProperty(l,g):t[l]=g}}var JM=Xn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function h0(t,i){if(i){if(JM[t]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(it(137,t));if(i.dangerouslySetInnerHTML!=null){if(i.children!=null)throw Error(it(60));if(typeof i.dangerouslySetInnerHTML!="object"||!("__html"in i.dangerouslySetInnerHTML))throw Error(it(61))}if(i.style!=null&&typeof i.style!="object")throw Error(it(62))}}function d0(t,i){if(t.indexOf("-")===-1)return typeof i.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var p0=null;function _v(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var f0=null,_u=null,yu=null;function lb(t){if(t=pp(t)){if(typeof f0!="function")throw Error(it(280));var i=t.stateNode;i&&(i=fg(i),f0(t.stateNode,t.type,i))}}function F2(t){_u?yu?yu.push(t):yu=[t]:_u=t}function N2(){if(_u){var t=_u,i=yu;if(yu=_u=null,lb(t),i)for(t=0;t>>=0,t===0?32:31-(ck(t)/uk|0)|0}var Wf=64,Hf=4194304;function kd(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Dm(t,i){var l=t.pendingLanes;if(l===0)return 0;var h=0,g=t.suspendedLanes,x=t.pingedLanes,T=l&268435455;if(T!==0){var s=T&~g;s!==0?h=kd(s):(x&=T,x!==0&&(h=kd(x)))}else T=l&~g,T!==0?h=kd(T):x!==0&&(h=kd(x));if(h===0)return 0;if(i!==0&&i!==h&&!(i&g)&&(g=h&-h,x=i&-i,g>=x||g===16&&(x&4194240)!==0))return i;if(h&4&&(h|=l&16),i=t.entangledLanes,i!==0)for(t=t.entanglements,i&=h;0l;l++)i.push(t);return i}function hp(t,i,l){t.pendingLanes|=i,i!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,i=31-Io(i),t[i]=l}function fk(t,i){var l=t.pendingLanes&~i;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=i,t.mutableReadLanes&=i,t.entangledLanes&=i,i=t.entanglements;var h=t.eventTimes;for(t=t.expirationTimes;0=Rd),_b=String.fromCharCode(32),yb=!1;function oT(t,i){switch(t){case"keyup":return Vk.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function sT(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ou=!1;function $k(t,i){switch(t){case"compositionend":return sT(i);case"keypress":return i.which!==32?null:(yb=!0,_b);case"textInput":return t=i.data,t===_b&&yb?null:t;default:return null}}function qk(t,i){if(ou)return t==="compositionend"||!Sv&&oT(t,i)?(t=iT(),gm=bv=Ca=null,ou=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:l,offset:i-t};t=h}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=bb(l)}}function uT(t,i){return t&&i?t===i?!0:t&&t.nodeType===3?!1:i&&i.nodeType===3?uT(t,i.parentNode):"contains"in t?t.contains(i):t.compareDocumentPosition?!!(t.compareDocumentPosition(i)&16):!1:!1}function hT(){for(var t=window,i=Pm();i instanceof t.HTMLIFrameElement;){try{var l=typeof i.contentWindow.location.href=="string"}catch{l=!1}if(l)t=i.contentWindow;else break;i=Pm(t.document)}return i}function Av(t){var i=t&&t.nodeName&&t.nodeName.toLowerCase();return i&&(i==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||i==="textarea"||t.contentEditable==="true")}function eP(t){var i=hT(),l=t.focusedElem,h=t.selectionRange;if(i!==l&&l&&l.ownerDocument&&uT(l.ownerDocument.documentElement,l)){if(h!==null&&Av(l)){if(i=h.start,t=h.end,t===void 0&&(t=i),"selectionStart"in l)l.selectionStart=i,l.selectionEnd=Math.min(t,l.value.length);else if(t=(i=l.ownerDocument||document)&&i.defaultView||window,t.getSelection){t=t.getSelection();var g=l.textContent.length,x=Math.min(h.start,g);h=h.end===void 0?x:Math.min(h.end,g),!t.extend&&x>h&&(g=h,h=x,x=g),g=Eb(l,x);var T=Eb(l,h);g&&T&&(t.rangeCount!==1||t.anchorNode!==g.node||t.anchorOffset!==g.offset||t.focusNode!==T.node||t.focusOffset!==T.offset)&&(i=i.createRange(),i.setStart(g.node,g.offset),t.removeAllRanges(),x>h?(t.addRange(i),t.extend(T.node,T.offset)):(i.setEnd(T.node,T.offset),t.addRange(i)))}}for(i=[],t=l;t=t.parentNode;)t.nodeType===1&&i.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,su=null,x0=null,Od=null,w0=!1;function Tb(t,i,l){var h=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;w0||su==null||su!==Pm(h)||(h=su,"selectionStart"in h&&Av(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),Od&&Xd(Od,h)||(Od=h,h=Fm(x0,"onSelect"),0cu||(t.current=C0[cu],C0[cu]=null,cu--)}function Mn(t,i){cu++,C0[cu]=t.current,t.current=i}var Na={},qi=Ga(Na),gr=Ga(!1),Zl=Na;function Su(t,i){var l=t.type.contextTypes;if(!l)return Na;var h=t.stateNode;if(h&&h.__reactInternalMemoizedUnmaskedChildContext===i)return h.__reactInternalMemoizedMaskedChildContext;var g={},x;for(x in l)g[x]=i[x];return h&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=i,t.__reactInternalMemoizedMaskedChildContext=g),g}function _r(t){return t=t.childContextTypes,t!=null}function Um(){Rn(gr),Rn(qi)}function Pb(t,i,l){if(qi.current!==Na)throw Error(it(168));Mn(qi,i),Mn(gr,l)}function xT(t,i,l){var h=t.stateNode;if(i=i.childContextTypes,typeof h.getChildContext!="function")return l;h=h.getChildContext();for(var g in h)if(!(g in i))throw Error(it(108,XM(t)||"Unknown",g));return Xn({},l,h)}function jm(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Na,Zl=qi.current,Mn(qi,t),Mn(gr,gr.current),!0}function zb(t,i,l){var h=t.stateNode;if(!h)throw Error(it(169));l?(t=xT(t,i,Zl),h.__reactInternalMemoizedMergedChildContext=t,Rn(gr),Rn(qi),Mn(qi,t)):Rn(gr),Mn(gr,l)}var Ms=null,mg=!1,Ry=!1;function wT(t){Ms===null?Ms=[t]:Ms.push(t)}function dP(t){mg=!0,wT(t)}function $a(){if(!Ry&&Ms!==null){Ry=!0;var t=0,i=bn;try{var l=Ms;for(bn=1;t>=T,g-=T,zs=1<<32-Io(i)+g|l<ut?(Ve=lt,lt=null):Ve=lt.sibling;var jt=oe(ue,lt,le[ut],De);if(jt===null){lt===null&&(lt=Ve);break}t&<&&jt.alternate===null&&i(ue,lt),re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt,lt=Ve}if(ut===le.length)return l(ue,lt),Bn&&Bl(ue,ut),je;if(lt===null){for(;utut?(Ve=lt,lt=null):Ve=lt.sibling;var di=oe(ue,lt,jt.value,De);if(di===null){lt===null&&(lt=Ve);break}t&<&&di.alternate===null&&i(ue,lt),re=x(di,re,ut),tt===null?je=di:tt.sibling=di,tt=di,lt=Ve}if(jt.done)return l(ue,lt),Bn&&Bl(ue,ut),je;if(lt===null){for(;!jt.done;ut++,jt=le.next())jt=X(ue,jt.value,De),jt!==null&&(re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt);return Bn&&Bl(ue,ut),je}for(lt=h(ue,lt);!jt.done;ut++,jt=le.next())jt=Ae(lt,ue,ut,jt.value,De),jt!==null&&(t&&jt.alternate!==null&<.delete(jt.key===null?ut:jt.key),re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt);return t&<.forEach(function(St){return i(ue,St)}),Bn&&Bl(ue,ut),je}function ze(ue,re,le,De){if(typeof le=="object"&&le!==null&&le.type===ru&&le.key===null&&(le=le.props.children),typeof le=="object"&&le!==null){switch(le.$$typeof){case $f:e:{for(var je=le.key,tt=re;tt!==null;){if(tt.key===je){if(je=le.type,je===ru){if(tt.tag===7){l(ue,tt.sibling),re=g(tt,le.props.children),re.return=ue,ue=re;break e}}else if(tt.elementType===je||typeof je=="object"&&je!==null&&je.$$typeof===Ea&&Db(je)===tt.type){l(ue,tt.sibling),re=g(tt,le.props),re.ref=Ed(ue,tt,le),re.return=ue,ue=re;break e}l(ue,tt);break}else i(ue,tt);tt=tt.sibling}le.type===ru?(re=ql(le.props.children,ue.mode,De,le.key),re.return=ue,ue=re):(De=Tm(le.type,le.key,le.props,null,ue.mode,De),De.ref=Ed(ue,re,le),De.return=ue,ue=De)}return T(ue);case iu:e:{for(tt=le.key;re!==null;){if(re.key===tt)if(re.tag===4&&re.stateNode.containerInfo===le.containerInfo&&re.stateNode.implementation===le.implementation){l(ue,re.sibling),re=g(re,le.children||[]),re.return=ue,ue=re;break e}else{l(ue,re);break}else i(ue,re);re=re.sibling}re=Vy(le,ue.mode,De),re.return=ue,ue=re}return T(ue);case Ea:return tt=le._init,ze(ue,re,tt(le._payload),De)}if(Md(le))return fe(ue,re,le,De);if(yd(le))return ke(ue,re,le,De);tm(ue,le)}return typeof le=="string"&&le!==""||typeof le=="number"?(le=""+le,re!==null&&re.tag===6?(l(ue,re.sibling),re=g(re,le),re.return=ue,ue=re):(l(ue,re),re=jy(le,ue.mode,De),re.return=ue,ue=re),T(ue)):l(ue,re)}return ze}var Cu=ST(!0),AT=ST(!1),$m=Ga(null),qm=null,du=null,kv=null;function Pv(){kv=du=qm=null}function zv(t){var i=$m.current;Rn($m),t._currentValue=i}function k0(t,i,l){for(;t!==null;){var h=t.alternate;if((t.childLanes&i)!==i?(t.childLanes|=i,h!==null&&(h.childLanes|=i)):h!==null&&(h.childLanes&i)!==i&&(h.childLanes|=i),t===l)break;t=t.return}}function xu(t,i){qm=t,kv=du=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&i&&(mr=!0),t.firstContext=null)}function Qr(t){var i=t._currentValue;if(kv!==t)if(t={context:t,memoizedValue:i,next:null},du===null){if(qm===null)throw Error(it(308));du=t,qm.dependencies={lanes:0,firstContext:t}}else du=du.next=t;return i}var jl=null;function Lv(t){jl===null?jl=[t]:jl.push(t)}function CT(t,i,l,h){var g=i.interleaved;return g===null?(l.next=l,Lv(i)):(l.next=g.next,g.next=l),i.interleaved=l,Bs(t,h)}function Bs(t,i){t.lanes|=i;var l=t.alternate;for(l!==null&&(l.lanes|=i),l=t,t=t.return;t!==null;)t.childLanes|=i,l=t.alternate,l!==null&&(l.childLanes|=i),l=t,t=t.return;return l.tag===3?l.stateNode:null}var Ta=!1;function Rv(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function IT(t,i){t=t.updateQueue,i.updateQueue===t&&(i.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Rs(t,i){return{eventTime:t,lane:i,tag:0,payload:null,callback:null,next:null}}function La(t,i,l){var h=t.updateQueue;if(h===null)return null;if(h=h.shared,nn&2){var g=h.pending;return g===null?i.next=i:(i.next=g.next,g.next=i),h.pending=i,Bs(t,l)}return g=h.interleaved,g===null?(i.next=i,Lv(h)):(i.next=g.next,g.next=i),h.interleaved=i,Bs(t,l)}function ym(t,i,l){if(i=i.updateQueue,i!==null&&(i=i.shared,(l&4194240)!==0)){var h=i.lanes;h&=t.pendingLanes,l|=h,i.lanes=l,vv(t,l)}}function Ob(t,i){var l=t.updateQueue,h=t.alternate;if(h!==null&&(h=h.updateQueue,l===h)){var g=null,x=null;if(l=l.firstBaseUpdate,l!==null){do{var T={eventTime:l.eventTime,lane:l.lane,tag:l.tag,payload:l.payload,callback:l.callback,next:null};x===null?g=x=T:x=x.next=T,l=l.next}while(l!==null);x===null?g=x=i:x=x.next=i}else g=x=i;l={baseState:h.baseState,firstBaseUpdate:g,lastBaseUpdate:x,shared:h.shared,effects:h.effects},t.updateQueue=l;return}t=l.lastBaseUpdate,t===null?l.firstBaseUpdate=i:t.next=i,l.lastBaseUpdate=i}function Zm(t,i,l,h){var g=t.updateQueue;Ta=!1;var x=g.firstBaseUpdate,T=g.lastBaseUpdate,s=g.shared.pending;if(s!==null){g.shared.pending=null;var M=s,F=M.next;M.next=null,T===null?x=F:T.next=F,T=M;var q=t.alternate;q!==null&&(q=q.updateQueue,s=q.lastBaseUpdate,s!==T&&(s===null?q.firstBaseUpdate=F:s.next=F,q.lastBaseUpdate=M))}if(x!==null){var X=g.baseState;T=0,q=F=M=null,s=x;do{var oe=s.lane,Ae=s.eventTime;if((h&oe)===oe){q!==null&&(q=q.next={eventTime:Ae,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var fe=t,ke=s;switch(oe=i,Ae=l,ke.tag){case 1:if(fe=ke.payload,typeof fe=="function"){X=fe.call(Ae,X,oe);break e}X=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=ke.payload,oe=typeof fe=="function"?fe.call(Ae,X,oe):fe,oe==null)break e;X=Xn({},X,oe);break e;case 2:Ta=!0}}s.callback!==null&&s.lane!==0&&(t.flags|=64,oe=g.effects,oe===null?g.effects=[s]:oe.push(s))}else Ae={eventTime:Ae,lane:oe,tag:s.tag,payload:s.payload,callback:s.callback,next:null},q===null?(F=q=Ae,M=X):q=q.next=Ae,T|=oe;if(s=s.next,s===null){if(s=g.shared.pending,s===null)break;oe=s,s=oe.next,oe.next=null,g.lastBaseUpdate=oe,g.shared.pending=null}}while(1);if(q===null&&(M=X),g.baseState=M,g.firstBaseUpdate=F,g.lastBaseUpdate=q,i=g.shared.interleaved,i!==null){g=i;do T|=g.lane,g=g.next;while(g!==i)}else x===null&&(g.shared.lanes=0);Xl|=T,t.lanes=T,t.memoizedState=X}}function Bb(t,i,l){if(t=i.effects,i.effects=null,t!==null)for(i=0;il?l:4,t(!0);var h=Oy.transition;Oy.transition={};try{t(!1),i()}finally{bn=l,Oy.transition=h}}function qT(){return eo().memoizedState}function gP(t,i,l){var h=Da(t);if(l={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null},ZT(t))WT(i,l);else if(l=CT(t,i,l,h),l!==null){var g=Qi();Mo(l,t,h,g),HT(l,i,h)}}function _P(t,i,l){var h=Da(t),g={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null};if(ZT(t))WT(i,g);else{var x=t.alternate;if(t.lanes===0&&(x===null||x.lanes===0)&&(x=i.lastRenderedReducer,x!==null))try{var T=i.lastRenderedState,s=x(T,l);if(g.hasEagerState=!0,g.eagerState=s,zo(s,T)){var M=i.interleaved;M===null?(g.next=g,Lv(i)):(g.next=M.next,M.next=g),i.interleaved=g;return}}catch{}finally{}l=CT(t,i,g,h),l!==null&&(g=Qi(),Mo(l,t,h,g),HT(l,i,h))}}function ZT(t){var i=t.alternate;return t===Hn||i!==null&&i===Hn}function WT(t,i){Bd=Hm=!0;var l=t.pending;l===null?i.next=i:(i.next=l.next,l.next=i),t.pending=i}function HT(t,i,l){if(l&4194240){var h=i.lanes;h&=t.pendingLanes,l|=h,i.lanes=l,vv(t,l)}}var Xm={readContext:Qr,useCallback:Vi,useContext:Vi,useEffect:Vi,useImperativeHandle:Vi,useInsertionEffect:Vi,useLayoutEffect:Vi,useMemo:Vi,useReducer:Vi,useRef:Vi,useState:Vi,useDebugValue:Vi,useDeferredValue:Vi,useTransition:Vi,useMutableSource:Vi,useSyncExternalStore:Vi,useId:Vi,unstable_isNewReconciler:!1},yP={readContext:Qr,useCallback:function(t,i){return Qo().memoizedState=[t,i===void 0?null:i],t},useContext:Qr,useEffect:Nb,useImperativeHandle:function(t,i,l){return l=l!=null?l.concat([t]):null,xm(4194308,4,UT.bind(null,i,t),l)},useLayoutEffect:function(t,i){return xm(4194308,4,t,i)},useInsertionEffect:function(t,i){return xm(4,2,t,i)},useMemo:function(t,i){var l=Qo();return i=i===void 0?null:i,t=t(),l.memoizedState=[t,i],t},useReducer:function(t,i,l){var h=Qo();return i=l!==void 0?l(i):i,h.memoizedState=h.baseState=i,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},h.queue=t,t=t.dispatch=gP.bind(null,Hn,t),[h.memoizedState,t]},useRef:function(t){var i=Qo();return t={current:t},i.memoizedState=t},useState:Fb,useDebugValue:Vv,useDeferredValue:function(t){return Qo().memoizedState=t},useTransition:function(){var t=Fb(!1),i=t[0];return t=mP.bind(null,t[1]),Qo().memoizedState=t,[i,t]},useMutableSource:function(){},useSyncExternalStore:function(t,i,l){var h=Hn,g=Qo();if(Bn){if(l===void 0)throw Error(it(407));l=l()}else{if(l=i(),Si===null)throw Error(it(349));Hl&30||zT(h,i,l)}g.memoizedState=l;var x={value:l,getSnapshot:i};return g.queue=x,Nb(RT.bind(null,h,x,t),[t]),h.flags|=2048,ip(9,LT.bind(null,h,x,l,i),void 0,null),l},useId:function(){var t=Qo(),i=Si.identifierPrefix;if(Bn){var l=Ls,h=zs;l=(h&~(1<<32-Io(h)-1)).toString(32)+l,i=":"+i+"R"+l,l=tp++,0<\/script>",t=t.removeChild(t.firstChild)):typeof h.is=="string"?t=T.createElement(l,{is:h.is}):(t=T.createElement(l),l==="select"&&(T=t,h.multiple?T.multiple=!0:h.size&&(T.size=h.size))):t=T.createElementNS(t,l),t[es]=i,t[Jd]=h,rS(t,i,!1,!1),i.stateNode=t;e:{switch(T=d0(l,h),l){case"dialog":Ln("cancel",t),Ln("close",t),g=h;break;case"iframe":case"object":case"embed":Ln("load",t),g=h;break;case"video":case"audio":for(g=0;gku&&(i.flags|=128,h=!0,Td(x,!1),i.lanes=4194304)}else{if(!h)if(t=Wm(T),t!==null){if(i.flags|=128,h=!0,l=t.updateQueue,l!==null&&(i.updateQueue=l,i.flags|=4),Td(x,!0),x.tail===null&&x.tailMode==="hidden"&&!T.alternate&&!Bn)return Gi(i),null}else 2*ni()-x.renderingStartTime>ku&&l!==1073741824&&(i.flags|=128,h=!0,Td(x,!1),i.lanes=4194304);x.isBackwards?(T.sibling=i.child,i.child=T):(l=x.last,l!==null?l.sibling=T:i.child=T,x.last=T)}return x.tail!==null?(i=x.tail,x.rendering=i,x.tail=i.sibling,x.renderingStartTime=ni(),i.sibling=null,l=Wn.current,Mn(Wn,h?l&1|2:l&1),i):(Gi(i),null);case 22:case 23:return Hv(),h=i.memoizedState!==null,t!==null&&t.memoizedState!==null!==h&&(i.flags|=8192),h&&i.mode&1?Mr&1073741824&&(Gi(i),i.subtreeFlags&6&&(i.flags|=8192)):Gi(i),null;case 24:return null;case 25:return null}throw Error(it(156,i.tag))}function AP(t,i){switch(Iv(i),i.tag){case 1:return _r(i.type)&&Um(),t=i.flags,t&65536?(i.flags=t&-65537|128,i):null;case 3:return Iu(),Rn(gr),Rn(qi),Bv(),t=i.flags,t&65536&&!(t&128)?(i.flags=t&-65537|128,i):null;case 5:return Ov(i),null;case 13:if(Rn(Wn),t=i.memoizedState,t!==null&&t.dehydrated!==null){if(i.alternate===null)throw Error(it(340));Au()}return t=i.flags,t&65536?(i.flags=t&-65537|128,i):null;case 19:return Rn(Wn),null;case 4:return Iu(),null;case 10:return zv(i.type._context),null;case 22:case 23:return Hv(),null;case 24:return null;default:return null}}var im=!1,$i=!1,CP=typeof WeakSet=="function"?WeakSet:Set,yt=null;function pu(t,i){var l=t.ref;if(l!==null)if(typeof l=="function")try{l(null)}catch(h){Qn(t,i,h)}else l.current=null}function N0(t,i,l){try{l()}catch(h){Qn(t,i,h)}}var Kb=!1;function IP(t,i){if(b0=Om,t=hT(),Av(t)){if("selectionStart"in t)var l={start:t.selectionStart,end:t.selectionEnd};else e:{l=(l=t.ownerDocument)&&l.defaultView||window;var h=l.getSelection&&l.getSelection();if(h&&h.rangeCount!==0){l=h.anchorNode;var g=h.anchorOffset,x=h.focusNode;h=h.focusOffset;try{l.nodeType,x.nodeType}catch{l=null;break e}var T=0,s=-1,M=-1,F=0,q=0,X=t,oe=null;t:for(;;){for(var Ae;X!==l||g!==0&&X.nodeType!==3||(s=T+g),X!==x||h!==0&&X.nodeType!==3||(M=T+h),X.nodeType===3&&(T+=X.nodeValue.length),(Ae=X.firstChild)!==null;)oe=X,X=Ae;for(;;){if(X===t)break t;if(oe===l&&++F===g&&(s=T),oe===x&&++q===h&&(M=T),(Ae=X.nextSibling)!==null)break;X=oe,oe=X.parentNode}X=Ae}l=s===-1||M===-1?null:{start:s,end:M}}else l=null}l=l||{start:0,end:0}}else l=null;for(E0={focusedElem:t,selectionRange:l},Om=!1,yt=i;yt!==null;)if(i=yt,t=i.child,(i.subtreeFlags&1028)!==0&&t!==null)t.return=i,yt=t;else for(;yt!==null;){i=yt;try{var fe=i.alternate;if(i.flags&1024)switch(i.tag){case 0:case 11:case 15:break;case 1:if(fe!==null){var ke=fe.memoizedProps,ze=fe.memoizedState,ue=i.stateNode,re=ue.getSnapshotBeforeUpdate(i.elementType===i.type?ke:To(i.type,ke),ze);ue.__reactInternalSnapshotBeforeUpdate=re}break;case 3:var le=i.stateNode.containerInfo;le.nodeType===1?le.textContent="":le.nodeType===9&&le.documentElement&&le.removeChild(le.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(it(163))}}catch(De){Qn(i,i.return,De)}if(t=i.sibling,t!==null){t.return=i.return,yt=t;break}yt=i.return}return fe=Kb,Kb=!1,fe}function Fd(t,i,l){var h=i.updateQueue;if(h=h!==null?h.lastEffect:null,h!==null){var g=h=h.next;do{if((g.tag&t)===t){var x=g.destroy;g.destroy=void 0,x!==void 0&&N0(i,l,x)}g=g.next}while(g!==h)}}function yg(t,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var l=i=i.next;do{if((l.tag&t)===t){var h=l.create;l.destroy=h()}l=l.next}while(l!==i)}}function U0(t){var i=t.ref;if(i!==null){var l=t.stateNode;switch(t.tag){case 5:t=l;break;default:t=l}typeof i=="function"?i(t):i.current=t}}function aS(t){var i=t.alternate;i!==null&&(t.alternate=null,aS(i)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(i=t.stateNode,i!==null&&(delete i[es],delete i[Jd],delete i[A0],delete i[uP],delete i[hP])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function lS(t){return t.tag===5||t.tag===3||t.tag===4}function Yb(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||lS(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function j0(t,i,l){var h=t.tag;if(h===5||h===6)t=t.stateNode,i?l.nodeType===8?l.parentNode.insertBefore(t,i):l.insertBefore(t,i):(l.nodeType===8?(i=l.parentNode,i.insertBefore(t,l)):(i=l,i.appendChild(t)),l=l._reactRootContainer,l!=null||i.onclick!==null||(i.onclick=Nm));else if(h!==4&&(t=t.child,t!==null))for(j0(t,i,l),t=t.sibling;t!==null;)j0(t,i,l),t=t.sibling}function V0(t,i,l){var h=t.tag;if(h===5||h===6)t=t.stateNode,i?l.insertBefore(t,i):l.appendChild(t);else if(h!==4&&(t=t.child,t!==null))for(V0(t,i,l),t=t.sibling;t!==null;)V0(t,i,l),t=t.sibling}var Mi=null,So=!1;function xa(t,i,l){for(l=l.child;l!==null;)cS(t,i,l),l=l.sibling}function cS(t,i,l){if(ts&&typeof ts.onCommitFiberUnmount=="function")try{ts.onCommitFiberUnmount(ug,l)}catch{}switch(l.tag){case 5:$i||pu(l,i);case 6:var h=Mi,g=So;Mi=null,xa(t,i,l),Mi=h,So=g,Mi!==null&&(So?(t=Mi,l=l.stateNode,t.nodeType===8?t.parentNode.removeChild(l):t.removeChild(l)):Mi.removeChild(l.stateNode));break;case 18:Mi!==null&&(So?(t=Mi,l=l.stateNode,t.nodeType===8?Ly(t.parentNode,l):t.nodeType===1&&Ly(t,l),Wd(t)):Ly(Mi,l.stateNode));break;case 4:h=Mi,g=So,Mi=l.stateNode.containerInfo,So=!0,xa(t,i,l),Mi=h,So=g;break;case 0:case 11:case 14:case 15:if(!$i&&(h=l.updateQueue,h!==null&&(h=h.lastEffect,h!==null))){g=h=h.next;do{var x=g,T=x.destroy;x=x.tag,T!==void 0&&(x&2||x&4)&&N0(l,i,T),g=g.next}while(g!==h)}xa(t,i,l);break;case 1:if(!$i&&(pu(l,i),h=l.stateNode,typeof h.componentWillUnmount=="function"))try{h.props=l.memoizedProps,h.state=l.memoizedState,h.componentWillUnmount()}catch(s){Qn(l,i,s)}xa(t,i,l);break;case 21:xa(t,i,l);break;case 22:l.mode&1?($i=(h=$i)||l.memoizedState!==null,xa(t,i,l),$i=h):xa(t,i,l);break;default:xa(t,i,l)}}function Jb(t){var i=t.updateQueue;if(i!==null){t.updateQueue=null;var l=t.stateNode;l===null&&(l=t.stateNode=new CP),i.forEach(function(h){var g=BP.bind(null,t,h);l.has(h)||(l.add(h),h.then(g,g))})}}function Eo(t,i){var l=i.deletions;if(l!==null)for(var h=0;hg&&(g=T),h&=~x}if(h=g,h=ni()-h,h=(120>h?120:480>h?480:1080>h?1080:1920>h?1920:3e3>h?3e3:4320>h?4320:1960*kP(h/1960))-h,10t?16:t,Ia===null)var h=!1;else{if(t=Ia,Ia=null,Jm=0,nn&6)throw Error(it(331));var g=nn;for(nn|=4,yt=t.current;yt!==null;){var x=yt,T=x.child;if(yt.flags&16){var s=x.deletions;if(s!==null){for(var M=0;Mni()-Zv?$l(t,0):qv|=l),yr(t,i)}function _S(t,i){i===0&&(t.mode&1?(i=Hf,Hf<<=1,!(Hf&130023424)&&(Hf=4194304)):i=1);var l=Qi();t=Bs(t,i),t!==null&&(hp(t,i,l),yr(t,l))}function OP(t){var i=t.memoizedState,l=0;i!==null&&(l=i.retryLane),_S(t,l)}function BP(t,i){var l=0;switch(t.tag){case 13:var h=t.stateNode,g=t.memoizedState;g!==null&&(l=g.retryLane);break;case 19:h=t.stateNode;break;default:throw Error(it(314))}h!==null&&h.delete(i),_S(t,l)}var yS;yS=function(t,i,l){if(t!==null)if(t.memoizedProps!==i.pendingProps||gr.current)mr=!0;else{if(!(t.lanes&l)&&!(i.flags&128))return mr=!1,TP(t,i,l);mr=!!(t.flags&131072)}else mr=!1,Bn&&i.flags&1048576&&bT(i,Gm,i.index);switch(i.lanes=0,i.tag){case 2:var h=i.type;wm(t,i),t=i.pendingProps;var g=Su(i,qi.current);xu(i,l),g=Nv(null,i,h,t,g,l);var x=Uv();return i.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,_r(h)?(x=!0,jm(i)):x=!1,i.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Rv(i),g.updater=_g,i.stateNode=g,g._reactInternals=i,z0(i,h,t,l),i=D0(null,i,h,!0,x,l)):(i.tag=0,Bn&&x&&Cv(i),Ji(null,i,g,l),i=i.child),i;case 16:h=i.elementType;e:{switch(wm(t,i),t=i.pendingProps,g=h._init,h=g(h._payload),i.type=h,g=i.tag=NP(h),t=To(h,t),g){case 0:i=R0(null,i,h,t,l);break e;case 1:i=Wb(null,i,h,t,l);break e;case 11:i=qb(null,i,h,t,l);break e;case 14:i=Zb(null,i,h,To(h.type,t),l);break e}throw Error(it(306,h,""))}return i;case 0:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),R0(t,i,h,g,l);case 1:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),Wb(t,i,h,g,l);case 3:e:{if(tS(i),t===null)throw Error(it(387));h=i.pendingProps,x=i.memoizedState,g=x.element,IT(t,i),Zm(i,h,null,l);var T=i.memoizedState;if(h=T.element,x.isDehydrated)if(x={element:h,isDehydrated:!1,cache:T.cache,pendingSuspenseBoundaries:T.pendingSuspenseBoundaries,transitions:T.transitions},i.updateQueue.baseState=x,i.memoizedState=x,i.flags&256){g=Mu(Error(it(423)),i),i=Hb(t,i,h,l,g);break e}else if(h!==g){g=Mu(Error(it(424)),i),i=Hb(t,i,h,l,g);break e}else for(kr=za(i.stateNode.containerInfo.firstChild),Pr=i,Bn=!0,Ao=null,l=AT(i,null,h,l),i.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling;else{if(Au(),h===g){i=Fs(t,i,l);break e}Ji(t,i,h,l)}i=i.child}return i;case 5:return MT(i),t===null&&M0(i),h=i.type,g=i.pendingProps,x=t!==null?t.memoizedProps:null,T=g.children,T0(h,g)?T=null:x!==null&&T0(h,x)&&(i.flags|=32),eS(t,i),Ji(t,i,T,l),i.child;case 6:return t===null&&M0(i),null;case 13:return nS(t,i,l);case 4:return Dv(i,i.stateNode.containerInfo),h=i.pendingProps,t===null?i.child=Cu(i,null,h,l):Ji(t,i,h,l),i.child;case 11:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),qb(t,i,h,g,l);case 7:return Ji(t,i,i.pendingProps,l),i.child;case 8:return Ji(t,i,i.pendingProps.children,l),i.child;case 12:return Ji(t,i,i.pendingProps.children,l),i.child;case 10:e:{if(h=i.type._context,g=i.pendingProps,x=i.memoizedProps,T=g.value,Mn($m,h._currentValue),h._currentValue=T,x!==null)if(zo(x.value,T)){if(x.children===g.children&&!gr.current){i=Fs(t,i,l);break e}}else for(x=i.child,x!==null&&(x.return=i);x!==null;){var s=x.dependencies;if(s!==null){T=x.child;for(var M=s.firstContext;M!==null;){if(M.context===h){if(x.tag===1){M=Rs(-1,l&-l),M.tag=2;var F=x.updateQueue;if(F!==null){F=F.shared;var q=F.pending;q===null?M.next=M:(M.next=q.next,q.next=M),F.pending=M}}x.lanes|=l,M=x.alternate,M!==null&&(M.lanes|=l),k0(x.return,l,i),s.lanes|=l;break}M=M.next}}else if(x.tag===10)T=x.type===i.type?null:x.child;else if(x.tag===18){if(T=x.return,T===null)throw Error(it(341));T.lanes|=l,s=T.alternate,s!==null&&(s.lanes|=l),k0(T,l,i),T=x.sibling}else T=x.child;if(T!==null)T.return=x;else for(T=x;T!==null;){if(T===i){T=null;break}if(x=T.sibling,x!==null){x.return=T.return,T=x;break}T=T.return}x=T}Ji(t,i,g.children,l),i=i.child}return i;case 9:return g=i.type,h=i.pendingProps.children,xu(i,l),g=Qr(g),h=h(g),i.flags|=1,Ji(t,i,h,l),i.child;case 14:return h=i.type,g=To(h,i.pendingProps),g=To(h.type,g),Zb(t,i,h,g,l);case 15:return JT(t,i,i.type,i.pendingProps,l);case 17:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),wm(t,i),i.tag=1,_r(h)?(t=!0,jm(i)):t=!1,xu(i,l),XT(i,h,g),z0(i,h,g,l),D0(null,i,h,!0,t,l);case 19:return iS(t,i,l);case 22:return QT(t,i,l)}throw Error(it(156,i.tag))};function vS(t,i){return Z2(t,i)}function FP(t,i,l,h){this.tag=t,this.key=l,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=h,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yr(t,i,l,h){return new FP(t,i,l,h)}function Kv(t){return t=t.prototype,!(!t||!t.isReactComponent)}function NP(t){if(typeof t=="function")return Kv(t)?1:0;if(t!=null){if(t=t.$$typeof,t===mv)return 11;if(t===gv)return 14}return 2}function Oa(t,i){var l=t.alternate;return l===null?(l=Yr(t.tag,i,t.key,t.mode),l.elementType=t.elementType,l.type=t.type,l.stateNode=t.stateNode,l.alternate=t,t.alternate=l):(l.pendingProps=i,l.type=t.type,l.flags=0,l.subtreeFlags=0,l.deletions=null),l.flags=t.flags&14680064,l.childLanes=t.childLanes,l.lanes=t.lanes,l.child=t.child,l.memoizedProps=t.memoizedProps,l.memoizedState=t.memoizedState,l.updateQueue=t.updateQueue,i=t.dependencies,l.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},l.sibling=t.sibling,l.index=t.index,l.ref=t.ref,l}function Tm(t,i,l,h,g,x){var T=2;if(h=t,typeof t=="function")Kv(t)&&(T=1);else if(typeof t=="string")T=5;else e:switch(t){case ru:return ql(l.children,g,x,i);case fv:T=8,g|=8;break;case n0:return t=Yr(12,l,i,g|2),t.elementType=n0,t.lanes=x,t;case i0:return t=Yr(13,l,i,g),t.elementType=i0,t.lanes=x,t;case r0:return t=Yr(19,l,i,g),t.elementType=r0,t.lanes=x,t;case M2:return xg(l,g,x,i);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case C2:T=10;break e;case I2:T=9;break e;case mv:T=11;break e;case gv:T=14;break e;case Ea:T=16,h=null;break e}throw Error(it(130,t==null?t:typeof t,""))}return i=Yr(T,l,i,g),i.elementType=t,i.type=h,i.lanes=x,i}function ql(t,i,l,h){return t=Yr(7,t,h,i),t.lanes=l,t}function xg(t,i,l,h){return t=Yr(22,t,h,i),t.elementType=M2,t.lanes=l,t.stateNode={isHidden:!1},t}function jy(t,i,l){return t=Yr(6,t,null,i),t.lanes=l,t}function Vy(t,i,l){return i=Yr(4,t.children!==null?t.children:[],t.key,i),i.lanes=l,i.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},i}function UP(t,i,l,h,g){this.tag=i,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=by(0),this.expirationTimes=by(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=by(0),this.identifierPrefix=h,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Yv(t,i,l,h,g,x,T,s,M){return t=new UP(t,i,l,s,M),i===1?(i=1,x===!0&&(i|=8)):i=0,x=Yr(3,null,null,i),t.current=x,x.stateNode=t,x.memoizedState={element:h,isDehydrated:l,cache:null,transitions:null,pendingSuspenseBoundaries:null},Rv(x),t}function jP(t,i,l){var h=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(ES)}catch(t){console.error(t)}}ES(),E2.exports=Rr;var tx=E2.exports,TS,sE=tx;TS=sE.createRoot,sE.hydrateRoot;const ZP="Logging",WP="NoHubcallbackProvidedException";var Ir;(function(t){t.DEBUG="DEBUG",t.ERROR="ERROR",t.INFO="INFO",t.WARN="WARN",t.VERBOSE="VERBOSE",t.NONE="NONE"})(Ir||(Ir={}));const aE={VERBOSE:1,DEBUG:2,INFO:3,WARN:4,ERROR:5,NONE:6};class ko{constructor(i,l=Ir.WARN){this.name=i,this.level=l,this._pluggables=[]}_padding(i){return i<10?"0"+i:""+i}_ts(){const i=new Date;return[this._padding(i.getMinutes()),this._padding(i.getSeconds())].join(":")+"."+i.getMilliseconds()}configure(i){return i?(this._config=i,this._config):this._config}_log(i,...l){let h=this.level;ko.LOG_LEVEL&&(h=ko.LOG_LEVEL),typeof window<"u"&&window.LOG_LEVEL&&(h=window.LOG_LEVEL);const g=aE[h];if(!(aE[i]>=g))return;let T=console.log.bind(console);i===Ir.ERROR&&console.error&&(T=console.error.bind(console)),i===Ir.WARN&&console.warn&&(T=console.warn.bind(console)),ko.BIND_ALL_LOG_LEVELS&&(i===Ir.INFO&&console.info&&(T=console.info.bind(console)),i===Ir.DEBUG&&console.debug&&(T=console.debug.bind(console)));const s=`[${i}] ${this._ts()} ${this.name}`;let M="";if(l.length===1&&typeof l[0]=="string")M=`${s} - ${l[0]}`,T(M);else if(l.length===1)M=`${s} ${l[0]}`,T(s,l[0]);else if(typeof l[0]=="string"){let F=l.slice(1);F.length===1&&(F=F[0]),M=`${s} - ${l[0]} ${F}`,T(`${s} - ${l[0]}`,F)}else M=`${s} ${l}`,T(s,l);for(const F of this._pluggables){const q={message:M,timestamp:Date.now()};F.pushLogs([q])}}log(...i){this._log(Ir.INFO,...i)}info(...i){this._log(Ir.INFO,...i)}warn(...i){this._log(Ir.WARN,...i)}error(...i){this._log(Ir.ERROR,...i)}debug(...i){this._log(Ir.DEBUG,...i)}verbose(...i){this._log(Ir.VERBOSE,...i)}addPluggable(i){i&&i.getCategoryName()===ZP&&(this._pluggables.push(i),i.configure(this._config))}listPluggables(){return this._pluggables}}ko.LOG_LEVEL=null;ko.BIND_ALL_LOG_LEVELS=!1;class is extends Error{constructor({message:i,name:l,recoverySuggestion:h,underlyingError:g}){super(i),this.name=l,this.underlyingError=g,this.recoverySuggestion=h,this.constructor=is,Object.setPrototypeOf(this,is.prototype)}}var op;(function(t){t.NoEndpointId="NoEndpointId",t.PlatformNotSupported="PlatformNotSupported",t.Unknown="Unknown",t.NetworkError="NetworkError"})(op||(op={}));const SS=(t,i=is)=>(l,h,g)=>{const{message:x,recoverySuggestion:T}=t[h];if(!l)throw new i({name:h,message:g?`${x} ${g}`:x,recoverySuggestion:T})},tg=typeof Symbol<"u"?Symbol("amplify_default"):"@@amplify_default",Ad=new ko("Hub");class HP{constructor(i){this.listeners=new Map,this.protectedChannels=["core","auth","api","analytics","interactions","pubsub","storage","ui","xr"],this.name=i}_remove(i,l){const h=this.listeners.get(i);if(!h){Ad.warn(`No listeners for ${i}`);return}this.listeners.set(i,[...h.filter(({callback:g})=>g!==l)])}dispatch(i,l,h,g){typeof i=="string"&&this.protectedChannels.indexOf(i)>-1&&(g===tg||Ad.warn(`WARNING: ${i} is protected and dispatching on it can have unintended consequences`));const x={channel:i,payload:{...l},source:h,patternInfo:[]};try{this._toListeners(x)}catch(T){Ad.error(T)}}listen(i,l,h="noname"){let g;if(typeof l!="function")throw new is({name:WP,message:"No callback supplied to Hub"});g=l;let x=this.listeners.get(i);return x||(x=[],this.listeners.set(i,x)),x.push({name:h,callback:g}),()=>{this._remove(i,g)}}_toListeners(i){const{channel:l,payload:h}=i,g=this.listeners.get(l);g&&g.forEach(x=>{Ad.debug(`Dispatching to ${l} with `,h);try{x.callback(i)}catch(T){Ad.error(T)}})}}const W0=new HP("__default__"),XP=()=>{if(typeof window<"u"&&typeof window.atob=="function")return window.atob;if(typeof atob=="function")return atob;throw new is({name:"Base64EncoderError",message:"Cannot resolve the `atob` function from the environment."})},KP={convert(t){return XP()(t)}};var ks;(function(t){t.AuthTokenConfigException="AuthTokenConfigException",t.AuthUserPoolAndIdentityPoolException="AuthUserPoolAndIdentityPoolException",t.AuthUserPoolException="AuthUserPoolException",t.InvalidIdentityPoolIdException="InvalidIdentityPoolIdException",t.OAuthNotConfigureException="OAuthNotConfigureException"})(ks||(ks={}));const YP={[ks.AuthTokenConfigException]:{message:"Auth Token Provider not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app."},[ks.AuthUserPoolAndIdentityPoolException]:{message:"Auth UserPool or IdentityPool not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app with UserPoolId and IdentityPoolId."},[ks.AuthUserPoolException]:{message:"Auth UserPool not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app with userPoolId and userPoolClientId."},[ks.InvalidIdentityPoolIdException]:{message:"Invalid identity pool id provided.",recoverySuggestion:"Make sure a valid identityPoolId is given in the config."},[ks.OAuthNotConfigureException]:{message:"oauth param not configured.",recoverySuggestion:"Make sure to call Amplify.configure with oauth parameter in your app."}},AS=SS(YP);function pr(t){let i=!0;t?i=!!t.userPoolId&&!!t.userPoolClientId:i=!1,AS(i,ks.AuthUserPoolException)}function Sm(t){const i=!!(t!=null&&t.identityPoolId);AS(i,ks.InvalidIdentityPoolIdException)}function sp(t){const i=t.split(".");if(i.length!==3)throw new Error("Invalid token");try{const h=i[1].replace(/-/g,"+").replace(/_/g,"/"),g=decodeURIComponent(KP.convert(h).split("").map(T=>`%${`00${T.charCodeAt(0).toString(16)}`.slice(-2)}`).join("")),x=JSON.parse(g);return{toString:()=>t,payload:x}}catch{throw new Error("Invalid token payload")}}const CS=t=>{const i=Reflect.ownKeys(t);for(const l of i){const h=t[l];(h&&typeof h=="object"||typeof h=="function")&&CS(h)}return Object.freeze(t)},JP=new ko("parseAWSExports"),QP={API_KEY:"apiKey",AWS_IAM:"iam",AMAZON_COGNITO_USER_POOLS:"userPool",OPENID_CONNECT:"oidc",NONE:"none",AWS_LAMBDA:"lambda",LAMBDA:"lambda"},ez=(t={})=>{var ei,Wi,ti,pi,rs,Br;if(!Object.prototype.hasOwnProperty.call(t,"aws_project_region"))throw new is({name:"InvalidParameterException",message:"Invalid config parameter.",recoverySuggestion:"Ensure passing the config object imported from `amplifyconfiguration.json`."});const{aws_appsync_apiKey:i,aws_appsync_authenticationType:l,aws_appsync_graphqlEndpoint:h,aws_appsync_region:g,aws_bots_config:x,aws_cognito_identity_pool_id:T,aws_cognito_sign_up_verification_method:s,aws_cognito_mfa_configuration:M,aws_cognito_mfa_types:F,aws_cognito_password_protection_settings:q,aws_cognito_verification_mechanisms:X,aws_cognito_signup_attributes:oe,aws_cognito_social_providers:Ae,aws_cognito_username_attributes:fe,aws_mandatory_sign_in:ke,aws_mobile_analytics_app_id:ze,aws_mobile_analytics_app_region:ue,aws_user_files_s3_bucket:re,aws_user_files_s3_bucket_region:le,aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing:De,aws_user_pools_id:je,aws_user_pools_web_client_id:tt,geo:lt,oauth:ut,predictions:Ve,aws_cloud_logic_custom:jt,Notifications:di,modelIntrospection:St}=t,Vt={};ze&&(Vt.Analytics={Pinpoint:{appId:ze,region:ue}});const{InAppMessaging:zi,Push:Li}=di??{};if(zi!=null&&zi.AWSPinpoint||Li!=null&&Li.AWSPinpoint){if(zi!=null&&zi.AWSPinpoint){const{appId:yn,region:Mt}=zi.AWSPinpoint;Vt.Notifications={InAppMessaging:{Pinpoint:{appId:yn,region:Mt}}}}if(Li!=null&&Li.AWSPinpoint){const{appId:yn,region:Mt}=Li.AWSPinpoint;Vt.Notifications={...Vt.Notifications,PushNotification:{Pinpoint:{appId:yn,region:Mt}}}}}if(Array.isArray(x)&&(Vt.Interactions={LexV1:Object.fromEntries(x.map(yn=>[yn.name,yn]))}),h){const yn=QP[l];yn||JP.debug(`Invalid authentication type ${l}. Falling back to IAM.`),Vt.API={GraphQL:{endpoint:h,apiKey:i,region:g,defaultAuthMode:yn??"iam"}},St&&(Vt.API.GraphQL.modelIntrospection=St)}const wr=M?{status:M&&M.toLowerCase(),totpEnabled:(F==null?void 0:F.includes("TOTP"))??!1,smsEnabled:(F==null?void 0:F.includes("SMS"))??!1}:void 0,Or=q?{minLength:q.passwordPolicyMinLength,requireLowercase:((ei=q.passwordPolicyCharacters)==null?void 0:ei.includes("REQUIRES_LOWERCASE"))??!1,requireUppercase:((Wi=q.passwordPolicyCharacters)==null?void 0:Wi.includes("REQUIRES_UPPERCASE"))??!1,requireNumbers:((ti=q.passwordPolicyCharacters)==null?void 0:ti.includes("REQUIRES_NUMBERS"))??!1,requireSpecialCharacters:((pi=q.passwordPolicyCharacters)==null?void 0:pi.includes("REQUIRES_SYMBOLS"))??!1}:void 0,Tt=Array.from(new Set([...X??[],...oe??[]])).reduce((yn,Mt)=>({...yn,[Mt.toLowerCase()]:{required:!0}}),{}),xt=(fe==null?void 0:fe.includes("EMAIL"))??!1,Bt=(fe==null?void 0:fe.includes("PHONE_NUMBER"))??!1;(T||je)&&(Vt.Auth={Cognito:{identityPoolId:T,allowGuestAccess:ke!=="enable",signUpVerificationMethod:s,userAttributes:Tt,userPoolClientId:tt,userPoolId:je,mfa:wr,passwordFormat:Or,loginWith:{username:!(xt||Bt),email:xt,phone:Bt}}});const dn=ut?Object.keys(ut).length>0:!1,_n=Ae?Ae.length>0:!1;if(Vt.Auth&&dn&&(Vt.Auth.Cognito.loginWith={...Vt.Auth.Cognito.loginWith,oauth:{...tz(ut),..._n&&{providers:nz(Ae)}}}),re&&(Vt.Storage={S3:{bucket:re,region:le,dangerouslyConnectToHttpEndpointForTesting:De}}),lt){const{amazon_location_service:yn}=lt;Vt.Geo={LocationService:{maps:yn.maps,geofenceCollections:yn.geofenceCollections,searchIndices:yn.search_indices,region:yn.region}}}if(jt&&(Vt.API={...Vt.API,REST:jt.reduce((yn,Mt)=>{const{name:Ro,endpoint:Ai,region:Do,service:vn}=Mt;return{...yn,[Ro]:{endpoint:Ai,...vn?{service:vn}:void 0,...Do?{region:Do}:void 0}}},{})}),Ve){const{VoiceId:yn}=((Br=(rs=Ve==null?void 0:Ve.convert)==null?void 0:rs.speechGenerator)==null?void 0:Br.defaults)??{};Vt.Predictions=yn?{...Ve,convert:{...Ve.convert,speechGenerator:{...Ve.convert.speechGenerator,defaults:{voiceId:yn}}}}:Ve}return Vt},lE=t=>(t==null?void 0:t.split(","))??[],tz=({domain:t,scope:i,redirectSignIn:l,redirectSignOut:h,responseType:g})=>({domain:t,scopes:i,redirectSignIn:lE(l),redirectSignOut:lE(h),responseType:g}),nz=t=>t.map(i=>{const l=i.toLowerCase();return l.charAt(0).toUpperCase()+l.slice(1)}),iz=Symbol("oauth-listener");function rz(t){const{version:i}=t;return i?i.startsWith("1"):!1}function oz(t){if(!t)return;const{bucket_name:i,aws_region:l,buckets:h}=t;return{S3:{bucket:i,region:l,buckets:h&&gz(h)}}}function sz(t){if(!t)return;const{user_pool_id:i,user_pool_client_id:l,identity_pool_id:h,password_policy:g,mfa_configuration:x,mfa_methods:T,unauthenticated_identities_enabled:s,oauth:M,username_attributes:F,standard_required_attributes:q}=t,X={Cognito:{userPoolId:i,userPoolClientId:l}};return h&&(X.Cognito={...X.Cognito,identityPoolId:h}),g&&(X.Cognito.passwordFormat={requireLowercase:g.require_lowercase,requireNumbers:g.require_numbers,requireUppercase:g.require_uppercase,requireSpecialCharacters:g.require_symbols,minLength:g.min_length??6}),x&&(X.Cognito.mfa={status:mz(x),smsEnabled:T==null?void 0:T.includes("SMS"),totpEnabled:T==null?void 0:T.includes("TOTP")}),s&&(X.Cognito.allowGuestAccess=s),M&&(X.Cognito.loginWith={oauth:{domain:M.domain,redirectSignIn:M.redirect_sign_in_uri,redirectSignOut:M.redirect_sign_out_uri,responseType:M.response_type==="token"?"token":"code",scopes:M.scopes,providers:fz(M.identity_providers)}}),F&&(X.Cognito.loginWith={...X.Cognito.loginWith,email:F.includes("email"),phone:F.includes("phone_number"),username:F.includes("username")}),q&&(X.Cognito.userAttributes=q.reduce((oe,Ae)=>({...oe,[Ae]:{required:!0}}),{})),X}function az(t){if(!(t!=null&&t.amazon_pinpoint))return;const{amazon_pinpoint:i}=t;return{Pinpoint:{appId:i.app_id,region:i.aws_region}}}function lz(t){if(!t)return;const{aws_region:i,geofence_collections:l,maps:h,search_indices:g}=t;return{LocationService:{region:i,searchIndices:g,geofenceCollections:l,maps:h}}}function cz(t){if(!t)return;const{aws_region:i,default_authorization_type:l,url:h,api_key:g,model_introspection:x}=t;return{GraphQL:{endpoint:h,defaultAuthMode:pz(l),region:i,apiKey:g,modelIntrospection:x}}}function uz(t){if(!t)return;const{aws_region:i,channels:l,amazon_pinpoint_app_id:h}=t,g=l.includes("IN_APP_MESSAGING"),x=l.includes("APNS")||l.includes("FCM");if(!(g||x))return;const T={};return g&&(T.InAppMessaging={Pinpoint:{appId:h,region:i}}),x&&(T.PushNotification={Pinpoint:{appId:h,region:i}}),T}function hz(t){const i={};return t.storage&&(i.Storage=oz(t.storage)),t.auth&&(i.Auth=sz(t.auth)),t.analytics&&(i.Analytics=az(t.analytics)),t.geo&&(i.Geo=lz(t.geo)),t.data&&(i.API=cz(t.data)),t.notifications&&(i.Notifications=uz(t.notifications)),i}const dz={AMAZON_COGNITO_USER_POOLS:"userPool",API_KEY:"apiKey",AWS_IAM:"iam",AWS_LAMBDA:"lambda",OPENID_CONNECT:"oidc"};function pz(t){return dz[t]}const cE={GOOGLE:"Google",LOGIN_WITH_AMAZON:"Amazon",FACEBOOK:"Facebook",SIGN_IN_WITH_APPLE:"Apple"};function fz(t=[]){return t.reduce((i,l)=>(cE[l]!==void 0&&i.push(cE[l]),i),[])}function mz(t){return t==="OPTIONAL"?"optional":t==="REQUIRED"?"on":"off"}function gz(t){const i={};return t.forEach(({name:l,bucket_name:h,aws_region:g})=>{if(l in i)throw new Error(`Duplicate friendly name found: ${l}. Name must be unique.`);i[l]={bucketName:h,region:g}}),i}const IS=t=>Object.keys(t).some(i=>i.startsWith("aws_"))?ez(t):rz(t)?hz(t):t;function uE({expiresAt:t,clockDrift:i}){return Date.now()+i>t}class _z{configure(i,l){this.authConfig=i,this.authOptions=l}async fetchAuthSession(i={}){var x,T,s,M,F,q;let l,h;const g=await this.getTokens(i);return g?(h=(T=(x=g.accessToken)==null?void 0:x.payload)==null?void 0:T.sub,l=await((M=(s=this.authOptions)==null?void 0:s.credentialsProvider)==null?void 0:M.getCredentialsAndIdentityId({authConfig:this.authConfig,tokens:g,authenticated:!0,forceRefresh:i.forceRefresh}))):l=await((q=(F=this.authOptions)==null?void 0:F.credentialsProvider)==null?void 0:q.getCredentialsAndIdentityId({authConfig:this.authConfig,authenticated:!1,forceRefresh:i.forceRefresh})),{tokens:g,credentials:l==null?void 0:l.credentials,identityId:l==null?void 0:l.identityId,userSub:h}}async clearCredentials(){var i,l;await((l=(i=this.authOptions)==null?void 0:i.credentialsProvider)==null?void 0:l.clearCredentialsAndIdentityId())}async getTokens(i){var l,h;return await((h=(l=this.authOptions)==null?void 0:l.tokenProvider)==null?void 0:h.getTokens(i))??void 0}}const yz=t=>new TextEncoder().encode(t);typeof Buffer<"u"&&Buffer.from;for(let t=0;t<256;t++){let i=t.toString(16).toLowerCase();i.length===1&&(i=`0${i}`)}var ci;(function(t){t.WebUnknown="0",t.React="1",t.NextJs="2",t.Angular="3",t.VueJs="4",t.Nuxt="5",t.Svelte="6",t.ServerSideUnknown="100",t.ReactSSR="101",t.NextJsSSR="102",t.AngularSSR="103",t.VueJsSSR="104",t.NuxtSSR="105",t.SvelteSSR="106",t.ReactNative="201",t.Expo="202"})(ci||(ci={}));var hE;(function(t){t.API="api",t.Auth="auth",t.Analytics="analytics",t.DataStore="datastore",t.Geo="geo",t.InAppMessaging="inappmessaging",t.Interactions="interactions",t.Predictions="predictions",t.PubSub="pubsub",t.PushNotification="pushnotification",t.Storage="storage"})(hE||(hE={}));var dE;(function(t){t.Record="1",t.IdentifyUser="2"})(dE||(dE={}));var pE;(function(t){t.GraphQl="1",t.Get="2",t.Post="3",t.Put="4",t.Patch="5",t.Del="6",t.Head="7"})(pE||(pE={}));var fE;(function(t){t.SignUp="1",t.ConfirmSignUp="2",t.ResendSignUpCode="3",t.SignIn="4",t.FetchMFAPreference="6",t.UpdateMFAPreference="7",t.SetUpTOTP="10",t.VerifyTOTPSetup="11",t.ConfirmSignIn="12",t.DeleteUserAttributes="15",t.DeleteUser="16",t.UpdateUserAttributes="17",t.FetchUserAttributes="18",t.ConfirmUserAttribute="22",t.SignOut="26",t.UpdatePassword="27",t.ResetPassword="28",t.ConfirmResetPassword="29",t.FederatedSignIn="30",t.RememberDevice="32",t.ForgetDevice="33",t.FetchDevices="34",t.SendUserAttributeVerificationCode="35",t.SignInWithRedirect="36"})(fE||(fE={}));var mE;(function(t){t.Subscribe="1",t.GraphQl="2"})(mE||(mE={}));var gE;(function(t){t.SearchByText="0",t.SearchByCoordinates="1",t.SearchForSuggestions="2",t.SearchByPlaceId="3",t.SaveGeofences="4",t.GetGeofence="5",t.ListGeofences="6",t.DeleteGeofences="7"})(gE||(gE={}));var _E;(function(t){t.SyncMessages="1",t.IdentifyUser="2",t.NotifyMessageInteraction="3"})(_E||(_E={}));var yE;(function(t){t.None="0"})(yE||(yE={}));var vE;(function(t){t.Convert="1",t.Identify="2",t.Interpret="3"})(vE||(vE={}));var xE;(function(t){t.Subscribe="1"})(xE||(xE={}));var wE;(function(t){t.InitializePushNotifications="1",t.IdentifyUser="2"})(wE||(wE={}));var bE;(function(t){t.UploadData="1",t.DownloadData="2",t.List="3",t.Copy="4",t.Remove="5",t.GetProperties="6",t.GetUrl="7"})(bE||(bE={}));const Sg=()=>typeof global<"u",Ou=()=>typeof window<"u",MS=()=>typeof document<"u",nx=()=>typeof process<"u",ap=(t,i)=>!!Object.keys(t).find(l=>l.startsWith(i));function vz(){const t=h=>h.startsWith("_react")||h.startsWith("__react"),i=h=>Object.keys(h).find(t),l=()=>Array.from(document.querySelectorAll("[id]"));return MS()&&l().some(i)}function xz(){return nx()&&typeof process.env<"u"&&!!Object.keys(process.env).find(t=>t.includes("react"))}function wz(){return Ou()&&ap(window,"__VUE")}function bz(){return Sg()&&ap(global,"__VUE")}function Ez(){return Ou()&&ap(window,"__SVELTE")}function Tz(){return nx()&&typeof process.env<"u"&&!!Object.keys(process.env).find(t=>t.includes("svelte"))}function Sz(){return Ou()&&window.next&&typeof window.next=="object"}function Az(){return Sg()&&(ap(global,"__next")||ap(global,"__NEXT"))}function Cz(){return Ou()&&(window.__NUXT__!==void 0||window.$nuxt!==void 0)}function Iz(){return Sg()&&typeof global.__NUXT_PATHS__<"u"}function Mz(){const t=!!(MS()&&document.querySelector("[ng-version]")),i=!!(Ou()&&typeof window.ng<"u");return t||i}function kz(){var t;return nx()&&typeof process.env=="object"&&((t={}.npm_lifecycle_script)==null?void 0:t.startsWith("ng "))||!1}function Pz(){return typeof navigator<"u"&&typeof navigator.product<"u"&&navigator.product==="ReactNative"}function zz(){return Sg()&&typeof global.expo<"u"}function Lz(){return Ou()}const Rz=[{platform:ci.Expo,detectionMethod:zz},{platform:ci.ReactNative,detectionMethod:Pz},{platform:ci.NextJs,detectionMethod:Sz},{platform:ci.Nuxt,detectionMethod:Cz},{platform:ci.Angular,detectionMethod:Mz},{platform:ci.React,detectionMethod:vz},{platform:ci.VueJs,detectionMethod:wz},{platform:ci.Svelte,detectionMethod:Ez},{platform:ci.WebUnknown,detectionMethod:Lz},{platform:ci.NextJsSSR,detectionMethod:Az},{platform:ci.NuxtSSR,detectionMethod:Iz},{platform:ci.ReactSSR,detectionMethod:xz},{platform:ci.VueJsSSR,detectionMethod:bz},{platform:ci.AngularSSR,detectionMethod:kz},{platform:ci.SvelteSSR,detectionMethod:Tz}];function Dz(){var t;return((t=Rz.find(i=>i.detectionMethod()))==null?void 0:t.platform)||ci.ServerSideUnknown}const Oz=()=>typeof window<"u"&&typeof window.document<"u";class Bz{constructor(){this.oAuthListener=void 0,this.resourcesConfig={},this.libraryOptions={},this.Auth=new _z}configure(i,l){const h=IS(i);this.resourcesConfig=h,l&&(this.libraryOptions=l),this.resourcesConfig=CS(this.resourcesConfig),this.Auth.configure(this.resourcesConfig.Auth,this.libraryOptions.Auth),W0.dispatch("core",{event:"configure",data:this.resourcesConfig},"Configure",tg),this.notifyOAuthListener()}getConfig(){return this.resourcesConfig}[iz](i){var l,h,g;(h=(l=this.resourcesConfig.Auth)==null?void 0:l.Cognito.loginWith)!=null&&h.oauth?i((g=this.resourcesConfig.Auth)==null?void 0:g.Cognito):this.oAuthListener=i}notifyOAuthListener(){var i,l,h;!((l=(i=this.resourcesConfig.Auth)==null?void 0:i.Cognito.loginWith)!=null&&l.oauth)||!this.oAuthListener||(this.oAuthListener((h=this.resourcesConfig.Auth)==null?void 0:h.Cognito),this.oAuthListener=void 0)}}const Cs=new Bz,Ag=t=>{const{headers:i,statusCode:l}=t;return{...Fz(t)?t.$metadata:{},httpStatusCode:l,requestId:i["x-amzn-requestid"]??i["x-amzn-request-id"]??i["x-amz-request-id"],extendedRequestId:i["x-amz-id-2"],cfId:i["x-amz-cf-id"]}},Fz=t=>typeof(t==null?void 0:t.$metadata)=="object",mp=async t=>{if(!t||t.statusCode<300)return;const i=await Cg(t),h=(T=>{const[s]=T.toString().split(/[,:]+/);return s.includes("#")?s.split("#")[1]:s})(t.headers["x-amzn-errortype"]??i.code??i.__type??"UnknownError"),g=i.message??i.Message??"Unknown error",x=new Error(g);return Object.assign(x,{name:h,$metadata:Ag(t)})},Cg=async t=>{if(!t.body)throw new Error("Missing response payload");const i=await t.body.json();return Object.assign(i,{$metadata:Ag(t)})},ix=(t,i,l,h)=>async(g,x)=>{const T={...h,...g},s=await T.endpointResolver(T,x),M=await i(x,s),F=await t(M,{...T});return l(F)},kS={id:"aws",outputs:{dnsSuffix:"amazonaws.com"},regionRegex:"^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$",regions:["aws-global"]},Nz={partitions:[kS,{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn"},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:["aws-cn-global"]}]},PS=t=>{const{partitions:i}=Nz;for(const{regions:l,outputs:h,regionRegex:g}of i){const x=new RegExp(g);if(l.includes(t)||x.test(t))return h.dnsSuffix}return kS.outputs.dnsSuffix},Uz=3,jz=({maxAttempts:t=Uz,retryDecider:i,computeDelay:l,abortSignal:h})=>{if(t<1)throw new Error("maxAttempts must be greater than 0");return(g,x)=>async function(s){let M,F=x.attemptsCount??0,q;const X=()=>{if(q)return EE(q,F),q;throw EE(M,F),M};for(;!(h!=null&&h.aborted)&&FF?x.attemptsCount??0:F+1,x.attemptsCount=F,await i(q,M)){if(!(h!=null&&h.aborted)&&F{if(i!=null&&i.aborted)return Promise.resolve();let l,h;const g=new Promise(x=>{h=x,l=setTimeout(x,t)});return i==null||i.addEventListener("abort",function x(T){clearTimeout(l),i==null||i.removeEventListener("abort",x),h()}),g},EE=(t,i)=>{Object.prototype.toString.call(t)==="[object Object]"&&(t.$metadata={...t.$metadata??{},attempts:i})},Gz=({userAgentHeader:t="x-amz-user-agent",userAgentValue:i=""})=>l=>async function(g){if(i.trim().length===0)return await l(g);{const x=t.toLowerCase();return g.headers[x]=g.headers[x]?`${g.headers[x]} ${i}`:i,await l(g)}},rx=(t,i)=>(l,h)=>{const g={};let x=T=>t(T,h);for(let T=i.length-1;T>=0;T--){const s=i[T];x=s(h)(x,g)}return x(l)},Gy=t=>{let i;return()=>(i||(i=t()),i)},$z=t=>!["HEAD","GET","DELETE"].includes(t.toUpperCase()),qz=async({url:t,method:i,headers:l,body:h},{abortSignal:g,cache:x,withCrossDomainCredentials:T})=>{var X;let s;try{s=await fetch(t,{method:i,headers:l,body:$z(i)?h:void 0,signal:g,cache:x,credentials:T?"include":"same-origin"})}catch(oe){throw oe instanceof TypeError?new is({name:op.NetworkError,message:"A network error has occurred.",underlyingError:oe}):oe}const M={};(X=s.headers)==null||X.forEach((oe,Ae)=>{M[Ae.toLowerCase()]=oe});const F={statusCode:s.status,headers:M,body:null},q=Object.assign(s.body??{},{text:Gy(()=>s.text()),blob:Gy(()=>s.blob()),json:Gy(()=>s.json())});return{...F,body:q}},zS=rx(qz,[Gz,jz]),Zz=5*60*1e3;function Wz(t=Zz){return h=>{const g=2**h*100+100*Math.random();return g>t?!1:g}}const TE=5*60*1e3,LS=t=>{const l=Wz(TE)(t);return l===!1?TE:l},Hz=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch","BadRequestException"],Xz=t=>!!t&&Hz.includes(t),RS=t=>async(i,l)=>{const h=l??await t(i)??void 0,g=(h==null?void 0:h.code)||(h==null?void 0:h.name),x=i==null?void 0:i.statusCode;return Qz(l)||Jz(x,g)||Xz(g)||eL(x,g)},Kz=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException"],Yz=["TimeoutError","RequestTimeout","RequestTimeoutException"],Jz=(t,i)=>t===429||!!i&&Kz.includes(i),Qz=t=>(t==null?void 0:t.name)==="Network error",eL=(t,i)=>!!t&&[500,502,503,504].includes(t)||!!i&&Yz.includes(i),H0=URL,tL="6.6.0";let jd;const Am=[];let ng=!1;const nL=10,iL=10,rL=1e3,DS=()=>{var t;if(!jd){if(jd=Dz(),ng)for(;Am.length;)(t=Am.pop())==null||t();else Am.forEach(i=>{i()});SE(ci.ServerSideUnknown,nL),SE(ci.WebUnknown,iL)}return jd},oL=t=>{ng||Am.push(t)};function sL(){jd=void 0}function SE(t,i){jd===t&&!ng&&setTimeout(()=>{sL(),ng=!0,setTimeout(DS,rL)},i)}const aL={},lL=(t,i)=>{var l,h;return(h=(l=aL[t])==null?void 0:l[i])==null?void 0:h.additionalDetails},cL="aws-amplify",uL=({category:t,action:i}={})=>{const l=[[cL,tL]];if(t&&l.push([t,i]),l.push(["framework",DS()]),t&&i){const h=lL(t,i);h&&h.forEach(g=>{l.push(g)})}return l},ox=t=>uL(t).map(([h,g])=>h&&g?`${h}/${g}`:h).join(" "),hL="cognito-identity",dL=({region:t})=>({url:new H0(`https://cognito-identity.${t}.${PS(t)}`)}),pL=()=>t=>async function(l){return l.headers["cache-control"]="no-store",t(l)},OS=rx(zS,[pL]),sx={service:hL,endpointResolver:dL,retryDecider:RS(mp),computeDelay:LS,userAgentValue:ox(),cache:"no-store"};oL(()=>{sx.userAgentValue=ox()});const BS=t=>({"content-type":"application/x-amz-json-1.1","x-amz-target":`AWSCognitoIdentityService.${t}`}),FS=({url:t},i,l)=>({headers:i,url:t,body:l,method:"POST"}),fL=(t,i)=>{const l=BS("GetId"),h=JSON.stringify(t);return FS(i,l,h)},mL=async t=>{if(t.statusCode>=300)throw await mp(t);return{IdentityId:(await Cg(t)).IdentityId,$metadata:Ag(t)}},gL=ix(OS,fL,mL,sx),_L=(t,i)=>{const l=BS("GetCredentialsForIdentity"),h=JSON.stringify(t);return FS(i,l,h)},yL=async t=>{if(t.statusCode>=300)throw await mp(t);{const i=await Cg(t);return{IdentityId:i.IdentityId,Credentials:vL(i.Credentials),$metadata:Ag(t)}}},vL=({AccessKeyId:t,SecretKey:i,SessionToken:l,Expiration:h}={})=>({AccessKeyId:t,SecretKey:i,SessionToken:l,Expiration:h&&new Date(h*1e3)}),AE=ix(OS,_L,yL,sx);class sm extends is{constructor(){super({name:op.PlatformNotSupported,message:"Function not supported on current platform"})}}class NS{constructor(i){this.storage=i}async setItem(i,l){if(!this.storage)throw new sm;this.storage.setItem(i,l)}async getItem(i){if(!this.storage)throw new sm;return this.storage.getItem(i)}async removeItem(i){if(!this.storage)throw new sm;this.storage.removeItem(i)}async clear(){if(!this.storage)throw new sm;this.storage.clear()}}class US{constructor(){this.storage=new Map}get length(){return this.storage.size}key(i){return i>this.length-1?null:Array.from(this.storage.keys())[i]}setItem(i,l){this.storage.set(i,l)}getItem(i){return this.storage.get(i)??null}removeItem(i){this.storage.delete(i)}clear(){this.storage.clear()}}const xL=()=>typeof window<"u"&&window.localStorage?window.localStorage:new US,wL=()=>typeof window<"u"&&window.sessionStorage?window.sessionStorage:new US;class bL extends NS{constructor(){super(xL())}}class EL extends NS{constructor(){super(wL())}}/*! js-cookie v3.0.5 | MIT */function am(t){for(var i=1;i"u")){T=am({},i,T),typeof T.expires=="number"&&(T.expires=new Date(Date.now()+T.expires*864e5)),T.expires&&(T.expires=T.expires.toUTCString()),g=encodeURIComponent(g).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var s="";for(var M in T)T[M]&&(s+="; "+M,T[M]!==!0&&(s+="="+T[M].split(";")[0]));return document.cookie=g+"="+t.write(x,g)+s}}function h(g){if(!(typeof document>"u"||arguments.length&&!g)){for(var x=document.cookie?document.cookie.split("; "):[],T={},s=0;sthis.removeItem(h));await Promise.all(l)}getData(){return{path:this.path,expires:this.expires,domain:this.domain,secure:this.secure,...this.sameSite&&{sameSite:this.sameSite}}}}const lp=new bL;new EL;const SL=t=>{let i;return async(...l)=>i||(i=new Promise((h,g)=>{t(...l).then(x=>{h(x)}).catch(x=>{g(x)}).finally(()=>{i=void 0})}),i)};class Kn extends is{constructor(i){super(i),this.constructor=Kn,Object.setPrototypeOf(this,Kn.prototype)}}function jS(t){if(!t||t.name==="Error"||t instanceof TypeError)throw new Kn({name:op.Unknown,message:"An unknown error has occurred.",underlyingError:t})}const VS="cognito-idp",AL=({region:t})=>{var g;const i=(g=Cs.getConfig().Auth)==null?void 0:g.Cognito,l=i==null?void 0:i.userPoolEndpoint,h=new H0(`https://${VS}.${t}.${PS(t)}`);return{url:l?new H0(l):h}},CL=()=>(t,i)=>async function(h){return h.headers["cache-control"]="no-store",t(h)},IL=rx(zS,[CL]),ML={service:VS,endpointResolver:AL,retryDecider:RS(mp),computeDelay:LS,userAgentValue:ox(),cache:"no-store"},kL=t=>({"content-type":"application/x-amz-json-1.1","x-amz-target":`AWSCognitoIdentityProviderService.${t}`}),PL=({url:t},i,l)=>({headers:i,url:t,body:l,method:"POST"}),zL=t=>(i,l)=>{const h=kL(t),g=JSON.stringify(i);return PL(l,h,g)},LL=()=>async t=>{if(t.statusCode>=300){const i=await mp(t);throw jS(i),new Kn({name:i.name,message:i.message})}else return await Cg(t)},RL=ix(IL,zL("InitiateAuth"),LL(),ML);function DL(t){const i=t==null?void 0:t.split("_")[0];if(!t||t.indexOf("_")<0||!i||typeof i!="string")throw new Kn({name:"InvalidUserPoolId",message:"Invalid user pool id provided."});return i}function K0(t){if(!t||!t.includes(":"))throw new Kn({name:"InvalidIdentityPoolIdException",message:"Invalid identity pool id provided.",recoverySuggestion:"Make sure a valid identityPoolId is given in the config."});return t.split(":")[0]}const GS="UserUnAuthenticatedException",OL="InvalidRedirectException",BL="InvalidAppSchemeException",FL="InvalidPreferredRedirectUrlException";new Kn({name:OL,message:"signInRedirect or signOutRedirect had an invalid format or was not found.",recoverySuggestion:"Please make sure the signIn/Out redirect in your oauth config is valid."});new Kn({name:BL,message:"A valid non-http app scheme was not found in the config.",recoverySuggestion:"Please make sure a valid custom app scheme is present in the config."});new Kn({name:FL,message:"The given preferredRedirectUrl does not match any items in the redirectSignOutUrls array from the config.",recoverySuggestion:"Please make sure a matching preferredRedirectUrl is provided."});const NL="InvalidOriginException";new Kn({name:NL,message:"redirect is coming from a different origin. The oauth flow needs to be initiated from the same origin",recoverySuggestion:"Please call signInWithRedirect from the same origin."});const UL="TokenRefreshException";function jL(t){if(!t||!t.idToken)throw new Kn({name:GS,message:"User needs to be authenticated to call this API.",recoverySuggestion:"Sign in before calling this API again."})}const VL=new Kn({name:UL,message:`Token refresh is not supported when authenticated with the 'implicit grant' (token) oauth flow. + Please change your oauth configuration to use 'code grant' flow.`,recoverySuggestion:`Please logout and change your Amplify configuration to use "code grant" flow. + E.g { responseType: 'code' }`}),GL=new Kn({name:GS,message:"User needs to be authenticated to call this API.",recoverySuggestion:"Sign in before calling this API again."});function $L(t){if(WL(t))throw VL;if(!ZL(t))throw GL}const qL={inflightOAuth:"inflightOAuth",oauthSignIn:"oauthSignIn",oauthPKCE:"oauthPKCE",oauthState:"oauthState"};function $S(t){return(t==null?void 0:t.accessToken)||(t==null?void 0:t.idToken)}function ZL(t){return $S(t)&&(t==null?void 0:t.refreshToken)}function WL(t){return $S(t)&&!(t!=null&&t.refreshToken)}function HL({username:t,userPoolId:i,userPoolClientId:l}){if(typeof window>"u")return;const h=window.AmazonCognitoAdvancedSecurityData;if(typeof h>"u")return;const g=h.getData(t,i,l);return g?{EncodedData:g}:{}}const XL=async({tokens:t,authConfig:i,username:l})=>{var oe,Ae;pr(i==null?void 0:i.Cognito);const h=DL(i.Cognito.userPoolId);$L(t);const g=t.refreshToken,x={REFRESH_TOKEN:g};(oe=t.deviceMetadata)!=null&&oe.deviceKey&&(x.DEVICE_KEY=t.deviceMetadata.deviceKey);const T=HL({username:l,userPoolId:i.Cognito.userPoolId,userPoolClientId:i.Cognito.userPoolClientId}),{AuthenticationResult:s}=await RL({region:h},{ClientId:(Ae=i==null?void 0:i.Cognito)==null?void 0:Ae.userPoolClientId,AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:x,UserContextData:T}),M=sp((s==null?void 0:s.AccessToken)??""),F=s!=null&&s.IdToken?sp(s.IdToken):void 0,{iat:q}=M.payload;if(!q)throw new Kn({name:"iatNotFoundException",message:"iat not found in access token"});const X=q*1e3-new Date().getTime();return{accessToken:M,idToken:F,clockDrift:X,refreshToken:g,username:l}},KL=SL(XL),YL={accessToken:"accessToken",idToken:"idToken",oidcProvider:"oidcProvider",clockDrift:"clockDrift",refreshToken:"refreshToken",deviceKey:"deviceKey",randomPasswordKey:"randomPasswordKey",deviceGroupKey:"deviceGroupKey",signInDetails:"signInDetails",oauthMetadata:"oauthMetadata"};var ig;(function(t){t.InvalidAuthTokens="InvalidAuthTokens"})(ig||(ig={}));const JL={[ig.InvalidAuthTokens]:{message:"Invalid tokens.",recoverySuggestion:"Make sure the tokens are valid."}},QL=SS(JL);class eR{constructor(){this.name="CognitoIdentityServiceProvider"}getKeyValueStorage(){if(!this.keyValueStorage)throw new Kn({name:"KeyValueStorageNotFoundException",message:"KeyValueStorage was not found in TokenStore"});return this.keyValueStorage}setKeyValueStorage(i){this.keyValueStorage=i}setAuthConfig(i){this.authConfig=i}async loadTokens(){try{const i=await this.getAuthKeys(),l=await this.getKeyValueStorage().getItem(i.accessToken);if(!l)throw new Kn({name:"NoSessionFoundException",message:"Auth session was not found. Make sure to call signIn."});const h=sp(l),g=await this.getKeyValueStorage().getItem(i.idToken),x=g?sp(g):void 0,T=await this.getKeyValueStorage().getItem(i.refreshToken)??void 0,s=await this.getKeyValueStorage().getItem(i.clockDrift)??"0",M=Number.parseInt(s),F=await this.getKeyValueStorage().getItem(i.signInDetails),q={accessToken:h,idToken:x,refreshToken:T,deviceMetadata:await this.getDeviceMetadata()??void 0,clockDrift:M,username:await this.getLastAuthUser()};return F&&(q.signInDetails=JSON.parse(F)),q}catch{return null}}async storeTokens(i){QL(i!==void 0,ig.InvalidAuthTokens),await this.clearTokens();const l=i.username;await this.getKeyValueStorage().setItem(this.getLastAuthUserKey(),l);const h=await this.getAuthKeys();await this.getKeyValueStorage().setItem(h.accessToken,i.accessToken.toString()),i.idToken&&await this.getKeyValueStorage().setItem(h.idToken,i.idToken.toString()),i.refreshToken&&await this.getKeyValueStorage().setItem(h.refreshToken,i.refreshToken),i.deviceMetadata&&(i.deviceMetadata.deviceKey&&await this.getKeyValueStorage().setItem(h.deviceKey,i.deviceMetadata.deviceKey),i.deviceMetadata.deviceGroupKey&&await this.getKeyValueStorage().setItem(h.deviceGroupKey,i.deviceMetadata.deviceGroupKey),await this.getKeyValueStorage().setItem(h.randomPasswordKey,i.deviceMetadata.randomPassword)),i.signInDetails&&await this.getKeyValueStorage().setItem(h.signInDetails,JSON.stringify(i.signInDetails)),await this.getKeyValueStorage().setItem(h.clockDrift,`${i.clockDrift}`)}async clearTokens(){const i=await this.getAuthKeys();await Promise.all([this.getKeyValueStorage().removeItem(i.accessToken),this.getKeyValueStorage().removeItem(i.idToken),this.getKeyValueStorage().removeItem(i.clockDrift),this.getKeyValueStorage().removeItem(i.refreshToken),this.getKeyValueStorage().removeItem(i.signInDetails),this.getKeyValueStorage().removeItem(this.getLastAuthUserKey()),this.getKeyValueStorage().removeItem(i.oauthMetadata)])}async getDeviceMetadata(i){const l=await this.getAuthKeys(i),h=await this.getKeyValueStorage().getItem(l.deviceKey),g=await this.getKeyValueStorage().getItem(l.deviceGroupKey),x=await this.getKeyValueStorage().getItem(l.randomPasswordKey);return x&&g&&h?{deviceKey:h,deviceGroupKey:g,randomPassword:x}:null}async clearDeviceMetadata(i){const l=await this.getAuthKeys(i);await Promise.all([this.getKeyValueStorage().removeItem(l.deviceKey),this.getKeyValueStorage().removeItem(l.deviceGroupKey),this.getKeyValueStorage().removeItem(l.randomPasswordKey)])}async getAuthKeys(i){var h;pr((h=this.authConfig)==null?void 0:h.Cognito);const l=i??await this.getLastAuthUser();return tR(this.name,`${this.authConfig.Cognito.userPoolClientId}.${l}`)}getLastAuthUserKey(){var l;pr((l=this.authConfig)==null?void 0:l.Cognito);const i=this.authConfig.Cognito.userPoolClientId;return`${this.name}.${i}.LastAuthUser`}async getLastAuthUser(){return await this.getKeyValueStorage().getItem(this.getLastAuthUserKey())??"username"}async setOAuthMetadata(i){const{oauthMetadata:l}=await this.getAuthKeys();await this.getKeyValueStorage().setItem(l,JSON.stringify(i))}async getOAuthMetadata(){const{oauthMetadata:i}=await this.getAuthKeys(),l=await this.getKeyValueStorage().getItem(i);return l&&JSON.parse(l)}}const tR=(t,i)=>ax(YL)(`${t}`,i);function ax(t){const i=Object.values({...t});return(l,h)=>i.reduce((g,x)=>({...g,[x]:`${l}.${h}.${x}`}),{})}const IE="amplify-signin-with-hostedUI",Yo="CognitoIdentityServiceProvider";class nR{constructor(i){this.keyValueStorage=i}async clearOAuthInflightData(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);await Promise.all([this.keyValueStorage.removeItem(i.inflightOAuth),this.keyValueStorage.removeItem(i.oauthPKCE),this.keyValueStorage.removeItem(i.oauthState)])}async clearOAuthData(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return await this.clearOAuthInflightData(),await this.keyValueStorage.removeItem(IE),this.keyValueStorage.removeItem(i.oauthSignIn)}loadOAuthState(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.getItem(i.oauthState)}storeOAuthState(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.setItem(l.oauthState,i)}loadPKCE(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.getItem(i.oauthPKCE)}storePKCE(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.setItem(l.oauthPKCE,i)}setAuthConfig(i){this.cognitoConfig=i}async loadOAuthInFlight(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return await this.keyValueStorage.getItem(i.inflightOAuth)==="true"}async storeOAuthInFlight(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);await this.keyValueStorage.setItem(l.inflightOAuth,`${i}`)}async loadOAuthSignIn(){var x;pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId),l=await this.keyValueStorage.getItem(IE),[h,g]=((x=await this.keyValueStorage.getItem(i.oauthSignIn))==null?void 0:x.split(","))??[];return{isOAuthSignIn:h==="true"||l==="true",preferPrivateSession:g==="true"}}async storeOAuthSignIn(i,l=!1){pr(this.cognitoConfig);const h=Jo(Yo,this.cognitoConfig.userPoolClientId);await this.keyValueStorage.setItem(h.oauthSignIn,`${i},${l}`)}}const Jo=(t,i)=>ax(qL)(t,i),ME=new nR(lp),iR=[],rR=t=>{iR.push(t)};class oR{constructor(){this.waitForInflightOAuth=Oz()?async()=>{if(await ME.loadOAuthInFlight())return this.inflightPromise?this.inflightPromise:(this.inflightPromise=new Promise((i,l)=>{rR(i)}),this.inflightPromise)}:async()=>{}}setAuthConfig(i){ME.setAuthConfig(i.Cognito),this.authConfig=i}setTokenRefresher(i){this.tokenRefresher=i}setAuthTokenStore(i){this.tokenStore=i}getTokenStore(){if(!this.tokenStore)throw new Kn({name:"EmptyTokenStoreException",message:"TokenStore not set"});return this.tokenStore}getTokenRefresher(){if(!this.tokenRefresher)throw new Kn({name:"EmptyTokenRefresherException",message:"TokenRefresher not set"});return this.tokenRefresher}async getTokens(i){var T,s,M,F,q;let l;try{pr((T=this.authConfig)==null?void 0:T.Cognito)}catch{return null}await this.waitForInflightOAuth(),this.inflightPromise=void 0,l=await this.getTokenStore().loadTokens();const h=await this.getTokenStore().getLastAuthUser();if(l===null)return null;const g=!!(l!=null&&l.idToken)&&uE({expiresAt:(((M=(s=l.idToken)==null?void 0:s.payload)==null?void 0:M.exp)??0)*1e3,clockDrift:l.clockDrift??0}),x=uE({expiresAt:(((q=(F=l.accessToken)==null?void 0:F.payload)==null?void 0:q.exp)??0)*1e3,clockDrift:l.clockDrift??0});return(i!=null&&i.forceRefresh||g||x)&&(l=await this.refreshTokens({tokens:l,username:h}),l===null)?null:{accessToken:l==null?void 0:l.accessToken,idToken:l==null?void 0:l.idToken,signInDetails:l==null?void 0:l.signInDetails}}async refreshTokens({tokens:i,username:l}){try{const{signInDetails:h}=i,g=await this.getTokenRefresher()({tokens:i,authConfig:this.authConfig,username:l});return g.signInDetails=h,await this.setTokens({tokens:g}),W0.dispatch("auth",{event:"tokenRefresh"},"Auth",tg),g}catch(h){return this.handleErrors(h)}}handleErrors(i){if(jS(i),i.message!=="Network error"&&this.clearTokens(),W0.dispatch("auth",{event:"tokenRefresh_failure",data:{error:i}},"Auth",tg),i.name.startsWith("NotAuthorizedException"))return null;throw i}async setTokens({tokens:i}){return this.getTokenStore().storeTokens(i)}async clearTokens(){return this.getTokenStore().clearTokens()}getDeviceMetadata(i){return this.getTokenStore().getDeviceMetadata(i)}clearDeviceMetadata(i){return this.getTokenStore().clearDeviceMetadata(i)}setOAuthMetadata(i){return this.getTokenStore().setOAuthMetadata(i)}getOAuthMetadata(){return this.getTokenStore().getOAuthMetadata()}}class sR{constructor(){this.authTokenStore=new eR,this.authTokenStore.setKeyValueStorage(lp),this.tokenOrchestrator=new oR,this.tokenOrchestrator.setAuthTokenStore(this.authTokenStore),this.tokenOrchestrator.setTokenRefresher(KL)}getTokens({forceRefresh:i}={forceRefresh:!1}){return this.tokenOrchestrator.getTokens({forceRefresh:i})}setKeyValueStorage(i){this.authTokenStore.setKeyValueStorage(i)}setAuthConfig(i){this.authTokenStore.setAuthConfig(i),this.tokenOrchestrator.setAuthConfig(i)}}const cm=new sR,aR={identityId:"identityId"},lR=new ko("DefaultIdentityIdStore");class cR{setAuthConfig(i){Sm(i.Cognito),this.authConfig=i,this._authKeys=uR("Cognito",i.Cognito.identityPoolId)}constructor(i){this._authKeys={},this.keyValueStorage=i}async loadIdentityId(){var i;Sm((i=this.authConfig)==null?void 0:i.Cognito);try{if(this._primaryIdentityId)return{id:this._primaryIdentityId,type:"primary"};{const l=await this.keyValueStorage.getItem(this._authKeys.identityId);return l?{id:l,type:"guest"}:null}}catch(l){return lR.log("Error getting stored IdentityId.",l),null}}async storeIdentityId(i){var l;Sm((l=this.authConfig)==null?void 0:l.Cognito),i.type==="guest"?(this.keyValueStorage.setItem(this._authKeys.identityId,i.id),this._primaryIdentityId=void 0):(this._primaryIdentityId=i.id,this.keyValueStorage.removeItem(this._authKeys.identityId))}async clearIdentityId(){this._primaryIdentityId=void 0,await this.keyValueStorage.removeItem(this._authKeys.identityId)}}const uR=(t,i)=>ax(aR)(`com.amplify.${t}`,i);function qS(t){const i=sp(t).payload.iss,l={};if(!i)throw new Kn({name:"InvalidIdTokenException",message:"Invalid Idtoken."});const h=i.replace(/(^\w+:|^)\/\//,"");return l[h]=t,l}const hR=new ko("CognitoIdentityIdProvider");async function dR({tokens:t,authConfig:i,identityIdStore:l}){l.setAuthConfig({Cognito:i});let h=await l.loadIdentityId();if(t){if(h&&h.type==="primary")return h.id;{const g=t.idToken?qS(t.idToken.toString()):{},x=await kE(g,i);h&&h.id===x&&hR.debug(`The guest identity ${h.id} has become the primary identity.`),h={id:x,type:"primary"}}}else{if(h&&h.type==="guest")return h.id;h={id:await kE({},i),type:"guest"}}return l.storeIdentityId(h),h.id}async function kE(t,i){const l=i==null?void 0:i.identityPoolId,h=K0(l),g=(await gL({region:h},{IdentityPoolId:l,Logins:t})).IdentityId;if(!g)throw new Kn({name:"GetIdResponseException",message:"Received undefined response from getId operation",recoverySuggestion:"Make sure to pass a valid identityPoolId in the configuration."});return g}const um=new ko("CognitoCredentialsProvider"),PE=50*60*1e3;class pR{constructor(i){this._nextCredentialsRefresh=0,this._identityIdStore=i}async clearCredentialsAndIdentityId(){um.debug("Clearing out credentials and identityId"),this._credentialsAndIdentityId=void 0,await this._identityIdStore.clearIdentityId()}async clearCredentials(){um.debug("Clearing out in-memory credentials"),this._credentialsAndIdentityId=void 0}async getCredentialsAndIdentityId(i){const l=i.authenticated,{tokens:h}=i,{authConfig:g}=i;try{Sm(g==null?void 0:g.Cognito)}catch{return}if(!l&&!g.Cognito.allowGuestAccess)return;const{forceRefresh:x}=i,T=this.hasTokenChanged(h),s=await dR({tokens:h,authConfig:g.Cognito,identityIdStore:this._identityIdStore});return(x||T)&&this.clearCredentials(),l?(jL(h),this.credsForOIDCTokens(g.Cognito,h,s)):this.getGuestCredentials(s,g.Cognito)}async getGuestCredentials(i,l){if(this._credentialsAndIdentityId&&!this.isPastTTL()&&this._credentialsAndIdentityId.isAuthenticatedCreds===!1)return um.info("returning stored credentials as they neither past TTL nor expired."),this._credentialsAndIdentityId;this.clearCredentials();const h=K0(l.identityPoolId),g=await AE({region:h},{IdentityId:i});if(g.Credentials&&g.Credentials.AccessKeyId&&g.Credentials.SecretKey){this._nextCredentialsRefresh=new Date().getTime()+PE;const x={credentials:{accessKeyId:g.Credentials.AccessKeyId,secretAccessKey:g.Credentials.SecretKey,sessionToken:g.Credentials.SessionToken,expiration:g.Credentials.Expiration},identityId:i},T=g.IdentityId;return T&&(x.identityId=T,this._identityIdStore.storeIdentityId({id:T,type:"guest"})),this._credentialsAndIdentityId={...x,isAuthenticatedCreds:!1},x}else throw new Kn({name:"CredentialsNotFoundException",message:"Cognito did not respond with either Credentials, AccessKeyId or SecretKey."})}async credsForOIDCTokens(i,l,h){var s;if(this._credentialsAndIdentityId&&!this.isPastTTL()&&this._credentialsAndIdentityId.isAuthenticatedCreds===!0)return um.debug("returning stored credentials as they neither past TTL nor expired."),this._credentialsAndIdentityId;this.clearCredentials();const g=l.idToken?qS(l.idToken.toString()):{},x=K0(i.identityPoolId),T=await AE({region:x},{IdentityId:h,Logins:g});if(T.Credentials&&T.Credentials.AccessKeyId&&T.Credentials.SecretKey){const M={credentials:{accessKeyId:T.Credentials.AccessKeyId,secretAccessKey:T.Credentials.SecretKey,sessionToken:T.Credentials.SessionToken,expiration:T.Credentials.Expiration},identityId:h};this._credentialsAndIdentityId={...M,isAuthenticatedCreds:!0,associatedIdToken:(s=l.idToken)==null?void 0:s.toString()},this._nextCredentialsRefresh=new Date().getTime()+PE;const F=T.IdentityId;return F&&(M.identityId=F,this._identityIdStore.storeIdentityId({id:F,type:"primary"})),M}else throw new Kn({name:"CredentialsException",message:"Cognito did not respond with either Credentials, AccessKeyId or SecretKey."})}isPastTTL(){return this._nextCredentialsRefresh===void 0?!0:this._nextCredentialsRefresh<=Date.now()}hasTokenChanged(i){var l,h;return!!i&&!!((l=this._credentialsAndIdentityId)!=null&&l.associatedIdToken)&&((h=i.idToken)==null?void 0:h.toString())!==this._credentialsAndIdentityId.associatedIdToken}}const fR=new pR(new cR(lp)),mR={configure(t,i){const l=IS(t);if(!l.Auth){Cs.configure(l,i);return}if(i!=null&&i.Auth){Cs.configure(l,i);return}if(!Cs.libraryOptions.Auth){cm.setAuthConfig(l.Auth),cm.setKeyValueStorage(i!=null&&i.ssr?new CE({sameSite:"lax"}):lp),Cs.configure(l,{...i,Auth:{tokenProvider:cm,credentialsProvider:fR}});return}if(i){i.ssr!==void 0&&cm.setKeyValueStorage(i.ssr?new CE({sameSite:"lax"}):lp),Cs.configure(l,{Auth:Cs.libraryOptions.Auth,...i});return}Cs.configure(l)},getConfig(){return Cs.getConfig()}};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */var gR={oauth:{domain:"authcori.auth.us-east-1.amazoncognito.com"}},_R="us-east-1",yR="us-east-1_QeA4600FA",vR="5eusi16g0o2q1g1rr5ehgudodm",xR="authcori.auth.us-east-1.amazoncognito.com",wR="us-east-1",bR="us-east-1:2194a76a-fa3d-4c33-999e-e3c4b2b049ee",ER=["EMAIL"],TR=["EMAIL","OPENID"],SR=["EMAIL","OPENID"],AR={passwordPolicyMinLength:8,passwordPolicyCharacters:["REQUIRES_NUMBERS","REQUIRES_LOWERCASE","REQUIRES_UPPERCASE","REQUIRES_SYMBOLS"]},CR="https://bdkxhfgus5dztobic7gvn5ymue.appsync-api.us-east-1.amazonaws.com/graphql",IR="us-east-1",MR="da2-yexc3mow25fc3amaendi4vscuq",kR="API_KEY",PR="AMAZON_COGNITO_USER_POOLS,AWS_IAM",zR={version:1,models:{Todo:{name:"Todo",fields:{id:{name:"id",isArray:!1,type:"ID",isRequired:!0,attributes:[]},content:{name:"content",isArray:!1,type:"String",isRequired:!1,attributes:[]},owner:{name:"owner",isArray:!1,type:"String",isRequired:!1,attributes:[]},createdAt:{name:"createdAt",isArray:!1,type:"AWSDateTime",isRequired:!0,attributes:[]},updatedAt:{name:"updatedAt",isArray:!1,type:"AWSDateTime",isRequired:!0,attributes:[]}},syncable:!0,pluralName:"Todos",attributes:[{type:"model",properties:{}},{type:"key",properties:{fields:["id"]}},{type:"auth",properties:{rules:[{provider:"userPools",ownerField:"owner",allow:"owner",identityClaim:"cognito:username",operations:["create","update","delete","read"]},{allow:"public",operations:["read"]}]}}],primaryKeyInfo:{isCustomPrimaryKey:!1,primaryKeyFieldName:"id",sortKeyFieldNames:[]}}},enums:{},nonModels:{}},LR={Auth:gR,aws_project_region:_R,aws_user_pools_id:yR,aws_user_pools_web_client_id:vR,aws_cognito_domain:xR,aws_cognito_region:wR,aws_cognito_identity_pool_id:bR,aws_cognito_signup_attributes:ER,aws_cognito_username_attributes:TR,aws_cognito_verification_mechanisms:SR,aws_cognito_password_protection_settings:AR,aws_appsync_graphqlEndpoint:CR,aws_appsync_region:IR,aws_appsync_apiKey:MR,aws_appsync_authenticationType:kR,aws_appsync_additionalAuthenticationTypes:PR,modelIntrospection:zR};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */mR.configure(LR);const RR={domain:void 0,region:void 0,identityPoolId:void 0,userPoolId:void 0,userPoolClientId:void 0};ft.createContext(RR);function ZS(t,i){return function(){return t.apply(i,arguments)}}const{toString:DR}=Object.prototype,{getPrototypeOf:lx}=Object,Ig=(t=>i=>{const l=DR.call(i);return t[l]||(t[l]=l.slice(8,-1).toLowerCase())})(Object.create(null)),Lo=t=>(t=t.toLowerCase(),i=>Ig(i)===t),Mg=t=>i=>typeof i===t,{isArray:Bu}=Array,cp=Mg("undefined");function OR(t){return t!==null&&!cp(t)&&t.constructor!==null&&!cp(t.constructor)&&zr(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const WS=Lo("ArrayBuffer");function BR(t){let i;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?i=ArrayBuffer.isView(t):i=t&&t.buffer&&WS(t.buffer),i}const FR=Mg("string"),zr=Mg("function"),HS=Mg("number"),kg=t=>t!==null&&typeof t=="object",NR=t=>t===!0||t===!1,Cm=t=>{if(Ig(t)!=="object")return!1;const i=lx(t);return(i===null||i===Object.prototype||Object.getPrototypeOf(i)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},UR=Lo("Date"),jR=Lo("File"),VR=Lo("Blob"),GR=Lo("FileList"),$R=t=>kg(t)&&zr(t.pipe),qR=t=>{let i;return t&&(typeof FormData=="function"&&t instanceof FormData||zr(t.append)&&((i=Ig(t))==="formdata"||i==="object"&&zr(t.toString)&&t.toString()==="[object FormData]"))},ZR=Lo("URLSearchParams"),[WR,HR,XR,KR]=["ReadableStream","Request","Response","Headers"].map(Lo),YR=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function gp(t,i,{allOwnKeys:l=!1}={}){if(t===null||typeof t>"u")return;let h,g;if(typeof t!="object"&&(t=[t]),Bu(t))for(h=0,g=t.length;h0;)if(g=l[h],i===g.toLowerCase())return g;return null}const Gl=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),KS=t=>!cp(t)&&t!==Gl;function Y0(){const{caseless:t}=KS(this)&&this||{},i={},l=(h,g)=>{const x=t&&XS(i,g)||g;Cm(i[x])&&Cm(h)?i[x]=Y0(i[x],h):Cm(h)?i[x]=Y0({},h):Bu(h)?i[x]=h.slice():i[x]=h};for(let h=0,g=arguments.length;h(gp(i,(g,x)=>{l&&zr(g)?t[x]=ZS(g,l):t[x]=g},{allOwnKeys:h}),t),QR=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),eD=(t,i,l,h)=>{t.prototype=Object.create(i.prototype,h),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:i.prototype}),l&&Object.assign(t.prototype,l)},tD=(t,i,l,h)=>{let g,x,T;const s={};if(i=i||{},t==null)return i;do{for(g=Object.getOwnPropertyNames(t),x=g.length;x-- >0;)T=g[x],(!h||h(T,t,i))&&!s[T]&&(i[T]=t[T],s[T]=!0);t=l!==!1&&lx(t)}while(t&&(!l||l(t,i))&&t!==Object.prototype);return i},nD=(t,i,l)=>{t=String(t),(l===void 0||l>t.length)&&(l=t.length),l-=i.length;const h=t.indexOf(i,l);return h!==-1&&h===l},iD=t=>{if(!t)return null;if(Bu(t))return t;let i=t.length;if(!HS(i))return null;const l=new Array(i);for(;i-- >0;)l[i]=t[i];return l},rD=(t=>i=>t&&i instanceof t)(typeof Uint8Array<"u"&&lx(Uint8Array)),oD=(t,i)=>{const h=(t&&t[Symbol.iterator]).call(t);let g;for(;(g=h.next())&&!g.done;){const x=g.value;i.call(t,x[0],x[1])}},sD=(t,i)=>{let l;const h=[];for(;(l=t.exec(i))!==null;)h.push(l);return h},aD=Lo("HTMLFormElement"),lD=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(l,h,g){return h.toUpperCase()+g}),zE=(({hasOwnProperty:t})=>(i,l)=>t.call(i,l))(Object.prototype),cD=Lo("RegExp"),YS=(t,i)=>{const l=Object.getOwnPropertyDescriptors(t),h={};gp(l,(g,x)=>{let T;(T=i(g,x,t))!==!1&&(h[x]=T||g)}),Object.defineProperties(t,h)},uD=t=>{YS(t,(i,l)=>{if(zr(t)&&["arguments","caller","callee"].indexOf(l)!==-1)return!1;const h=t[l];if(zr(h)){if(i.enumerable=!1,"writable"in i){i.writable=!1;return}i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+l+"'")})}})},hD=(t,i)=>{const l={},h=g=>{g.forEach(x=>{l[x]=!0})};return Bu(t)?h(t):h(String(t).split(i)),l},dD=()=>{},pD=(t,i)=>t!=null&&Number.isFinite(t=+t)?t:i,$y="abcdefghijklmnopqrstuvwxyz",LE="0123456789",JS={DIGIT:LE,ALPHA:$y,ALPHA_DIGIT:$y+$y.toUpperCase()+LE},fD=(t=16,i=JS.ALPHA_DIGIT)=>{let l="";const{length:h}=i;for(;t--;)l+=i[Math.random()*h|0];return l};function mD(t){return!!(t&&zr(t.append)&&t[Symbol.toStringTag]==="FormData"&&t[Symbol.iterator])}const gD=t=>{const i=new Array(10),l=(h,g)=>{if(kg(h)){if(i.indexOf(h)>=0)return;if(!("toJSON"in h)){i[g]=h;const x=Bu(h)?[]:{};return gp(h,(T,s)=>{const M=l(T,g+1);!cp(M)&&(x[s]=M)}),i[g]=void 0,x}}return h};return l(t,0)},_D=Lo("AsyncFunction"),yD=t=>t&&(kg(t)||zr(t))&&zr(t.then)&&zr(t.catch),QS=((t,i)=>t?setImmediate:i?((l,h)=>(Gl.addEventListener("message",({source:g,data:x})=>{g===Gl&&x===l&&h.length&&h.shift()()},!1),g=>{h.push(g),Gl.postMessage(l,"*")}))(`axios@${Math.random()}`,[]):l=>setTimeout(l))(typeof setImmediate=="function",zr(Gl.postMessage)),vD=typeof queueMicrotask<"u"?queueMicrotask.bind(Gl):typeof process<"u"&&process.nextTick||QS,Fe={isArray:Bu,isArrayBuffer:WS,isBuffer:OR,isFormData:qR,isArrayBufferView:BR,isString:FR,isNumber:HS,isBoolean:NR,isObject:kg,isPlainObject:Cm,isReadableStream:WR,isRequest:HR,isResponse:XR,isHeaders:KR,isUndefined:cp,isDate:UR,isFile:jR,isBlob:VR,isRegExp:cD,isFunction:zr,isStream:$R,isURLSearchParams:ZR,isTypedArray:rD,isFileList:GR,forEach:gp,merge:Y0,extend:JR,trim:YR,stripBOM:QR,inherits:eD,toFlatObject:tD,kindOf:Ig,kindOfTest:Lo,endsWith:nD,toArray:iD,forEachEntry:oD,matchAll:sD,isHTMLForm:aD,hasOwnProperty:zE,hasOwnProp:zE,reduceDescriptors:YS,freezeMethods:uD,toObjectSet:hD,toCamelCase:lD,noop:dD,toFiniteNumber:pD,findKey:XS,global:Gl,isContextDefined:KS,ALPHABET:JS,generateString:fD,isSpecCompliantForm:mD,toJSONObject:gD,isAsyncFn:_D,isThenable:yD,setImmediate:QS,asap:vD};function qt(t,i,l,h,g){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",i&&(this.code=i),l&&(this.config=l),h&&(this.request=h),g&&(this.response=g,this.status=g.status?g.status:null)}Fe.inherits(qt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Fe.toJSONObject(this.config),code:this.code,status:this.status}}});const eA=qt.prototype,tA={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{tA[t]={value:t}});Object.defineProperties(qt,tA);Object.defineProperty(eA,"isAxiosError",{value:!0});qt.from=(t,i,l,h,g,x)=>{const T=Object.create(eA);return Fe.toFlatObject(t,T,function(M){return M!==Error.prototype},s=>s!=="isAxiosError"),qt.call(T,t.message,i,l,h,g),T.cause=t,T.name=t.name,x&&Object.assign(T,x),T};const xD=null;function J0(t){return Fe.isPlainObject(t)||Fe.isArray(t)}function nA(t){return Fe.endsWith(t,"[]")?t.slice(0,-2):t}function RE(t,i,l){return t?t.concat(i).map(function(g,x){return g=nA(g),!l&&x?"["+g+"]":g}).join(l?".":""):i}function wD(t){return Fe.isArray(t)&&!t.some(J0)}const bD=Fe.toFlatObject(Fe,{},null,function(i){return/^is[A-Z]/.test(i)});function Pg(t,i,l){if(!Fe.isObject(t))throw new TypeError("target must be an object");i=i||new FormData,l=Fe.toFlatObject(l,{metaTokens:!0,dots:!1,indexes:!1},!1,function(ke,ze){return!Fe.isUndefined(ze[ke])});const h=l.metaTokens,g=l.visitor||q,x=l.dots,T=l.indexes,M=(l.Blob||typeof Blob<"u"&&Blob)&&Fe.isSpecCompliantForm(i);if(!Fe.isFunction(g))throw new TypeError("visitor must be a function");function F(fe){if(fe===null)return"";if(Fe.isDate(fe))return fe.toISOString();if(!M&&Fe.isBlob(fe))throw new qt("Blob is not supported. Use a Buffer instead.");return Fe.isArrayBuffer(fe)||Fe.isTypedArray(fe)?M&&typeof Blob=="function"?new Blob([fe]):Buffer.from(fe):fe}function q(fe,ke,ze){let ue=fe;if(fe&&!ze&&typeof fe=="object"){if(Fe.endsWith(ke,"{}"))ke=h?ke:ke.slice(0,-2),fe=JSON.stringify(fe);else if(Fe.isArray(fe)&&wD(fe)||(Fe.isFileList(fe)||Fe.endsWith(ke,"[]"))&&(ue=Fe.toArray(fe)))return ke=nA(ke),ue.forEach(function(le,De){!(Fe.isUndefined(le)||le===null)&&i.append(T===!0?RE([ke],De,x):T===null?ke:ke+"[]",F(le))}),!1}return J0(fe)?!0:(i.append(RE(ze,ke,x),F(fe)),!1)}const X=[],oe=Object.assign(bD,{defaultVisitor:q,convertValue:F,isVisitable:J0});function Ae(fe,ke){if(!Fe.isUndefined(fe)){if(X.indexOf(fe)!==-1)throw Error("Circular reference detected in "+ke.join("."));X.push(fe),Fe.forEach(fe,function(ue,re){(!(Fe.isUndefined(ue)||ue===null)&&g.call(i,ue,Fe.isString(re)?re.trim():re,ke,oe))===!0&&Ae(ue,ke?ke.concat(re):[re])}),X.pop()}}if(!Fe.isObject(t))throw new TypeError("data must be an object");return Ae(t),i}function DE(t){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(h){return i[h]})}function cx(t,i){this._pairs=[],t&&Pg(t,this,i)}const iA=cx.prototype;iA.append=function(i,l){this._pairs.push([i,l])};iA.toString=function(i){const l=i?function(h){return i.call(this,h,DE)}:DE;return this._pairs.map(function(g){return l(g[0])+"="+l(g[1])},"").join("&")};function ED(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function rA(t,i,l){if(!i)return t;const h=l&&l.encode||ED,g=l&&l.serialize;let x;if(g?x=g(i,l):x=Fe.isURLSearchParams(i)?i.toString():new cx(i,l).toString(h),x){const T=t.indexOf("#");T!==-1&&(t=t.slice(0,T)),t+=(t.indexOf("?")===-1?"?":"&")+x}return t}class TD{constructor(){this.handlers=[]}use(i,l,h){return this.handlers.push({fulfilled:i,rejected:l,synchronous:h?h.synchronous:!1,runWhen:h?h.runWhen:null}),this.handlers.length-1}eject(i){this.handlers[i]&&(this.handlers[i]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(i){Fe.forEach(this.handlers,function(h){h!==null&&i(h)})}}const OE=TD,oA={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},SD=typeof URLSearchParams<"u"?URLSearchParams:cx,AD=typeof FormData<"u"?FormData:null,CD=typeof Blob<"u"?Blob:null,ID={isBrowser:!0,classes:{URLSearchParams:SD,FormData:AD,Blob:CD},protocols:["http","https","file","blob","url","data"]},ux=typeof window<"u"&&typeof document<"u",Q0=typeof navigator=="object"&&navigator||void 0,MD=ux&&(!Q0||["ReactNative","NativeScript","NS"].indexOf(Q0.product)<0),kD=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),PD=ux&&window.location.href||"http://localhost",zD=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ux,hasStandardBrowserEnv:MD,hasStandardBrowserWebWorkerEnv:kD,navigator:Q0,origin:PD},Symbol.toStringTag,{value:"Module"})),vr={...zD,...ID};function LD(t,i){return Pg(t,new vr.classes.URLSearchParams,Object.assign({visitor:function(l,h,g,x){return vr.isNode&&Fe.isBuffer(l)?(this.append(h,l.toString("base64")),!1):x.defaultVisitor.apply(this,arguments)}},i))}function RD(t){return Fe.matchAll(/\w+|\[(\w*)]/g,t).map(i=>i[0]==="[]"?"":i[1]||i[0])}function DD(t){const i={},l=Object.keys(t);let h;const g=l.length;let x;for(h=0;h=l.length;return T=!T&&Fe.isArray(g)?g.length:T,M?(Fe.hasOwnProp(g,T)?g[T]=[g[T],h]:g[T]=h,!s):((!g[T]||!Fe.isObject(g[T]))&&(g[T]=[]),i(l,h,g[T],x)&&Fe.isArray(g[T])&&(g[T]=DD(g[T])),!s)}if(Fe.isFormData(t)&&Fe.isFunction(t.entries)){const l={};return Fe.forEachEntry(t,(h,g)=>{i(RD(h),g,l,0)}),l}return null}function OD(t,i,l){if(Fe.isString(t))try{return(i||JSON.parse)(t),Fe.trim(t)}catch(h){if(h.name!=="SyntaxError")throw h}return(l||JSON.stringify)(t)}const hx={transitional:oA,adapter:["xhr","http","fetch"],transformRequest:[function(i,l){const h=l.getContentType()||"",g=h.indexOf("application/json")>-1,x=Fe.isObject(i);if(x&&Fe.isHTMLForm(i)&&(i=new FormData(i)),Fe.isFormData(i))return g?JSON.stringify(sA(i)):i;if(Fe.isArrayBuffer(i)||Fe.isBuffer(i)||Fe.isStream(i)||Fe.isFile(i)||Fe.isBlob(i)||Fe.isReadableStream(i))return i;if(Fe.isArrayBufferView(i))return i.buffer;if(Fe.isURLSearchParams(i))return l.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),i.toString();let s;if(x){if(h.indexOf("application/x-www-form-urlencoded")>-1)return LD(i,this.formSerializer).toString();if((s=Fe.isFileList(i))||h.indexOf("multipart/form-data")>-1){const M=this.env&&this.env.FormData;return Pg(s?{"files[]":i}:i,M&&new M,this.formSerializer)}}return x||g?(l.setContentType("application/json",!1),OD(i)):i}],transformResponse:[function(i){const l=this.transitional||hx.transitional,h=l&&l.forcedJSONParsing,g=this.responseType==="json";if(Fe.isResponse(i)||Fe.isReadableStream(i))return i;if(i&&Fe.isString(i)&&(h&&!this.responseType||g)){const T=!(l&&l.silentJSONParsing)&&g;try{return JSON.parse(i)}catch(s){if(T)throw s.name==="SyntaxError"?qt.from(s,qt.ERR_BAD_RESPONSE,this,null,this.response):s}}return i}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:vr.classes.FormData,Blob:vr.classes.Blob},validateStatus:function(i){return i>=200&&i<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Fe.forEach(["delete","get","head","post","put","patch"],t=>{hx.headers[t]={}});const dx=hx,BD=Fe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),FD=t=>{const i={};let l,h,g;return t&&t.split(` +`).forEach(function(T){g=T.indexOf(":"),l=T.substring(0,g).trim().toLowerCase(),h=T.substring(g+1).trim(),!(!l||i[l]&&BD[l])&&(l==="set-cookie"?i[l]?i[l].push(h):i[l]=[h]:i[l]=i[l]?i[l]+", "+h:h)}),i},BE=Symbol("internals");function Cd(t){return t&&String(t).trim().toLowerCase()}function Im(t){return t===!1||t==null?t:Fe.isArray(t)?t.map(Im):String(t)}function ND(t){const i=Object.create(null),l=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let h;for(;h=l.exec(t);)i[h[1]]=h[2];return i}const UD=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function qy(t,i,l,h,g){if(Fe.isFunction(h))return h.call(this,i,l);if(g&&(i=l),!!Fe.isString(i)){if(Fe.isString(h))return i.indexOf(h)!==-1;if(Fe.isRegExp(h))return h.test(i)}}function jD(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(i,l,h)=>l.toUpperCase()+h)}function VD(t,i){const l=Fe.toCamelCase(" "+i);["get","set","has"].forEach(h=>{Object.defineProperty(t,h+l,{value:function(g,x,T){return this[h].call(this,i,g,x,T)},configurable:!0})})}class zg{constructor(i){i&&this.set(i)}set(i,l,h){const g=this;function x(s,M,F){const q=Cd(M);if(!q)throw new Error("header name must be a non-empty string");const X=Fe.findKey(g,q);(!X||g[X]===void 0||F===!0||F===void 0&&g[X]!==!1)&&(g[X||M]=Im(s))}const T=(s,M)=>Fe.forEach(s,(F,q)=>x(F,q,M));if(Fe.isPlainObject(i)||i instanceof this.constructor)T(i,l);else if(Fe.isString(i)&&(i=i.trim())&&!UD(i))T(FD(i),l);else if(Fe.isHeaders(i))for(const[s,M]of i.entries())x(M,s,h);else i!=null&&x(l,i,h);return this}get(i,l){if(i=Cd(i),i){const h=Fe.findKey(this,i);if(h){const g=this[h];if(!l)return g;if(l===!0)return ND(g);if(Fe.isFunction(l))return l.call(this,g,h);if(Fe.isRegExp(l))return l.exec(g);throw new TypeError("parser must be boolean|regexp|function")}}}has(i,l){if(i=Cd(i),i){const h=Fe.findKey(this,i);return!!(h&&this[h]!==void 0&&(!l||qy(this,this[h],h,l)))}return!1}delete(i,l){const h=this;let g=!1;function x(T){if(T=Cd(T),T){const s=Fe.findKey(h,T);s&&(!l||qy(h,h[s],s,l))&&(delete h[s],g=!0)}}return Fe.isArray(i)?i.forEach(x):x(i),g}clear(i){const l=Object.keys(this);let h=l.length,g=!1;for(;h--;){const x=l[h];(!i||qy(this,this[x],x,i,!0))&&(delete this[x],g=!0)}return g}normalize(i){const l=this,h={};return Fe.forEach(this,(g,x)=>{const T=Fe.findKey(h,x);if(T){l[T]=Im(g),delete l[x];return}const s=i?jD(x):String(x).trim();s!==x&&delete l[x],l[s]=Im(g),h[s]=!0}),this}concat(...i){return this.constructor.concat(this,...i)}toJSON(i){const l=Object.create(null);return Fe.forEach(this,(h,g)=>{h!=null&&h!==!1&&(l[g]=i&&Fe.isArray(h)?h.join(", "):h)}),l}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([i,l])=>i+": "+l).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(i){return i instanceof this?i:new this(i)}static concat(i,...l){const h=new this(i);return l.forEach(g=>h.set(g)),h}static accessor(i){const h=(this[BE]=this[BE]={accessors:{}}).accessors,g=this.prototype;function x(T){const s=Cd(T);h[s]||(VD(g,T),h[s]=!0)}return Fe.isArray(i)?i.forEach(x):x(i),this}}zg.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Fe.reduceDescriptors(zg.prototype,({value:t},i)=>{let l=i[0].toUpperCase()+i.slice(1);return{get:()=>t,set(h){this[l]=h}}});Fe.freezeMethods(zg);const Po=zg;function Zy(t,i){const l=this||dx,h=i||l,g=Po.from(h.headers);let x=h.data;return Fe.forEach(t,function(s){x=s.call(l,x,g.normalize(),i?i.status:void 0)}),g.normalize(),x}function aA(t){return!!(t&&t.__CANCEL__)}function Fu(t,i,l){qt.call(this,t??"canceled",qt.ERR_CANCELED,i,l),this.name="CanceledError"}Fe.inherits(Fu,qt,{__CANCEL__:!0});function lA(t,i,l){const h=l.config.validateStatus;!l.status||!h||h(l.status)?t(l):i(new qt("Request failed with status code "+l.status,[qt.ERR_BAD_REQUEST,qt.ERR_BAD_RESPONSE][Math.floor(l.status/100)-4],l.config,l.request,l))}function GD(t){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return i&&i[1]||""}function $D(t,i){t=t||10;const l=new Array(t),h=new Array(t);let g=0,x=0,T;return i=i!==void 0?i:1e3,function(M){const F=Date.now(),q=h[x];T||(T=F),l[g]=M,h[g]=F;let X=x,oe=0;for(;X!==g;)oe+=l[X++],X=X%t;if(g=(g+1)%t,g===x&&(x=(x+1)%t),F-T{l=q,g=null,x&&(clearTimeout(x),x=null),t.apply(null,F)};return[(...F)=>{const q=Date.now(),X=q-l;X>=h?T(F,q):(g=F,x||(x=setTimeout(()=>{x=null,T(g)},h-X)))},()=>g&&T(g)]}const rg=(t,i,l=3)=>{let h=0;const g=$D(50,250);return qD(x=>{const T=x.loaded,s=x.lengthComputable?x.total:void 0,M=T-h,F=g(M),q=T<=s;h=T;const X={loaded:T,total:s,progress:s?T/s:void 0,bytes:M,rate:F||void 0,estimated:F&&s&&q?(s-T)/F:void 0,event:x,lengthComputable:s!=null,[i?"download":"upload"]:!0};t(X)},l)},FE=(t,i)=>{const l=t!=null;return[h=>i[0]({lengthComputable:l,total:t,loaded:h}),i[1]]},NE=t=>(...i)=>Fe.asap(()=>t(...i)),ZD=vr.hasStandardBrowserEnv?function(){const i=vr.navigator&&/(msie|trident)/i.test(vr.navigator.userAgent),l=document.createElement("a");let h;function g(x){let T=x;return i&&(l.setAttribute("href",T),T=l.href),l.setAttribute("href",T),{href:l.href,protocol:l.protocol?l.protocol.replace(/:$/,""):"",host:l.host,search:l.search?l.search.replace(/^\?/,""):"",hash:l.hash?l.hash.replace(/^#/,""):"",hostname:l.hostname,port:l.port,pathname:l.pathname.charAt(0)==="/"?l.pathname:"/"+l.pathname}}return h=g(window.location.href),function(T){const s=Fe.isString(T)?g(T):T;return s.protocol===h.protocol&&s.host===h.host}}():function(){return function(){return!0}}(),WD=vr.hasStandardBrowserEnv?{write(t,i,l,h,g,x){const T=[t+"="+encodeURIComponent(i)];Fe.isNumber(l)&&T.push("expires="+new Date(l).toGMTString()),Fe.isString(h)&&T.push("path="+h),Fe.isString(g)&&T.push("domain="+g),x===!0&&T.push("secure"),document.cookie=T.join("; ")},read(t){const i=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return i?decodeURIComponent(i[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function HD(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function XD(t,i){return i?t.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):t}function cA(t,i){return t&&!HD(i)?XD(t,i):i}const UE=t=>t instanceof Po?{...t}:t;function Yl(t,i){i=i||{};const l={};function h(F,q,X){return Fe.isPlainObject(F)&&Fe.isPlainObject(q)?Fe.merge.call({caseless:X},F,q):Fe.isPlainObject(q)?Fe.merge({},q):Fe.isArray(q)?q.slice():q}function g(F,q,X){if(Fe.isUndefined(q)){if(!Fe.isUndefined(F))return h(void 0,F,X)}else return h(F,q,X)}function x(F,q){if(!Fe.isUndefined(q))return h(void 0,q)}function T(F,q){if(Fe.isUndefined(q)){if(!Fe.isUndefined(F))return h(void 0,F)}else return h(void 0,q)}function s(F,q,X){if(X in i)return h(F,q);if(X in t)return h(void 0,F)}const M={url:x,method:x,data:x,baseURL:T,transformRequest:T,transformResponse:T,paramsSerializer:T,timeout:T,timeoutMessage:T,withCredentials:T,withXSRFToken:T,adapter:T,responseType:T,xsrfCookieName:T,xsrfHeaderName:T,onUploadProgress:T,onDownloadProgress:T,decompress:T,maxContentLength:T,maxBodyLength:T,beforeRedirect:T,transport:T,httpAgent:T,httpsAgent:T,cancelToken:T,socketPath:T,responseEncoding:T,validateStatus:s,headers:(F,q)=>g(UE(F),UE(q),!0)};return Fe.forEach(Object.keys(Object.assign({},t,i)),function(q){const X=M[q]||g,oe=X(t[q],i[q],q);Fe.isUndefined(oe)&&X!==s||(l[q]=oe)}),l}const uA=t=>{const i=Yl({},t);let{data:l,withXSRFToken:h,xsrfHeaderName:g,xsrfCookieName:x,headers:T,auth:s}=i;i.headers=T=Po.from(T),i.url=rA(cA(i.baseURL,i.url),t.params,t.paramsSerializer),s&&T.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let M;if(Fe.isFormData(l)){if(vr.hasStandardBrowserEnv||vr.hasStandardBrowserWebWorkerEnv)T.setContentType(void 0);else if((M=T.getContentType())!==!1){const[F,...q]=M?M.split(";").map(X=>X.trim()).filter(Boolean):[];T.setContentType([F||"multipart/form-data",...q].join("; "))}}if(vr.hasStandardBrowserEnv&&(h&&Fe.isFunction(h)&&(h=h(i)),h||h!==!1&&ZD(i.url))){const F=g&&x&&WD.read(x);F&&T.set(g,F)}return i},KD=typeof XMLHttpRequest<"u",YD=KD&&function(t){return new Promise(function(l,h){const g=uA(t);let x=g.data;const T=Po.from(g.headers).normalize();let{responseType:s,onUploadProgress:M,onDownloadProgress:F}=g,q,X,oe,Ae,fe;function ke(){Ae&&Ae(),fe&&fe(),g.cancelToken&&g.cancelToken.unsubscribe(q),g.signal&&g.signal.removeEventListener("abort",q)}let ze=new XMLHttpRequest;ze.open(g.method.toUpperCase(),g.url,!0),ze.timeout=g.timeout;function ue(){if(!ze)return;const le=Po.from("getAllResponseHeaders"in ze&&ze.getAllResponseHeaders()),je={data:!s||s==="text"||s==="json"?ze.responseText:ze.response,status:ze.status,statusText:ze.statusText,headers:le,config:t,request:ze};lA(function(lt){l(lt),ke()},function(lt){h(lt),ke()},je),ze=null}"onloadend"in ze?ze.onloadend=ue:ze.onreadystatechange=function(){!ze||ze.readyState!==4||ze.status===0&&!(ze.responseURL&&ze.responseURL.indexOf("file:")===0)||setTimeout(ue)},ze.onabort=function(){ze&&(h(new qt("Request aborted",qt.ECONNABORTED,t,ze)),ze=null)},ze.onerror=function(){h(new qt("Network Error",qt.ERR_NETWORK,t,ze)),ze=null},ze.ontimeout=function(){let De=g.timeout?"timeout of "+g.timeout+"ms exceeded":"timeout exceeded";const je=g.transitional||oA;g.timeoutErrorMessage&&(De=g.timeoutErrorMessage),h(new qt(De,je.clarifyTimeoutError?qt.ETIMEDOUT:qt.ECONNABORTED,t,ze)),ze=null},x===void 0&&T.setContentType(null),"setRequestHeader"in ze&&Fe.forEach(T.toJSON(),function(De,je){ze.setRequestHeader(je,De)}),Fe.isUndefined(g.withCredentials)||(ze.withCredentials=!!g.withCredentials),s&&s!=="json"&&(ze.responseType=g.responseType),F&&([oe,fe]=rg(F,!0),ze.addEventListener("progress",oe)),M&&ze.upload&&([X,Ae]=rg(M),ze.upload.addEventListener("progress",X),ze.upload.addEventListener("loadend",Ae)),(g.cancelToken||g.signal)&&(q=le=>{ze&&(h(!le||le.type?new Fu(null,t,ze):le),ze.abort(),ze=null)},g.cancelToken&&g.cancelToken.subscribe(q),g.signal&&(g.signal.aborted?q():g.signal.addEventListener("abort",q)));const re=GD(g.url);if(re&&vr.protocols.indexOf(re)===-1){h(new qt("Unsupported protocol "+re+":",qt.ERR_BAD_REQUEST,t));return}ze.send(x||null)})},JD=(t,i)=>{const{length:l}=t=t?t.filter(Boolean):[];if(i||l){let h=new AbortController,g;const x=function(F){if(!g){g=!0,s();const q=F instanceof Error?F:this.reason;h.abort(q instanceof qt?q:new Fu(q instanceof Error?q.message:q))}};let T=i&&setTimeout(()=>{T=null,x(new qt(`timeout ${i} of ms exceeded`,qt.ETIMEDOUT))},i);const s=()=>{t&&(T&&clearTimeout(T),T=null,t.forEach(F=>{F.unsubscribe?F.unsubscribe(x):F.removeEventListener("abort",x)}),t=null)};t.forEach(F=>F.addEventListener("abort",x));const{signal:M}=h;return M.unsubscribe=()=>Fe.asap(s),M}},QD=JD,e3=function*(t,i){let l=t.byteLength;if(!i||l{const g=t3(t,i);let x=0,T,s=M=>{T||(T=!0,h&&h(M))};return new ReadableStream({async pull(M){try{const{done:F,value:q}=await g.next();if(F){s(),M.close();return}let X=q.byteLength;if(l){let oe=x+=X;l(oe)}M.enqueue(new Uint8Array(q))}catch(F){throw s(F),F}},cancel(M){return s(M),g.return()}},{highWaterMark:2})},Lg=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",hA=Lg&&typeof ReadableStream=="function",i3=Lg&&(typeof TextEncoder=="function"?(t=>i=>t.encode(i))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),dA=(t,...i)=>{try{return!!t(...i)}catch{return!1}},r3=hA&&dA(()=>{let t=!1;const i=new Request(vr.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!i}),VE=64*1024,ev=hA&&dA(()=>Fe.isReadableStream(new Response("").body)),og={stream:ev&&(t=>t.body)};Lg&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(i=>{!og[i]&&(og[i]=Fe.isFunction(t[i])?l=>l[i]():(l,h)=>{throw new qt(`Response type '${i}' is not supported`,qt.ERR_NOT_SUPPORT,h)})})})(new Response);const o3=async t=>{if(t==null)return 0;if(Fe.isBlob(t))return t.size;if(Fe.isSpecCompliantForm(t))return(await new Request(vr.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(Fe.isArrayBufferView(t)||Fe.isArrayBuffer(t))return t.byteLength;if(Fe.isURLSearchParams(t)&&(t=t+""),Fe.isString(t))return(await i3(t)).byteLength},s3=async(t,i)=>{const l=Fe.toFiniteNumber(t.getContentLength());return l??o3(i)},a3=Lg&&(async t=>{let{url:i,method:l,data:h,signal:g,cancelToken:x,timeout:T,onDownloadProgress:s,onUploadProgress:M,responseType:F,headers:q,withCredentials:X="same-origin",fetchOptions:oe}=uA(t);F=F?(F+"").toLowerCase():"text";let Ae=QD([g,x&&x.toAbortSignal()],T),fe;const ke=Ae&&Ae.unsubscribe&&(()=>{Ae.unsubscribe()});let ze;try{if(M&&r3&&l!=="get"&&l!=="head"&&(ze=await s3(q,h))!==0){let je=new Request(i,{method:"POST",body:h,duplex:"half"}),tt;if(Fe.isFormData(h)&&(tt=je.headers.get("content-type"))&&q.setContentType(tt),je.body){const[lt,ut]=FE(ze,rg(NE(M)));h=jE(je.body,VE,lt,ut)}}Fe.isString(X)||(X=X?"include":"omit");const ue="credentials"in Request.prototype;fe=new Request(i,{...oe,signal:Ae,method:l.toUpperCase(),headers:q.normalize().toJSON(),body:h,duplex:"half",credentials:ue?X:void 0});let re=await fetch(fe);const le=ev&&(F==="stream"||F==="response");if(ev&&(s||le&&ke)){const je={};["status","statusText","headers"].forEach(Ve=>{je[Ve]=re[Ve]});const tt=Fe.toFiniteNumber(re.headers.get("content-length")),[lt,ut]=s&&FE(tt,rg(NE(s),!0))||[];re=new Response(jE(re.body,VE,lt,()=>{ut&&ut(),ke&&ke()}),je)}F=F||"text";let De=await og[Fe.findKey(og,F)||"text"](re,t);return!le&&ke&&ke(),await new Promise((je,tt)=>{lA(je,tt,{data:De,headers:Po.from(re.headers),status:re.status,statusText:re.statusText,config:t,request:fe})})}catch(ue){throw ke&&ke(),ue&&ue.name==="TypeError"&&/fetch/i.test(ue.message)?Object.assign(new qt("Network Error",qt.ERR_NETWORK,t,fe),{cause:ue.cause||ue}):qt.from(ue,ue&&ue.code,t,fe)}}),tv={http:xD,xhr:YD,fetch:a3};Fe.forEach(tv,(t,i)=>{if(t){try{Object.defineProperty(t,"name",{value:i})}catch{}Object.defineProperty(t,"adapterName",{value:i})}});const GE=t=>`- ${t}`,l3=t=>Fe.isFunction(t)||t===null||t===!1,pA={getAdapter:t=>{t=Fe.isArray(t)?t:[t];const{length:i}=t;let l,h;const g={};for(let x=0;x`adapter ${s} `+(M===!1?"is not supported by the environment":"is not available in the build"));let T=i?x.length>1?`since : +`+x.map(GE).join(` +`):" "+GE(x[0]):"as no adapter specified";throw new qt("There is no suitable adapter to dispatch the request "+T,"ERR_NOT_SUPPORT")}return h},adapters:tv};function Wy(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Fu(null,t)}function $E(t){return Wy(t),t.headers=Po.from(t.headers),t.data=Zy.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),pA.getAdapter(t.adapter||dx.adapter)(t).then(function(h){return Wy(t),h.data=Zy.call(t,t.transformResponse,h),h.headers=Po.from(h.headers),h},function(h){return aA(h)||(Wy(t),h&&h.response&&(h.response.data=Zy.call(t,t.transformResponse,h.response),h.response.headers=Po.from(h.response.headers))),Promise.reject(h)})}const fA="1.7.7",px={};["object","boolean","number","function","string","symbol"].forEach((t,i)=>{px[t]=function(h){return typeof h===t||"a"+(i<1?"n ":" ")+t}});const qE={};px.transitional=function(i,l,h){function g(x,T){return"[Axios v"+fA+"] Transitional option '"+x+"'"+T+(h?". "+h:"")}return(x,T,s)=>{if(i===!1)throw new qt(g(T," has been removed"+(l?" in "+l:"")),qt.ERR_DEPRECATED);return l&&!qE[T]&&(qE[T]=!0,console.warn(g(T," has been deprecated since v"+l+" and will be removed in the near future"))),i?i(x,T,s):!0}};function c3(t,i,l){if(typeof t!="object")throw new qt("options must be an object",qt.ERR_BAD_OPTION_VALUE);const h=Object.keys(t);let g=h.length;for(;g-- >0;){const x=h[g],T=i[x];if(T){const s=t[x],M=s===void 0||T(s,x,t);if(M!==!0)throw new qt("option "+x+" must be "+M,qt.ERR_BAD_OPTION_VALUE);continue}if(l!==!0)throw new qt("Unknown option "+x,qt.ERR_BAD_OPTION)}}const nv={assertOptions:c3,validators:px},wa=nv.validators;class sg{constructor(i){this.defaults=i,this.interceptors={request:new OE,response:new OE}}async request(i,l){try{return await this._request(i,l)}catch(h){if(h instanceof Error){let g;Error.captureStackTrace?Error.captureStackTrace(g={}):g=new Error;const x=g.stack?g.stack.replace(/^.+\n/,""):"";try{h.stack?x&&!String(h.stack).endsWith(x.replace(/^.+\n.+\n/,""))&&(h.stack+=` +`+x):h.stack=x}catch{}}throw h}}_request(i,l){typeof i=="string"?(l=l||{},l.url=i):l=i||{},l=Yl(this.defaults,l);const{transitional:h,paramsSerializer:g,headers:x}=l;h!==void 0&&nv.assertOptions(h,{silentJSONParsing:wa.transitional(wa.boolean),forcedJSONParsing:wa.transitional(wa.boolean),clarifyTimeoutError:wa.transitional(wa.boolean)},!1),g!=null&&(Fe.isFunction(g)?l.paramsSerializer={serialize:g}:nv.assertOptions(g,{encode:wa.function,serialize:wa.function},!0)),l.method=(l.method||this.defaults.method||"get").toLowerCase();let T=x&&Fe.merge(x.common,x[l.method]);x&&Fe.forEach(["delete","get","head","post","put","patch","common"],fe=>{delete x[fe]}),l.headers=Po.concat(T,x);const s=[];let M=!0;this.interceptors.request.forEach(function(ke){typeof ke.runWhen=="function"&&ke.runWhen(l)===!1||(M=M&&ke.synchronous,s.unshift(ke.fulfilled,ke.rejected))});const F=[];this.interceptors.response.forEach(function(ke){F.push(ke.fulfilled,ke.rejected)});let q,X=0,oe;if(!M){const fe=[$E.bind(this),void 0];for(fe.unshift.apply(fe,s),fe.push.apply(fe,F),oe=fe.length,q=Promise.resolve(l);X{if(!h._listeners)return;let x=h._listeners.length;for(;x-- >0;)h._listeners[x](g);h._listeners=null}),this.promise.then=g=>{let x;const T=new Promise(s=>{h.subscribe(s),x=s}).then(g);return T.cancel=function(){h.unsubscribe(x)},T},i(function(x,T,s){h.reason||(h.reason=new Fu(x,T,s),l(h.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(i){if(this.reason){i(this.reason);return}this._listeners?this._listeners.push(i):this._listeners=[i]}unsubscribe(i){if(!this._listeners)return;const l=this._listeners.indexOf(i);l!==-1&&this._listeners.splice(l,1)}toAbortSignal(){const i=new AbortController,l=h=>{i.abort(h)};return this.subscribe(l),i.signal.unsubscribe=()=>this.unsubscribe(l),i.signal}static source(){let i;return{token:new fx(function(g){i=g}),cancel:i}}}const u3=fx;function h3(t){return function(l){return t.apply(null,l)}}function d3(t){return Fe.isObject(t)&&t.isAxiosError===!0}const iv={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(iv).forEach(([t,i])=>{iv[i]=t});const p3=iv;function mA(t){const i=new Mm(t),l=ZS(Mm.prototype.request,i);return Fe.extend(l,Mm.prototype,i,{allOwnKeys:!0}),Fe.extend(l,i,null,{allOwnKeys:!0}),l.create=function(g){return mA(Yl(t,g))},l}const hi=mA(dx);hi.Axios=Mm;hi.CanceledError=Fu;hi.CancelToken=u3;hi.isCancel=aA;hi.VERSION=fA;hi.toFormData=Pg;hi.AxiosError=qt;hi.Cancel=hi.CanceledError;hi.all=function(i){return Promise.all(i)};hi.spread=h3;hi.isAxiosError=d3;hi.mergeConfig=Yl;hi.AxiosHeaders=Po;hi.formToJSON=t=>sA(Fe.isHTMLForm(t)?new FormData(t):t);hi.getAdapter=pA.getAdapter;hi.HttpStatusCode=p3;hi.default=hi;const f3=hi;/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */const mu="https://cori-data-api.ruralinnovation.us/",rv=f3.create({baseURL:mu,headers:{"Content-Type":"application/json"}}),Hy={},gA={apiClient:rv,authenticated:!1,authenticated_user:null,autoSignOut:null,baseURL:mu,token:null,data:{get:()=>Hy,set:t=>{for(const i in t)t.hasOwnProperty[i]&&(Hy[i]=t)}},setData:t=>{for(const i in t)t.hasOwnProperty[i]&&(Hy[i]=t)}},_A=ft.createContext(gA);let hm=!1,ZE=!1;function m3(t){const[i,l]=ft.useState(Object.assign(Object.assign({},gA),{baseURL:t.baseURL?t.baseURL:mu,setData:h}));function h(g){const x=i;l(Object.assign(Object.assign({},x),{data:Object.assign(Object.assign({},x.data),g),setData:h}))}return t.baseURL&&t.baseURL.length>0&&rv.interceptors.request.use(g=>(g.baseURL=t.baseURL,console.log("API baseURL updated:",g.baseURL),g),g=>Promise.reject(g)),ft.useEffect(()=>{if(l(Object.assign(Object.assign({},i),{autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:g}=t;g(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL?t.baseURL:mu})),t.fetchAuthSession){const{fetchAuthSession:g}=t;g().then(T=>{if(!hm){const s=T.tokens;if(console.log("API tokens:",s),s&&s.hasOwnProperty("idToken")&&(hm=!0,console.log("API Session is authenticated:",hm),console.log("API Session config:",T),console.log("idToken:",s.idToken),rv.interceptors.request.use(M=>{const F=s.idToken;return F&&(M.headers.Authorization=`Bearer ${F}`),t.baseURL&&(M.baseURL=t.baseURL),M},M=>Promise.reject(M)),l(Object.assign(Object.assign({},i),{authenticated:!0,autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:M}=t;M(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL||mu,token:s.idToken})),t.getCurrentUser)){const{getCurrentUser:M}=t;M().then(q=>{ZE||(ZE=!0,console.log("API User is authenticated:",hm),console.log("API User:",q),console.log("API User type:",q.constructor.name),l(Object.assign(Object.assign({},i),{authenticated:!0,authenticated_user:q,autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:X}=t;X(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL||mu,token:s.idToken})))})}}})}},[]),_y.createElement(_y.Fragment,null,_y.createElement(_A.Provider,{value:i},t.children))}const g3="modulepreload",_3=function(t){return"/"+t},WE={},y3=function(i,l,h){if(!l||l.length===0)return i();const g=document.getElementsByTagName("link");return Promise.all(l.map(x=>{if(x=_3(x),x in WE)return;WE[x]=!0;const T=x.endsWith(".css"),s=T?'[rel="stylesheet"]':"";if(!!h)for(let q=g.length-1;q>=0;q--){const X=g[q];if(X.href===x&&(!T||X.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${x}"]${s}`))return;const F=document.createElement("link");if(F.rel=T?"stylesheet":g3,T||(F.as="script",F.crossOrigin=""),F.href=x,document.head.appendChild(F),T)return new Promise((q,X)=>{F.addEventListener("load",q),F.addEventListener("error",()=>X(new Error(`Unable to preload CSS for ${x}`)))})})).then(()=>i()).catch(x=>{const T=new Event("vite:preloadError",{cancelable:!0});if(T.payload=x,window.dispatchEvent(T),!T.defaultPrevented)throw x})},v3=ft.createContext(null);function x3(t,i){const l=Array.isArray(t)?t[0]:t?t.x:0,h=Array.isArray(t)?t[1]:t?t.y:0,g=Array.isArray(i)?i[0]:i?i.x:0,x=Array.isArray(i)?i[1]:i?i.y:0;return l===g&&h===x}function Ps(t,i){if(t===i)return!0;if(!t||!i)return!1;if(Array.isArray(t)){if(!Array.isArray(i)||t.length!==i.length)return!1;for(let l=0;l{let g=null;"interactive"in h&&(g=Object.assign({},h),delete g.interactive);const x=i[h.ref];if(x){g=g||Object.assign({},h),delete g.ref;for(const T of b3)T in x&&(g[T]=x[T])}return g||h});return{...t,layers:l}}const JE={version:8,sources:{},layers:[]},QE={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},Xy={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},e2={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},E3=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],T3=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class Pu{constructor(i,l,h){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=g=>{const x=this.props[e2[g.type]];x?x(g):g.type==="error"&&console.error(g.error)},this._onPointerEvent=g=>{(g.type==="mousemove"||g.type==="mouseout")&&this._updateHover(g);const x=this.props[QE[g.type]];x&&(this.props.interactiveLayerIds&&g.type!=="mouseover"&&g.type!=="mouseout"&&(g.features=this._hoveredFeatures||this._queryRenderedFeatures(g.point)),x(g),delete g.features)},this._onCameraEvent=g=>{if(!this._internalUpdate){const x=this.props[Xy[g.type]];x&&x(g)}g.type in this._deferredEvents&&(this._deferredEvents[g.type]=!1)},this._MapClass=i,this.props=l,this._initialize(h)}get map(){return this._map}get transform(){return this._renderTransform}setProps(i){const l=this.props;this.props=i;const h=this._updateSettings(i,l);h&&this._createShadowTransform(this._map);const g=this._updateSize(i),x=this._updateViewState(i,!0);this._updateStyle(i,l),this._updateStyleComponents(i,l),this._updateHandlers(i,l),(h||g||x&&!this._map.isMoving())&&this.redraw()}static reuse(i,l){const h=Pu.savedMaps.pop();if(!h)return null;const g=h.map,x=g.getContainer();for(l.className=x.className;x.childNodes.length>0;)l.appendChild(x.childNodes[0]);g._container=l;const T=g._resizeObserver;T&&(T.disconnect(),T.observe(l)),h.setProps({...i,styleDiffing:!1}),g.resize();const{initialViewState:s}=i;return s&&(s.bounds?g.fitBounds(s.bounds,{...s.fitBoundsOptions,duration:0}):h._updateViewState(s,!1)),g.isStyleLoaded()?g.fire("load"):g.once("styledata",()=>g.fire("load")),g._update(),h}_initialize(i){const{props:l}=this,{mapStyle:h=JE}=l,g={...l,...l.initialViewState,accessToken:l.mapboxAccessToken||S3()||null,container:i,style:YE(h)},x=g.initialViewState||g.viewState||g;if(Object.assign(g,{center:[x.longitude||0,x.latitude||0],zoom:x.zoom||0,pitch:x.pitch||0,bearing:x.bearing||0}),l.gl){const q=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=q,l.gl)}const T=new this._MapClass(g);x.padding&&T.setPadding(x.padding),l.cursor&&(T.getCanvas().style.cursor=l.cursor),this._createShadowTransform(T);const s=T._render;T._render=q=>{this._inRender=!0,s.call(T,q),this._inRender=!1};const M=T._renderTaskQueue.run;T._renderTaskQueue.run=q=>{M.call(T._renderTaskQueue,q),this._onBeforeRepaint()},T.on("render",()=>this._onAfterRepaint());const F=T.fire;T.fire=this._fireEvent.bind(this,F),T.on("resize",()=>{this._renderTransform.resize(T.transform.width,T.transform.height)}),T.on("styledata",()=>{this._updateStyleComponents(this.props,{}),HE(T.transform,this._renderTransform)}),T.on("sourcedata",()=>this._updateStyleComponents(this.props,{}));for(const q in QE)T.on(q,this._onPointerEvent);for(const q in Xy)T.on(q,this._onCameraEvent);for(const q in e2)T.on(q,this._onEvent);this._map=T}recycle(){const l=this.map.getContainer().querySelector("[mapboxgl-children]");l==null||l.remove(),Pu.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const i=this._map;!this._inRender&&i.style&&(i._frame&&(i._frame.cancel(),i._frame=null),i._render())}_createShadowTransform(i){const l=w3(i.transform);i.painter.transform=l,this._renderTransform=l}_updateSize(i){const{viewState:l}=i;if(l){const h=this._map;if(l.width!==h.transform.width||l.height!==h.transform.height)return h.resize(),!0}return!1}_updateViewState(i,l){if(this._internalUpdate)return!1;const h=this._map,g=this._renderTransform,{zoom:x,pitch:T,bearing:s}=g,M=h.isMoving();M&&(g.cameraElevationReference="sea");const F=KE(g,{...XE(h.transform),...i});if(M&&(g.cameraElevationReference="ground"),F&&l){const q=this._deferredEvents;q.move=!0,q.zoom||(q.zoom=x!==g.zoom),q.rotate||(q.rotate=s!==g.bearing),q.pitch||(q.pitch=T!==g.pitch)}return M||KE(h.transform,i),F}_updateSettings(i,l){const h=this._map;let g=!1;for(const x of E3)if(x in i&&!Ps(i[x],l[x])){g=!0;const T=h[`set${x[0].toUpperCase()}${x.slice(1)}`];T==null||T.call(h,i[x])}return g}_updateStyle(i,l){if(i.cursor!==l.cursor&&(this._map.getCanvas().style.cursor=i.cursor||""),i.mapStyle!==l.mapStyle){const{mapStyle:h=JE,styleDiffing:g=!0}=i,x={diff:g};return"localIdeographFontFamily"in i&&(x.localIdeographFontFamily=i.localIdeographFontFamily),this._map.setStyle(YE(h),x),!0}return!1}_updateStyleComponents(i,l){const h=this._map;let g=!1;return h.isStyleLoaded()&&("light"in i&&h.setLight&&!Ps(i.light,l.light)&&(g=!0,h.setLight(i.light)),"fog"in i&&h.setFog&&!Ps(i.fog,l.fog)&&(g=!0,h.setFog(i.fog)),"terrain"in i&&h.setTerrain&&!Ps(i.terrain,l.terrain)&&(!i.terrain||h.getSource(i.terrain.source))&&(g=!0,h.setTerrain(i.terrain))),g}_updateHandlers(i,l){var h,g;const x=this._map;let T=!1;for(const s of T3){const M=(h=i[s])!==null&&h!==void 0?h:!0,F=(g=l[s])!==null&&g!==void 0?g:!0;Ps(M,F)||(T=!0,M?x[s].enable(M):x[s].disable())}return T}_queryRenderedFeatures(i){const l=this._map,h=l.transform,{interactiveLayerIds:g=[]}=this.props;try{return l.transform=this._renderTransform,l.queryRenderedFeatures(i,{layers:g.filter(l.getLayer.bind(l))})}catch{return[]}finally{l.transform=h}}_updateHover(i){var l;const{props:h}=this;if(h.interactiveLayerIds&&(h.onMouseMove||h.onMouseEnter||h.onMouseLeave)){const x=i.type,T=((l=this._hoveredFeatures)===null||l===void 0?void 0:l.length)>0,s=this._queryRenderedFeatures(i.point),M=s.length>0;!M&&T&&(i.type="mouseleave",this._onPointerEvent(i)),this._hoveredFeatures=s,M&&!T&&(i.type="mouseenter",this._onPointerEvent(i)),i.type=x}else this._hoveredFeatures=null}_fireEvent(i,l,h){const g=this._map,x=g.transform,T=typeof l=="string"?l:l.type;return T==="move"&&this._updateViewState(this.props,!1),T in Xy&&(typeof l=="object"&&(l.viewState=XE(x)),this._map.isMoving())?(g.transform=this._renderTransform,i.call(g,l,h),g.transform=x,g):(i.call(g,l,h),g)}_onBeforeRepaint(){const i=this._map;this._internalUpdate=!0;for(const h in this._deferredEvents)this._deferredEvents[h]&&i.fire(h);this._internalUpdate=!1;const l=this._map.transform;i.transform=this._renderTransform,this._onAfterRepaint=()=>{HE(this._renderTransform,l),i.transform=l}}}Pu.savedMaps=[];function S3(){let t=null;if(typeof location<"u"){const i=/access_token=([^&\/]*)/.exec(location.search);t=i&&i[1]}try{t=t||void 0}catch{}try{t=t||{}.REACT_APP_MAPBOX_ACCESS_TOKEN}catch{}return t}const A3=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function C3(t){if(!t)return null;const i=t.map,l={getMap:()=>i,getCenter:()=>t.transform.center,getZoom:()=>t.transform.zoom,getBearing:()=>t.transform.bearing,getPitch:()=>t.transform.pitch,getPadding:()=>t.transform.padding,getBounds:()=>t.transform.getBounds(),project:h=>{const g=i.transform;i.transform=t.transform;const x=i.project(h);return i.transform=g,x},unproject:h=>{const g=i.transform;i.transform=t.transform;const x=i.unproject(h);return i.transform=g,x},queryTerrainElevation:(h,g)=>{const x=i.transform;i.transform=t.transform;const T=i.queryTerrainElevation(h,g);return i.transform=x,T},queryRenderedFeatures:(h,g)=>{const x=i.transform;i.transform=t.transform;const T=i.queryRenderedFeatures(h,g);return i.transform=x,T}};for(const h of I3(i))!(h in l)&&!A3.includes(h)&&(l[h]=i[h].bind(i));return l}function I3(t){const i=new Set;let l=t;for(;l;){for(const h of Object.getOwnPropertyNames(l))h[0]!=="_"&&typeof t[h]=="function"&&h!=="fire"&&h!=="setEventedParent"&&i.add(h);l=Object.getPrototypeOf(l)}return Array.from(i)}const M3=typeof document<"u"?ft.useLayoutEffect:ft.useEffect,k3=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];function P3(t,i){for(const h of k3)h in i&&(t[h]=i[h]);const{RTLTextPlugin:l="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=i;l&&t.getRTLTextPluginStatus&&t.getRTLTextPluginStatus()==="unavailable"&&t.setRTLTextPlugin(l,h=>{h&&console.error(h)},!0)}const Rg=ft.createContext(null);function z3(t,i,l){const h=ft.useContext(v3),[g,x]=ft.useState(null),T=ft.useRef(),{current:s}=ft.useRef({mapLib:null,map:null});ft.useEffect(()=>{const q=t.mapLib;let X=!0,oe;return Promise.resolve(q||l).then(Ae=>{if(!X)return;if(!Ae)throw new Error("Invalid mapLib");const fe="Map"in Ae?Ae:Ae.default;if(!fe.Map)throw new Error("Invalid mapLib");if(P3(fe,t),!fe.supported||fe.supported(t))t.reuseMaps&&(oe=Pu.reuse(t,T.current)),oe||(oe=new Pu(fe.Map,t,T.current)),s.map=C3(oe),s.mapLib=fe,x(oe),h==null||h.onMapMount(s.map,t.id);else throw new Error("Map is not supported by this browser")}).catch(Ae=>{const{onError:fe}=t;fe?fe({type:"error",target:null,originalEvent:null,error:Ae}):console.error(Ae)}),()=>{X=!1,oe&&(h==null||h.onMapUnmount(t.id),t.reuseMaps?oe.recycle():oe.destroy())}},[]),M3(()=>{g&&g.setProps(t)}),ft.useImperativeHandle(i,()=>s.map,[g]);const M=ft.useMemo(()=>({position:"relative",width:"100%",height:"100%",...t.style}),[t.style]),F={height:"100%"};return ft.createElement("div",{id:t.id,ref:T,style:M},g&&ft.createElement(Rg.Provider,{value:s},ft.createElement("div",{"mapboxgl-children":"",style:F},t.children)))}const L3=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function ec(t,i){if(!t||!i)return;const l=t.style;for(const h in i){const g=i[h];Number.isFinite(g)&&!L3.test(h)?l[h]=`${g}px`:l[h]=g}}function R3(t,i){const{map:l,mapLib:h}=ft.useContext(Rg),g=ft.useRef({props:t});g.current.props=t;const x=ft.useMemo(()=>{let ke=!1;ft.Children.forEach(t.children,re=>{re&&(ke=!0)});const ze={...t,element:ke?document.createElement("div"):null},ue=new h.Marker(ze);return ue.setLngLat([t.longitude,t.latitude]),ue.getElement().addEventListener("click",re=>{var le,De;(De=(le=g.current.props).onClick)===null||De===void 0||De.call(le,{type:"click",target:ue,originalEvent:re})}),ue.on("dragstart",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDragStart)===null||De===void 0||De.call(le,je)}),ue.on("drag",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDrag)===null||De===void 0||De.call(le,je)}),ue.on("dragend",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDragEnd)===null||De===void 0||De.call(le,je)}),ue},[]);ft.useEffect(()=>(x.addTo(l.getMap()),()=>{x.remove()}),[]);const{longitude:T,latitude:s,offset:M,style:F,draggable:q=!1,popup:X=null,rotation:oe=0,rotationAlignment:Ae="auto",pitchAlignment:fe="auto"}=t;return ft.useEffect(()=>{ec(x.getElement(),F)},[F]),ft.useImperativeHandle(i,()=>x,[]),(x.getLngLat().lng!==T||x.getLngLat().lat!==s)&&x.setLngLat([T,s]),M&&!x3(x.getOffset(),M)&&x.setOffset(M),x.isDraggable()!==q&&x.setDraggable(q),x.getRotation()!==oe&&x.setRotation(oe),x.getRotationAlignment()!==Ae&&x.setRotationAlignment(Ae),x.getPitchAlignment()!==fe&&x.setPitchAlignment(fe),x.getPopup()!==X&&x.setPopup(X),tx.createPortal(t.children,x.getElement())}const D3=ft.memo(ft.forwardRef(R3));function t2(t){return new Set(t?t.trim().split(/\s+/):[])}function O3(t,i){const{map:l,mapLib:h}=ft.useContext(Rg),g=ft.useMemo(()=>document.createElement("div"),[]),x=ft.useRef({props:t});x.current.props=t;const T=ft.useMemo(()=>{const s={...t},M=new h.Popup(s);return M.setLngLat([t.longitude,t.latitude]),M.once("open",F=>{var q,X;(X=(q=x.current.props).onOpen)===null||X===void 0||X.call(q,F)}),M},[]);if(ft.useEffect(()=>{const s=M=>{var F,q;(q=(F=x.current.props).onClose)===null||q===void 0||q.call(F,M)};return T.on("close",s),T.setDOMContent(g).addTo(l.getMap()),()=>{T.off("close",s),T.isOpen()&&T.remove()}},[]),ft.useEffect(()=>{ec(T.getElement(),t.style)},[t.style]),ft.useImperativeHandle(i,()=>T,[]),T.isOpen()&&((T.getLngLat().lng!==t.longitude||T.getLngLat().lat!==t.latitude)&&T.setLngLat([t.longitude,t.latitude]),t.offset&&!Ps(T.options.offset,t.offset)&&T.setOffset(t.offset),(T.options.anchor!==t.anchor||T.options.maxWidth!==t.maxWidth)&&(T.options.anchor=t.anchor,T.setMaxWidth(t.maxWidth)),T.options.className!==t.className)){const s=t2(T.options.className),M=t2(t.className);for(const F of s)M.has(F)||T.removeClassName(F);for(const F of M)s.has(F)||T.addClassName(F);T.options.className=t.className}return tx.createPortal(t.children,g)}ft.memo(ft.forwardRef(O3));function Nu(t,i,l,h){const g=ft.useContext(Rg),x=ft.useMemo(()=>t(g),[]);return ft.useEffect(()=>{const T=h||l||i,s=typeof i=="function"&&typeof l=="function"?i:null,M=typeof l=="function"?l:typeof i=="function"?i:null,{map:F}=g;return F.hasControl(x)||(F.addControl(x,T==null?void 0:T.position),s&&s(g)),()=>{M&&M(g),F.hasControl(x)&&F.removeControl(x)}},[]),x}function B3(t){const i=Nu(({mapLib:l})=>new l.AttributionControl(t),{position:t.position});return ft.useEffect(()=>{ec(i._container,t.style)},[t.style]),null}ft.memo(B3);function F3(t){const i=Nu(({mapLib:l})=>new l.FullscreenControl({container:t.containerId&&document.getElementById(t.containerId)}),{position:t.position});return ft.useEffect(()=>{ec(i._controlContainer,t.style)},[t.style]),null}ft.memo(F3);function N3(t,i){const l=ft.useRef({props:t}),h=Nu(({mapLib:g})=>{const x=new g.GeolocateControl(t),T=x._setupUI;return x._setupUI=s=>{x._container.hasChildNodes()||T(s)},x.on("geolocate",s=>{var M,F;(F=(M=l.current.props).onGeolocate)===null||F===void 0||F.call(M,s)}),x.on("error",s=>{var M,F;(F=(M=l.current.props).onError)===null||F===void 0||F.call(M,s)}),x.on("outofmaxbounds",s=>{var M,F;(F=(M=l.current.props).onOutOfMaxBounds)===null||F===void 0||F.call(M,s)}),x.on("trackuserlocationstart",s=>{var M,F;(F=(M=l.current.props).onTrackUserLocationStart)===null||F===void 0||F.call(M,s)}),x.on("trackuserlocationend",s=>{var M,F;(F=(M=l.current.props).onTrackUserLocationEnd)===null||F===void 0||F.call(M,s)}),x},{position:t.position});return l.current.props=t,ft.useImperativeHandle(i,()=>h,[]),ft.useEffect(()=>{ec(h._container,t.style)},[t.style]),null}const U3=ft.memo(ft.forwardRef(N3));function j3(t){const i=Nu(({mapLib:l})=>new l.NavigationControl(t),{position:t.position});return ft.useEffect(()=>{ec(i._container,t.style)},[t.style]),null}const V3=ft.memo(j3);function G3(t){const i=Nu(({mapLib:x})=>new x.ScaleControl(t),{position:t.position}),l=ft.useRef(t),h=l.current;l.current=t;const{style:g}=t;return t.maxWidth!==void 0&&t.maxWidth!==h.maxWidth&&(i.options.maxWidth=t.maxWidth),t.unit!==void 0&&t.unit!==h.unit&&i.setUnit(t.unit),ft.useEffect(()=>{ec(i._container,g)},[g]),null}const $3=ft.memo(G3),q3=y3(()=>Promise.resolve().then(()=>E4),void 0),Z3=(()=>ft.forwardRef(function(i,l){return z3(i,l,q3)}))(),yA=D3,W3=V3,H3=U3,X3=$3;var Uu=Y3,K3=Object.prototype.hasOwnProperty;function Y3(){for(var t={},i=0;i-1};Zi.prototype.value=function(t){if(this.selected=t,this.el.value=this.getItemValue(t),document.createEvent){var i=document.createEvent("HTMLEvents");i.initEvent("change",!0,!1),this.el.dispatchEvent(i)}else this.el.fireEvent("onchange")};Zi.prototype.getCandidates=function(t){var i={pre:"",post:"",extract:(function(h){return this.getItemValue(h)}).bind(this)},l;this.options.filter?(l=t5.filter(this.query,this.data,i),l=l.map((function(h){return{original:h.original,string:this.render(h.original,h.string)}}).bind(this))):l=this.data.map((function(h){var g=this.render(h);return{original:h,string:g}}).bind(this)),t(l)};Zi.prototype.getItemValue=function(t){return t};Zi.prototype.render=function(t,i){if(i)return i;for(var l=t.original?this.getItemValue(t.original):this.getItemValue(t),h=this.normalize(l),g=h.lastIndexOf(this.query);g>-1;){var x=g+this.query.length;l=l.slice(0,g)+""+l.slice(g,x)+""+l.slice(x),g=h.slice(0,g).lastIndexOf(this.query)}return l};Zi.prototype.renderError=function(t){this.list.drawError(t)};var i5=Zi,xA=i5,r5=xA;typeof window<"u"&&(window.Suggestions=xA);var o5="Expected a function",n2=0/0,s5="[object Symbol]",a5=/^\s+|\s+$/g,l5=/^[-+]0x[0-9a-f]+$/i,c5=/^0b[01]+$/i,u5=/^0o[0-7]+$/i,h5=parseInt,d5=typeof Co=="object"&&Co&&Co.Object===Object&&Co,p5=typeof self=="object"&&self&&self.Object===Object&&self,f5=d5||p5||Function("return this")(),m5=Object.prototype,g5=m5.toString,_5=Math.max,y5=Math.min,Ky=function(){return f5.Date.now()};function v5(t,i,l){var h,g,x,T,s,M,F=0,q=!1,X=!1,oe=!0;if(typeof t!="function")throw new TypeError(o5);i=i2(i)||0,ov(l)&&(q=!!l.leading,X="maxWait"in l,x=X?_5(i2(l.maxWait)||0,i):x,oe="trailing"in l?!!l.trailing:oe);function Ae(tt){var lt=h,ut=g;return h=g=void 0,F=tt,T=t.apply(ut,lt),T}function fe(tt){return F=tt,s=setTimeout(ue,i),q?Ae(tt):T}function ke(tt){var lt=tt-M,ut=tt-F,Ve=i-lt;return X?y5(Ve,x-ut):Ve}function ze(tt){var lt=tt-M,ut=tt-F;return M===void 0||lt>=i||lt<0||X&&ut>=x}function ue(){var tt=Ky();if(ze(tt))return re(tt);s=setTimeout(ue,ke(tt))}function re(tt){return s=void 0,oe&&h?Ae(tt):(h=g=void 0,T)}function le(){s!==void 0&&clearTimeout(s),F=0,h=M=g=s=void 0}function De(){return s===void 0?T:re(Ky())}function je(){var tt=Ky(),lt=ze(tt);if(h=arguments,g=this,M=tt,lt){if(s===void 0)return fe(M);if(X)return s=setTimeout(ue,i),Ae(M)}return s===void 0&&(s=setTimeout(ue,i)),T}return je.cancel=le,je.flush=De,je}function ov(t){var i=typeof t;return!!t&&(i=="object"||i=="function")}function x5(t){return!!t&&typeof t=="object"}function w5(t){return typeof t=="symbol"||x5(t)&&g5.call(t)==s5}function i2(t){if(typeof t=="number")return t;if(w5(t))return n2;if(ov(t)){var i=typeof t.valueOf=="function"?t.valueOf():t;t=ov(i)?i+"":i}if(typeof t!="string")return t===0?t:+t;t=t.replace(a5,"");var l=c5.test(t);return l||u5.test(t)?h5(t.slice(2),l?2:8):l5.test(t)?n2:+t}var b5=v5,mx={exports:{}},bu=typeof Reflect=="object"?Reflect:null,r2=bu&&typeof bu.apply=="function"?bu.apply:function(i,l,h){return Function.prototype.apply.call(i,l,h)},km;bu&&typeof bu.ownKeys=="function"?km=bu.ownKeys:Object.getOwnPropertySymbols?km=function(i){return Object.getOwnPropertyNames(i).concat(Object.getOwnPropertySymbols(i))}:km=function(i){return Object.getOwnPropertyNames(i)};function E5(t){console&&console.warn&&console.warn(t)}var wA=Number.isNaN||function(i){return i!==i};function Sn(){Sn.init.call(this)}mx.exports=Sn;mx.exports.once=C5;Sn.EventEmitter=Sn;Sn.prototype._events=void 0;Sn.prototype._eventsCount=0;Sn.prototype._maxListeners=void 0;var o2=10;function Dg(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(Sn,"defaultMaxListeners",{enumerable:!0,get:function(){return o2},set:function(t){if(typeof t!="number"||t<0||wA(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");o2=t}});Sn.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Sn.prototype.setMaxListeners=function(i){if(typeof i!="number"||i<0||wA(i))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+i+".");return this._maxListeners=i,this};function bA(t){return t._maxListeners===void 0?Sn.defaultMaxListeners:t._maxListeners}Sn.prototype.getMaxListeners=function(){return bA(this)};Sn.prototype.emit=function(i){for(var l=[],h=1;h0&&(T=l[0]),T instanceof Error)throw T;var s=new Error("Unhandled error."+(T?" ("+T.message+")":""));throw s.context=T,s}var M=x[i];if(M===void 0)return!1;if(typeof M=="function")r2(M,this,l);else for(var F=M.length,q=CA(M,F),h=0;h0&&T.length>g&&!T.warned){T.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+T.length+" "+String(i)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=i,s.count=T.length,E5(s)}return t}Sn.prototype.addListener=function(i,l){return EA(this,i,l,!1)};Sn.prototype.on=Sn.prototype.addListener;Sn.prototype.prependListener=function(i,l){return EA(this,i,l,!0)};function T5(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function TA(t,i,l){var h={fired:!1,wrapFn:void 0,target:t,type:i,listener:l},g=T5.bind(h);return g.listener=l,h.wrapFn=g,g}Sn.prototype.once=function(i,l){return Dg(l),this.on(i,TA(this,i,l)),this};Sn.prototype.prependOnceListener=function(i,l){return Dg(l),this.prependListener(i,TA(this,i,l)),this};Sn.prototype.removeListener=function(i,l){var h,g,x,T,s;if(Dg(l),g=this._events,g===void 0)return this;if(h=g[i],h===void 0)return this;if(h===l||h.listener===l)--this._eventsCount===0?this._events=Object.create(null):(delete g[i],g.removeListener&&this.emit("removeListener",i,h.listener||l));else if(typeof h!="function"){for(x=-1,T=h.length-1;T>=0;T--)if(h[T]===l||h[T].listener===l){s=h[T].listener,x=T;break}if(x<0)return this;x===0?h.shift():S5(h,x),h.length===1&&(g[i]=h[0]),g.removeListener!==void 0&&this.emit("removeListener",i,s||l)}return this};Sn.prototype.off=Sn.prototype.removeListener;Sn.prototype.removeAllListeners=function(i){var l,h,g;if(h=this._events,h===void 0)return this;if(h.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):h[i]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete h[i]),this;if(arguments.length===0){var x=Object.keys(h),T;for(g=0;g=0;g--)this.removeListener(i,l[g]);return this};function SA(t,i,l){var h=t._events;if(h===void 0)return[];var g=h[i];return g===void 0?[]:typeof g=="function"?l?[g.listener||g]:[g]:l?A5(g):CA(g,g.length)}Sn.prototype.listeners=function(i){return SA(this,i,!0)};Sn.prototype.rawListeners=function(i){return SA(this,i,!1)};Sn.listenerCount=function(t,i){return typeof t.listenerCount=="function"?t.listenerCount(i):AA.call(t,i)};Sn.prototype.listenerCount=AA;function AA(t){var i=this._events;if(i!==void 0){var l=i[t];if(typeof l=="function")return 1;if(l!==void 0)return l.length}return 0}Sn.prototype.eventNames=function(){return this._eventsCount>0?km(this._events):[]};function CA(t,i){for(var l=new Array(i),h=0;h]*)>(.*)/);if(!i)return null;var l=i[1],h=i[2].split(";"),g=null,x=h.reduce(function(T,s){var M=P5(s);return M?M.key==="rel"?(g||(g=M.value),T):(T[M.key]=M.value,T):T},{});return g?{url:l,rel:g,params:x}:null}function L5(t){return t?t.split(/,\s*=400){var T=new a2({request:t,body:i.response,statusCode:i.status});h(T);return}l(i)};var x=t.body;typeof x=="string"?i.send(x):x?i.send(JSON.stringify(x)):g?i.send(g):i.send(),ag[t.id]=i}).then(function(l){return q5(t,l)})}function kA(t,i){var l=t.url(i),h=new window.XMLHttpRequest;return h.open(t.method,l),Object.keys(t.headers).forEach(function(g){h.setRequestHeader(g,t.headers[g])}),h}function Z5(t){return Promise.resolve().then(function(){var i=kA(t,t.client.accessToken);return MA(t,i)})}var W5={browserAbort:$5,sendRequestXhr:MA,browserSend:Z5,createRequestXhr:kA},lg={exports:{}};/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */lg.exports;(function(t,i){(function(l){var h=i,g=t&&t.exports==h&&t,x=typeof Co=="object"&&Co;(x.global===x||x.window===x)&&(l=x);var T=function(fe){this.message=fe};T.prototype=new Error,T.prototype.name="InvalidCharacterError";var s=function(fe){throw new T(fe)},M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",F=/[\t\n\f\r ]/g,q=function(fe){fe=String(fe).replace(F,"");var ke=fe.length;ke%4==0&&(fe=fe.replace(/==?$/,""),ke=fe.length),(ke%4==1||/[^+a-zA-Z0-9/]/.test(fe))&&s("Invalid character: the string to be decoded is not correctly encoded.");for(var ze=0,ue,re,le="",De=-1;++De>(-2*ze&6)));return le},X=function(fe){fe=String(fe),/[^\0-\xFF]/.test(fe)&&s("The string to be encoded contains characters outside of the Latin1 range.");for(var ke=fe.length%3,ze="",ue=-1,re,le,De,je,tt=fe.length-ke;++ue>18&63)+M.charAt(je>>12&63)+M.charAt(je>>6&63)+M.charAt(je&63);return ke==2?(re=fe.charCodeAt(ue)<<8,le=fe.charCodeAt(++ue),je=re+le,ze+=M.charAt(je>>10)+M.charAt(je>>4&63)+M.charAt(je<<2&63)+"="):ke==1&&(je=fe.charCodeAt(ue),ze+=M.charAt(je>>2)+M.charAt(je<<4&63)+"=="),ze},oe={encode:X,decode:q,version:"0.1.0"};if(h&&!h.nodeType)if(g)g.exports=oe;else for(var Ae in oe)oe.hasOwnProperty(Ae)&&(h[Ae]=oe[Ae]);else l.base64=oe})(Co)})(lg,lg.exports);var H5=lg.exports,X5=H5,Jy={};function K5(t){if(Jy[t])return Jy[t];var i=t.split("."),l=i[0],h=i[1];if(!h)throw new Error("Invalid token");var g=Y5(h),x={usage:l,user:g.u};return Ol(g,"a")&&(x.authorization=g.a),Ol(g,"exp")&&(x.expires=g.exp*1e3),Ol(g,"iat")&&(x.created=g.iat*1e3),Ol(g,"scopes")&&(x.scopes=g.scopes),Ol(g,"client")&&(x.client=g.client),Ol(g,"ll")&&(x.lastLogin=g.ll),Ol(g,"iu")&&(x.impersonator=g.iu),Jy[t]=x,x}function Y5(t){try{return JSON.parse(X5.decode(t))}catch{throw new Error("Invalid token")}}function Ol(t,i){return Object.prototype.hasOwnProperty.call(t,i)}var PA=K5,zA={exports:{}};(function(t){var i=Object.prototype.hasOwnProperty,l="~";function h(){}Object.create&&(h.prototype=Object.create(null),new h().__proto__||(l=!1));function g(M,F,q){this.fn=M,this.context=F,this.once=q||!1}function x(M,F,q,X,oe){if(typeof q!="function")throw new TypeError("The listener must be a function");var Ae=new g(q,X||M,oe),fe=l?l+F:F;return M._events[fe]?M._events[fe].fn?M._events[fe]=[M._events[fe],Ae]:M._events[fe].push(Ae):(M._events[fe]=Ae,M._eventsCount++),M}function T(M,F){--M._eventsCount===0?M._events=new h:delete M._events[F]}function s(){this._events=new h,this._eventsCount=0}s.prototype.eventNames=function(){var F=[],q,X;if(this._eventsCount===0)return F;for(X in q=this._events)i.call(q,X)&&F.push(l?X.slice(1):X);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(q)):F},s.prototype.listeners=function(F){var q=l?l+F:F,X=this._events[q];if(!X)return[];if(X.fn)return[X.fn];for(var oe=0,Ae=X.length,fe=new Array(Ae);oex.length?T:x})}};kn.equal=function(i){return function(h){if(h!==i)return JSON.stringify(i)}};kn.oneOf=function(){var i=Array.isArray(arguments[0])?arguments[0]:Array.prototype.slice.call(arguments),l=i.map(function(h){return kn.equal(h)});return kn.oneOfType.apply(this,l)};kn.range=function(i){var l=i[0],h=i[1];return function(x){var T=ja(kn.number,x);if(T||xh)return"number between "+l+" & "+h+" (inclusive)"}};kn.any=function(){};kn.boolean=function(i){if(typeof i!="boolean")return"boolean"};kn.number=function(i){if(typeof i!="number")return"number"};kn.plainArray=function(i){if(!Array.isArray(i))return"array"};kn.plainObject=function(i){if(!gO(i))return"object"};kn.string=function(i){if(typeof i!="string")return"string"};kn.func=function(i){if(typeof i!="function")return"function"};function ja(t,i){if(!(i==null&&!t.hasOwnProperty("__required"))){var l=t(i);if(l)return Array.isArray(l)?l:[l]}}function yx(t,i){var l=t.length,h=t[l-1],g=t.slice(0,l-1);return g.length===0&&(g=[UA]),i=_O(i,{path:g}),typeof h=="function"?h(i):VA(i,vO(h))}function yO(t){return t.length<2?t[0]:t.length===2?t.join(" or "):t.slice(0,-1).join(", ")+", or "+t.slice(-1)}function vO(t){return"must be "+xO(t)+"."}function xO(t){return/^an? /.test(t)?t:/^[aeiou]/i.test(t)?"an "+t:/^[a-z]/i.test(t)?"a "+t:t}function VA(t,i){var l=GA(t.path),h=t.path.join(".")+" "+i,g=l?"Item at position ":"";return g+h}function GA(t){return typeof t[t.length-1]=="number"||typeof t[0]=="number"}function wO(t){return Object.keys(t||{}).map(function(i){return{key:i,value:t[i]}})}kn.validate=ja;kn.processMessage=yx;var bO=kn,EO=Uu,Eu=bO;function TO(t){if(typeof window<"u")return t instanceof Co.Blob||t instanceof Co.ArrayBuffer?void 0:"Blob or ArrayBuffer";if(!(typeof t=="string"||t.pipe!==void 0))return"Filename or Readable stream"}function SO(t,i){return Eu.assert(Eu.strictShape(t),i)}function AO(t){var i="date";if(typeof t=="boolean")return i;try{var l=new Date(t);if(l.getTime&&isNaN(l.getTime()))return i}catch{return i}}function CO(t){return Eu.tuple(Eu.number,Eu.number)(t)}var IO=EO(Eu,{file:TO,date:AO,coordinates:CO,assertShape:SO});function MO(t,i){var l=function(h,g){return i.indexOf(h)!==-1&&g!==void 0};return typeof i=="function"&&(l=i),Object.keys(t).filter(function(h){return l(h,t[h])}).reduce(function(h,g){return h[g]=t[g],h},{})}var kO=MO;function PO(t,i){return Object.keys(t).reduce(function(l,h){return l[h]=i(h,t[h]),l},{})}var zO=PO,LO=zO;function RO(t){return LO(t,function(i,l){return typeof l=="boolean"?JSON.stringify(l):l})}var DO=RO,OO=OA,BO=NA;function FO(t){return function(i){var l;OO.prototype.isPrototypeOf(i)?l=i:l=BO(i);var h=Object.create(t);return h.client=l,h}}var NO=FO,$A=Uu,tn=IO,cg=kO,qA=DO,UO=NO,vx={},ZA=["country","region","postcode","district","place","locality","neighborhood","address","poi","poi.landmark"];vx.forwardGeocode=function(t){tn.assertShape({query:tn.required(tn.string),mode:tn.oneOf("mapbox.places","mapbox.places-permanent"),countries:tn.arrayOf(tn.string),proximity:tn.oneOf(tn.coordinates,"ip"),types:tn.arrayOf(tn.oneOf(ZA)),autocomplete:tn.boolean,bbox:tn.arrayOf(tn.number),limit:tn.number,language:tn.arrayOf(tn.string),routing:tn.boolean,fuzzyMatch:tn.boolean,worldview:tn.string})(t),t.mode=t.mode||"mapbox.places";var i=qA($A({country:t.countries},cg(t,["proximity","types","autocomplete","bbox","limit","language","routing","fuzzyMatch","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:cg(t,["mode","query"]),query:i})};vx.reverseGeocode=function(t){tn.assertShape({query:tn.required(tn.coordinates),mode:tn.oneOf("mapbox.places","mapbox.places-permanent"),countries:tn.arrayOf(tn.string),types:tn.arrayOf(tn.oneOf(ZA)),bbox:tn.arrayOf(tn.number),limit:tn.number,language:tn.arrayOf(tn.string),reverseMode:tn.oneOf("distance","score"),routing:tn.boolean,worldview:tn.string})(t),t.mode=t.mode||"mapbox.places";var i=qA($A({country:t.countries},cg(t,["country","types","bbox","limit","language","reverseMode","routing","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:cg(t,["mode","query"]),query:i})};var jO=UO(vx),VO=self.crypto||self.msCrypto,xx="-_",Ba=36;for(;Ba--;)xx+=Ba.toString(36);Ba=36;for(;Ba---10;)xx+=Ba.toString(36).toUpperCase();var GO=function(t){var i="",l=VO.getRandomValues(new Uint8Array(t||21));for(Ba=t||21;Ba--;)i+=xx[l[Ba]&63];return i},$O=GO;function WA(t){this.origin=t.origin||"https://api.mapbox.com",this.endpoint="events/v2",this.access_token=t.accessToken,this.version="0.2.0",this.sessionID=this.generateSessionID(),this.userAgent=this.getUserAgent(),this.options=t,this.send=this.send.bind(this),this.countries=t.countries?t.countries.split(","):null,this.types=t.types?t.types.split(","):null,this.bbox=t.bbox?t.bbox:null,this.language=t.language?t.language.split(","):null,this.limit=t.limit?+t.limit:null,this.locale=navigator.language||null,this.enableEventLogging=this.shouldEnableLogging(t),this.eventQueue=new Array,this.flushInterval=t.flushInterval||1e3,this.maxQueueSize=t.maxQueueSize||100,this.timer=this.flushInterval?setTimeout(this.flush.bind(this),this.flushInterval):null,this.lastSentInput="",this.lastSentIndex=0}WA.prototype={select:function(t,i){var l=this.getSelectedIndex(t,i),h=this.getEventPayload("search.select",i);if(h.resultIndex=l,h.resultPlaceName=t.place_name,h.resultId=t.id,!(l===this.lastSentIndex&&h.queryString===this.lastSentInput||l==-1)&&(this.lastSentIndex=l,this.lastSentInput=h.queryString,!!h.queryString))return this.push(h)},start:function(t){var i=this.getEventPayload("search.start",t);if(i.queryString)return this.push(i)},keyevent:function(t,i){if(t.key&&!(t.metaKey||[9,27,37,39,13,38,40].indexOf(t.keyCode)!==-1)){var l=this.getEventPayload("search.keystroke",i);if(l.lastAction=t.key,!!l.queryString)return this.push(l)}},send:function(t,i){if(!this.enableEventLogging)return i?i():void 0;var l=this.getRequestOptions(t);this.request(l,(function(h){if(h)return this.handleError(h,i);if(i)return i()}).bind(this))},getRequestOptions:function(t){Array.isArray(t)||(t=[t]);var i={method:"POST",host:this.origin,path:this.endpoint+"?access_token="+this.access_token,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)};return i},getEventPayload:function(t,i){var l;i.options.proximity?l=[i.options.proximity.longitude,i.options.proximity.latitude]:l=null;var h=i._map?i._map.getZoom():void 0,g={event:t,created:+new Date,sessionIdentifier:this.sessionID,country:this.countries,userAgent:this.userAgent,language:this.language,bbox:this.bbox,types:this.types,endpoint:"mapbox.places",autocomplete:i.options.autocomplete,fuzzyMatch:i.options.fuzzyMatch,proximity:l,limit:i.options.limit,routing:i.options.routing,worldview:i.options.worldview,mapZoom:h,keyboardLocale:this.locale};return t==="search.select"?g.queryString=i.inputString:t!="search.select"&&i._inputEl?g.queryString=i._inputEl.value:g.queryString=i.inputString,g},request:function(t,i){var l=new XMLHttpRequest;l.onreadystatechange=function(){if(this.readyState==4)return this.status==204?i(null):i(this.statusText)},l.open(t.method,t.host+"/"+t.path,!0);for(var h in t.headers){var g=t.headers[h];l.setRequestHeader(h,g)}l.send(t.body)},handleError:function(t,i){if(i)return i(t)},generateSessionID:function(){return $O()},getUserAgent:function(){return"mapbox-gl-geocoder."+this.version+"."+navigator.userAgent},getSelectedIndex:function(t,i){if(i._typeahead){var l=i._typeahead.data,h=t.id,g=l.map(function(T){return T.id}),x=g.indexOf(h);return x}},shouldEnableLogging:function(t){return!(t.enableEventLogging===!1||t.origin&&t.origin.indexOf("api.mapbox.com")==-1||t.localGeocoder||t.filter)},flush:function(){this.eventQueue.length>0&&(this.send(this.eventQueue),this.eventQueue=new Array),this.timer&&clearTimeout(this.timer),this.flushInterval&&(this.timer=setTimeout(this.flush.bind(this),this.flushInterval))},push:function(t,i){this.eventQueue.push(t),(this.eventQueue.length>=this.maxQueueSize||i)&&this.flush()},remove:function(){this.flush()}};var qO=WA,ZO={de:"Suche",it:"Ricerca",en:"Search",nl:"Zoeken",fr:"Chercher",ca:"Cerca",he:"לחפש",ja:"サーチ",lv:"Meklēt",pt:"Procurar",sr:"Претрага",zh:"搜索",cs:"Vyhledávání",hu:"Keresés",ka:"ძიება",nb:"Søke",sk:"Vyhľadávanie",th:"ค้นหา",fi:"Hae",is:"Leita",ko:"수색",pl:"Szukaj",sl:"Iskanje",fa:"جستجو",ru:"Поиск"},WO={placeholder:ZO},HA={exports:{}};(function(t){(function(i,l,h){t.exports?t.exports=h():i[l]=h()})(Co,"subtag",function(){var i="",l=/^([a-zA-Z]{2,3})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?/;function h(M){return M.match(l)||[]}function g(M){return h(M).filter(function(F,q){return F&&q})}function x(M){return M=h(M),{language:M[1]||i,extlang:M[2]||i,script:M[3]||i,region:M[4]||i}}function T(M,F,q){Object.defineProperty(M,F,{value:q,enumerable:!0})}function s(M,F,q){function X(oe){return h(oe)[M]||i}T(X,"pattern",F),T(x,q,X)}return s(1,/^[a-zA-Z]{2,3}$/,"language"),s(2,/^[a-zA-Z]{3}$/,"extlang"),s(3,/^[a-zA-Z]{4}$/,"script"),s(4,/^[a-zA-Z]{2}$|^[0-9]{3}$/,"region"),T(x,"split",g),x})})(HA);var HO=HA.exports,XO=r5,KO=b5,Nl=Uu,YO=M5.EventEmitter,u2=k5,h2=pO,d2=jO,JO=qO,QO=WO,e4=HO;const ba={FORWARD:0,LOCAL:1,REVERSE:2};function XA(t){this._eventEmitter=new YO,this.options=Nl({},this.options,t),this.inputString="",this.fresh=!0,this.lastSelected=null}XA.prototype={options:{zoom:16,flyTo:!0,trackProximity:!0,minLength:2,reverseGeocode:!1,limit:5,origin:"https://api.mapbox.com",enableEventLogging:!0,marker:!0,mapboxgl:null,collapsed:!1,clearAndBlurOnEsc:!1,clearOnBlur:!1,getItemValue:function(t){return t.place_name},render:function(t){var i=t.place_name.split(",");return'
'+i[0]+'
'+i.splice(1,i.length).join(",")+"
"}},addTo:function(t){function i(l,h){if(!document.body.contains(h))throw new Error("Element provided to #addTo() exists, but is not in the DOM");const g=l.onAdd();h.appendChild(g)}if(t._controlContainer)t.addControl(this);else if(t instanceof HTMLElement)i(this,t);else if(typeof t=="string"){const l=document.querySelectorAll(t);if(l.length===0)throw new Error("Element ",t,"not found.");if(l.length>1)throw new Error("Geocoder can only be added to a single html element");i(this,l[0])}else throw new Error("Error: addTo must be a mapbox-gl-js map, an html element, or a CSS selector query for a single html element")},onAdd:function(t){if(t&&typeof t!="string"&&(this._map=t),this.setLanguage(),this.options.localGeocoderOnly||(this.geocoderService=d2(h2({accessToken:this.options.accessToken,origin:this.options.origin}))),this.options.localGeocoderOnly&&!this.options.localGeocoder)throw new Error("A localGeocoder function must be specified to use localGeocoderOnly mode");this.eventManager=new JO(this.options),this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onPaste=this._onPaste.bind(this),this._onBlur=this._onBlur.bind(this),this._showButton=this._showButton.bind(this),this._hideButton=this._hideButton.bind(this),this._onQueryResult=this._onQueryResult.bind(this),this.clear=this.clear.bind(this),this._updateProximity=this._updateProximity.bind(this),this._collapse=this._collapse.bind(this),this._unCollapse=this._unCollapse.bind(this),this._clear=this._clear.bind(this),this._clearOnBlur=this._clearOnBlur.bind(this);var i=this.container=document.createElement("div");i.className="mapboxgl-ctrl-geocoder mapboxgl-ctrl";var l=this.createIcon("search",'');this._inputEl=document.createElement("input"),this._inputEl.type="text",this._inputEl.className="mapboxgl-ctrl-geocoder--input",this.setPlaceholder(),this.options.collapsed&&(this._collapse(),this.container.addEventListener("mouseenter",this._unCollapse),this.container.addEventListener("mouseleave",this._collapse),this._inputEl.addEventListener("focus",this._unCollapse)),(this.options.collapsed||this.options.clearOnBlur)&&this._inputEl.addEventListener("blur",this._onBlur),this._inputEl.addEventListener("keydown",KO(this._onKeyDown,200)),this._inputEl.addEventListener("paste",this._onPaste),this._inputEl.addEventListener("change",this._onChange),this.container.addEventListener("mouseenter",this._showButton),this.container.addEventListener("mouseleave",this._hideButton),this._inputEl.addEventListener("keyup",(function(x){this.eventManager.keyevent(x,this)}).bind(this));var h=document.createElement("div");h.classList.add("mapboxgl-ctrl-geocoder--pin-right"),this._clearEl=document.createElement("button"),this._clearEl.setAttribute("aria-label","Clear"),this._clearEl.addEventListener("click",this.clear),this._clearEl.className="mapboxgl-ctrl-geocoder--button";var g=this.createIcon("close",'');return this._clearEl.appendChild(g),this._loadingEl=this.createIcon("loading",''),h.appendChild(this._clearEl),h.appendChild(this._loadingEl),i.appendChild(l),i.appendChild(this._inputEl),i.appendChild(h),this._typeahead=new XO(this._inputEl,[],{filter:!1,minLength:this.options.minLength,limit:this.options.limit}),this.setRenderFunction(this.options.render),this._typeahead.getItemValue=this.options.getItemValue,this.mapMarker=null,this._handleMarker=this._handleMarker.bind(this),this._map&&(this.options.trackProximity&&(this._updateProximity(),this._map.on("moveend",this._updateProximity)),this._mapboxgl=this.options.mapboxgl,!this._mapboxgl&&this.options.marker&&(console.error("No mapboxgl detected in options. Map markers are disabled. Please set options.mapboxgl."),this.options.marker=!1)),i},createIcon:function(t,i){var l=document.createElementNS("http://www.w3.org/2000/svg","svg");if(l.setAttribute("class","mapboxgl-ctrl-geocoder--icon mapboxgl-ctrl-geocoder--icon-"+t),l.setAttribute("viewBox","0 0 18 18"),l.setAttribute("xml:space","preserve"),l.setAttribute("width",18),l.setAttribute("height",18),"innerHTML"in l)l.innerHTML=i;else{var h=document.createElement("div");h.innerHTML=""+i.valueOf().toString()+"";var g=h.firstChild,x=g.firstChild;l.appendChild(x)}return l},onRemove:function(){return this.container.parentNode.removeChild(this.container),this.options.trackProximity&&this._map&&this._map.off("moveend",this._updateProximity),this._removeMarker(),this._map=null,this},_onPaste:function(t){var i=(t.clipboardData||window.clipboardData).getData("text");i.length>=this.options.minLength&&this._geocode(i)},_onKeyDown:function(t){var i=27,l=9;if(t.keyCode===i&&this.options.clearAndBlurOnEsc)return this._clear(t),this._inputEl.blur();var h=t.target&&t.target.shadowRoot?t.target.shadowRoot.activeElement:t.target,g=h?h.value:"";if(!g)return this.fresh=!0,t.keyCode!==l&&this.clear(t),this._clearEl.style.display="none";t.metaKey||[l,i,37,39,13,38,40].indexOf(t.keyCode)!==-1||h.value.length>=this.options.minLength&&this._geocode(h.value)},_showButton:function(){this._typeahead.selected&&(this._clearEl.style.display="block")},_hideButton:function(){this._typeahead.selected&&(this._clearEl.style.display="none")},_onBlur:function(t){this.options.clearOnBlur&&this._clearOnBlur(t),this.options.collapsed&&this._collapse()},_onChange:function(){var t=this._typeahead.selected;if(t&&JSON.stringify(t)!==this.lastSelected){if(this._clearEl.style.display="none",this.options.flyTo){var i;if(t.properties&&u2[t.properties.short_code])i=Nl({},this.options.flyTo),this._map&&this._map.fitBounds(u2[t.properties.short_code].bbox,i);else if(t.bbox){var l=t.bbox;i=Nl({},this.options.flyTo),this._map&&this._map.fitBounds([[l[0],l[1]],[l[2],l[3]]],i)}else{var h={zoom:this.options.zoom};i=Nl({},h,this.options.flyTo),t.center?i.center=t.center:t.geometry&&t.geometry.type&&t.geometry.type==="Point"&&t.geometry.coordinates&&(i.center=t.geometry.coordinates),this._map&&this._map.flyTo(i)}}this.options.marker&&this._mapboxgl&&this._handleMarker(t),this._inputEl.focus(),this._inputEl.scrollLeft=0,this._inputEl.setSelectionRange(0,0),this.lastSelected=JSON.stringify(t),this._eventEmitter.emit("result",{result:t}),this.eventManager.select(t,this)}},_requestType:function(t,i){var l;const h=/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)[ ]*$/;return t.localGeocoderOnly?l=ba.LOCAL:t.reverseGeocode&&h.test(i)?l=ba.REVERSE:l=ba.FORWARD,l},_setupConfig:function(t,i){const l=["bbox","limit","proximity","countries","types","language","reverseMode","mode","autocomplete","fuzzyMatch","routing","worldview"],h=/[\s,]+/;var g=this,x=l.reduce(function(s,M){if(g.options[M]===void 0||g.options[M]===null)return s;["countries","types","language"].indexOf(M)>-1?s[M]=g.options[M].split(h):s[M]=g.options[M];const F=typeof g.options[M].longitude=="number"&&typeof g.options[M].latitude=="number";if(M==="proximity"&&F){const q=g.options[M].longitude,X=g.options[M].latitude;s[M]=[q,X]}return s},{});switch(t){case ba.REVERSE:{var T=i.split(h).map(function(s){return parseFloat(s,10)}).reverse();x.types&&x.types[0],x=Nl(x,{query:T,limit:1}),["proximity","autocomplete","fuzzyMatch","bbox"].forEach(function(s){s in x&&delete x[s]})}break;case ba.FORWARD:/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)*[ ]*$/.test(i)&&(i=i.replace(/,/g," ")),x=Nl(x,{query:i});break}return x},_geocode:function(t){this.inputString=t,this._loadingEl.style.display="block",this._eventEmitter.emit("loading",{query:t});const i=this._requestType(this.options,t),l=this._setupConfig(i,t);var h;switch(i){case ba.LOCAL:h=Promise.resolve();break;case ba.FORWARD:h=this.geocoderService.forwardGeocode(l).send();break;case ba.REVERSE:h=this.geocoderService.reverseGeocode(l).send();break}var g=this.options.localGeocoder?this.options.localGeocoder(t)||[]:[],x=[],T=null;return h.catch((function(s){T=s}).bind(this)).then((function(s){this._loadingEl.style.display="none";var M={};return s?s.statusCode=="200"&&(M=s.body,M.request=s.request,M.headers=s.headers):M={type:"FeatureCollection",features:[]},M.config=l,this.fresh&&(this.eventManager.start(this),this.fresh=!1),M.features=M.features?g.concat(M.features):g,this.options.externalGeocoder?(x=this.options.externalGeocoder(t,M.features)||[],x.then(function(F){return M.features=M.features?F.concat(M.features):F,M},function(){return M})):M}).bind(this)).then((function(s){if(T)throw T;this.options.filter&&s.features.length&&(s.features=s.features.filter(this.options.filter)),s.features.length?(this._clearEl.style.display="block",this._eventEmitter.emit("results",s),this._typeahead.update(s.features)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderNoResults(),this._eventEmitter.emit("results",s))}).bind(this)).catch((function(s){this._loadingEl.style.display="none",g.length&&this.options.localGeocoder||x.length&&this.options.externalGeocoder?(this._clearEl.style.display="block",this._typeahead.update(g)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderError()),this._eventEmitter.emit("results",{features:g}),this._eventEmitter.emit("error",{error:s})}).bind(this)),h},_clear:function(t){t&&t.preventDefault(),this._inputEl.value="",this._typeahead.selected=null,this._typeahead.clear(),this._onChange(),this._clearEl.style.display="none",this._removeMarker(),this.lastSelected=null,this._eventEmitter.emit("clear"),this.fresh=!0},clear:function(t){this._clear(t),this._inputEl.focus()},_clearOnBlur:function(t){var i=this;t.relatedTarget&&i._clear(t)},_onQueryResult:function(t){var i=t.body;if(i.features.length){var l=i.features[0];this._typeahead.selected=l,this._inputEl.value=l.place_name,this._onChange()}},_updateProximity:function(){if(this._map)if(this._map.getZoom()>9){var t=this._map.getCenter().wrap();this.setProximity({longitude:t.lng,latitude:t.lat})}else this.setProximity(null)},_collapse:function(){!this._inputEl.value&&this._inputEl!==document.activeElement&&this.container.classList.add("mapboxgl-ctrl-geocoder--collapsed")},_unCollapse:function(){this.container.classList.remove("mapboxgl-ctrl-geocoder--collapsed")},query:function(t){return this._geocode(t).then(this._onQueryResult),this},_renderError:function(){var t="
There was an error reaching the server
";this._renderMessage(t)},_renderNoResults:function(){var t="
No results found
";this._renderMessage(t)},_renderMessage:function(t){this._typeahead.update([]),this._typeahead.selected=null,this._typeahead.clear(),this._typeahead.renderError(t)},_getPlaceholderText:function(){if(this.options.placeholder)return this.options.placeholder;if(this.options.language){var t=this.options.language.split(",")[0],i=e4.language(t),l=QO.placeholder[i];if(l)return l}return"Search"},setInput:function(t){return this._inputEl.value=t,this._typeahead.selected=null,this._typeahead.clear(),t.length>=this.options.minLength&&this._geocode(t),this},setProximity:function(t){return this.options.proximity=t,this},getProximity:function(){return this.options.proximity},setRenderFunction:function(t){return t&&typeof t=="function"&&(this._typeahead.render=t),this},getRenderFunction:function(){return this._typeahead.render},setLanguage:function(t){var i=navigator.language||navigator.userLanguage||navigator.browserLanguage;return this.options.language=t||this.options.language||i,this},getLanguage:function(){return this.options.language},getZoom:function(){return this.options.zoom},setZoom:function(t){return this.options.zoom=t,this},getFlyTo:function(){return this.options.flyTo},setFlyTo:function(t){return this.options.flyTo=t,this},getPlaceholder:function(){return this.options.placeholder},setPlaceholder:function(t){return this.placeholder=t||this._getPlaceholderText(),this._inputEl.placeholder=this.placeholder,this._inputEl.setAttribute("aria-label",this.placeholder),this},getBbox:function(){return this.options.bbox},setBbox:function(t){return this.options.bbox=t,this},getCountries:function(){return this.options.countries},setCountries:function(t){return this.options.countries=t,this},getTypes:function(){return this.options.types},setTypes:function(t){return this.options.types=t,this},getMinLength:function(){return this.options.minLength},setMinLength:function(t){return this.options.minLength=t,this._typeahead&&(this._typeahead.options.minLength=t),this},getLimit:function(){return this.options.limit},setLimit:function(t){return this.options.limit=t,this._typeahead&&(this._typeahead.options.limit=t),this},getFilter:function(){return this.options.filter},setFilter:function(t){return this.options.filter=t,this},setOrigin:function(t){return this.options.origin=t,this.geocoderService=d2(h2({accessToken:this.options.accessToken,origin:this.options.origin})),this},getOrigin:function(){return this.options.origin},setAutocomplete:function(t){return this.options.autocomplete=t,this},getAutocomplete:function(){return this.options.autocomplete},setFuzzyMatch:function(t){return this.options.fuzzyMatch=t,this},getFuzzyMatch:function(){return this.options.fuzzyMatch},setRouting:function(t){return this.options.routing=t,this},getRouting:function(){return this.options.routing},setWorldview:function(t){return this.options.worldview=t,this},getWorldview:function(){return this.options.worldview},_handleMarker:function(t){if(this._map){this._removeMarker();var i={color:"#4668F2"},l=Nl({},i,this.options.marker);return this.mapMarker=new this._mapboxgl.Marker(l),t.center?this.mapMarker.setLngLat(t.center).addTo(this._map):t.geometry&&t.geometry.type&&t.geometry.type==="Point"&&t.geometry.coordinates&&this.mapMarker.setLngLat(t.geometry.coordinates).addTo(this._map),this}},_removeMarker:function(){this.mapMarker&&(this.mapMarker.remove(),this.mapMarker=null)},on:function(t,i){return this._eventEmitter.on(t,i),this},off:function(t,i){return this._eventEmitter.removeListener(t,i),this.eventManager.remove(),this}};var t4=XA;const n4=sv(t4);/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */function i4(t){const[i,l]=ft.useState(null),h=Object.assign({},t),g=Nu(()=>{const x=new n4(Object.assign(Object.assign({},h),{marker:i||!1,accessToken:h.mapboxAccessToken}));return h.onLoading&&x.on("loading",h.onLoading),h.onResults&&x.on("results",h.onResults),h.onResult&&x.on("result",T=>{var s;h.onResult!==void 0&&h.onResult(T);const{result:M}=T,F=M&&(M.center||((s=M.geometry)===null||s===void 0?void 0:s.type)==="Point"&&M.geometry.coordinates);if(F&&h.marker){const q=typeof h.marker=="object"?h.marker:{};l(ft.createElement(yA,Object.assign({},q,{longitude:F[0],latitude:F[1]})))}else l(null)}),h.onError&&x.on("error",h.onError),x},{position:h.position});return g.hasOwnProperty("_map")&&g._map&&(g.getProximity()!==h.proximity&&h.proximity!==void 0&&g.setProximity(h.proximity),g.getRenderFunction()!==h.render&&h.render!==void 0&&g.setRenderFunction(h.render),g.getLanguage()!==h.language&&h.language!==void 0&&g.setLanguage(h.language),g.getZoom()!==h.zoom&&h.zoom!==void 0&&g.setZoom(h.zoom),g.getFlyTo()!==h.flyTo&&h.flyTo!==void 0&&g.setFlyTo(h.flyTo),g.getPlaceholder()!==h.placeholder&&h.placeholder!==void 0&&g.setPlaceholder(h.placeholder),g.getCountries()!==h.countries&&h.countries!==void 0&&g.setCountries(h.countries),g.getTypes()!==h.types&&h.types!==void 0&&g.setTypes(h.types),g.getMinLength()!==h.minLength&&h.minLength!==void 0&&g.setMinLength(h.minLength),g.getLimit()!==h.limit&&h.limit!==void 0&&g.setLimit(h.limit),g.getFilter()!==h.filter&&h.filter!==void 0&&g.setFilter(h.filter),g.getOrigin()!==h.origin&&h.origin!==void 0&&g.setOrigin(h.origin),g.getAutocomplete()!==h.autocomplete&&h.autocomplete!==void 0&&g.setAutocomplete(h.autocomplete),g.getFuzzyMatch()!==h.fuzzyMatch&&h.fuzzyMatch!==void 0&&g.setFuzzyMatch(h.fuzzyMatch),g.getRouting()!==h.routing&&h.routing!==void 0&&g.setRouting(h.routing),g.getWorldview()!==h.worldview&&h.worldview!==void 0&&g.setWorldview(h.worldview)),i}/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */var r4=8,o4="LIVE - CORI light basemap - county labels",s4={"mapbox:type":"default","mapbox:origin":"light-v10","mapbox:autocomposite":!0,"mapbox:groups":{"1444855769305.6016":{name:"Tunnels",collapsed:!0},"1444855786460.0557":{name:"Roads",collapsed:!0},"1444855799204.86":{name:"Bridges",collapsed:!0},"1444934295202.7542":{name:"Admin boundaries",collapsed:!1}},"mapbox:sdk-support":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"},"mapbox:uiParadigm":"layers","mapbox:thumb":"data:image/webp;base64,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"},a4=[-72.26808525539167,43.37747275058169],l4=10.873762090608595,c4=0,u4=2,h4={composite:{url:"mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v8,ruralinno.2pv0vm2z,ruralinno.3v9y79ly,ruralinno.5639ssfg,ruralinno.c504wkuy,ruralinno.7stpbs93,ruralinno.cwz2k5qc,ruralinno.1joudpqe",type:"vector"}},d4="mapbox://sprites/ruralinno/cl010e7b7001p15pe3l0306hv/68n9slz9mfbus83an19oqbf32",p4="mapbox://fonts/ruralinno/{fontstack}/{range}.pbf",f4=[{id:"land",type:"background",layout:{},paint:{"background-color":"hsl(55, 0%, 100%)"}},{id:"landcover",type:"fill",source:"composite","source-layer":"landcover",maxzoom:7,layout:{},paint:{"fill-color":"hsl(0, 0%, 100%)","fill-opacity":["interpolate",["exponential",1.5],["zoom"],2,.1,7,0],"fill-antialias":!1}},{id:"national-park",type:"fill",source:"composite","source-layer":"landuse_overlay",minzoom:5,filter:["==",["get","class"],"national_park"],layout:{},paint:{"fill-color":"hsla(150, 6%, 93%, 0.63)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.5]}},{id:"landuse",type:"fill",source:"composite","source-layer":"landuse",minzoom:5,filter:["match",["get","class"],["park","airport","glacier","pitch","sand"],!0,!1],layout:{},paint:{"fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,["match",["get","class"],"glacier",.5,1]],"fill-color":"hsl(150, 0%, 100%)"}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-translate-anchor":"viewport","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-color":"hsl(185, 7%, 73%)"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":"round"},paint:{"line-color":"hsl(187, 9%, 81%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]}},{id:"water",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"#cad2d3","fill-opacity":.5}},{id:"hillshade",type:"fill",source:"composite","source-layer":"hillshade",minzoom:6,layout:{},paint:{"fill-color":["match",["get","class"],"shadow","hsl(0, 0%, 35%)","hsl(0, 0%, 100%)"],"fill-opacity":["interpolate",["linear"],["zoom"],12,["match",["get","level"],[67,56],.02,[89,78],.01,.015],15,0]}},{id:"land-structure-polygon",type:"fill",source:"composite","source-layer":"structure",minzoom:21.1,filter:["all",["==",["geometry-type"],"Polygon"],["==",["get","class"],"land"]],layout:{},paint:{"fill-color":"hsl(156, 20%, 95%)"}},{id:"land-structure-line",type:"line",source:"composite","source-layer":"structure",minzoom:13,filter:["all",["==",["geometry-type"],"LineString"],["==",["get","class"],"land"]],layout:{"line-cap":"round"},paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(156, 20%, 95%)"}},{id:"aeroway-polygon",type:"fill",source:"composite","source-layer":"aeroway",minzoom:11,filter:["all",["==",["geometry-type"],"Polygon"],["match",["get","type"],["runway","taxiway","helipad"],!0,!1]],layout:{},paint:{"fill-opacity":["interpolate",["linear"],["zoom"],11,0,11.5,1],"fill-color":"hsl(0, 0%, 97%)"}},{id:"aeroway-line",type:"line",source:"composite","source-layer":"aeroway",minzoom:9,filter:["==",["geometry-type"],"LineString"],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],9,["match",["get","type"],"runway",1,.5],18,["match",["get","type"],"runway",80,20]],"line-color":"hsl(0, 0%, 97%)"}},{id:"building-outline",type:"line",source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{},paint:{"line-color":"hsl(55, 3%, 87%)","line-width":["interpolate",["exponential",1.5],["zoom"],15,.75,20,3],"line-opacity":["interpolate",["linear"],["zoom"],15,0,16,1]}},{id:"building",type:"fill",source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{},paint:{"fill-outline-color":"hsl(55, 3%, 87%)","fill-opacity":["interpolate",["linear"],["zoom"],15,0,16,1],"fill-color":"hsl(55, 5%, 91%)"}},{id:"tunnel-street-minor-low",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(185, 7%, 88%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"tunnel-street-minor-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-opacity":["step",["zoom"],0,14,1],"line-dasharray":[3,3]}},{id:"tunnel-primary-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,["match",["get","class"],"primary",1,.75],18,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-dasharray":[3,3]}},{id:"tunnel-major-link-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-dasharray":[3,3]}},{id:"tunnel-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-dasharray":[3,3]}},{id:"tunnel-construction",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-color":"hsl(187, 7%, 88%)","line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]]}},{id:"tunnel-path",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,18,4],"line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]],"line-color":"hsl(0, 0%, 85%)"}},{id:"tunnel-steps",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 85%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"tunnel-major-link",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(187, 7%, 88%)"}},{id:"tunnel-pedestrian",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(187, 7%, 88%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"tunnel-street-minor",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(187, 7%, 88%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"tunnel-primary-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(187, 7%, 88%)"}},{id:"tunnel-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(187, 7%, 88%)"}},{id:"road-pedestrian-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,14.5],"line-color":"hsl(156, 12%, 92%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-minor-low",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"road-street-low",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"road-minor-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-street-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9.3,filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,.75,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.1,18,26]}},{id:"road-primary-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9.9,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32]}},{id:"road-major-link-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-opacity":["step",["zoom"],0,11,1]}},{id:"road-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:8.5,filter:["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-opacity":["step",["zoom"],["match",["get","class"],"motorway",1,0],6,1]}},{id:"road-construction",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","class"],"construction"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]]}},{id:"road-path",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],13,.5,14,1,15,1,18,4],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]]}},{id:"road-steps",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"road-major-link",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"road-pedestrian",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"road-minor",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-street",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.1,18,22],"line-color":"hsl(0, 0%, 100%)"}},{id:"road-primary",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"#f6eac1","line-opacity":["interpolate",["linear"],["zoom"],6,0,8,["match",["get","class"],["trunk"],.2,0],16,["match",["get","class"],["trunk"],1,.81]]}},{id:"road-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:8,filter:["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.5,18,32],"line-color":["match",["get","class"],["motorway"],"hsl(26, 100%, 68%)","#f2d163"],"line-opacity":["interpolate",["linear"],["zoom"],6,["match",["get","class"],["trunk"],.3,0],8,.4,18,.7]}},{id:"road-rail",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-pedestrian-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,14.5],"line-opacity":["step",["zoom"],0,14,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-street-minor-low",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"bridge-street-minor-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-opacity":["step",["zoom"],0,14,1],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-primary-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,["match",["get","class"],"primary",1,.75],18,2],"line-opacity":["step",["zoom"],0,10,1],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-major-link-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-construction",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]],"line-color":"hsl(156, 0%, 100%)"}},{id:"bridge-path",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,18,4],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]]}},{id:"bridge-steps",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"bridge-major-link",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-pedestrian",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"bridge-street-minor",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"bridge-primary-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-rail",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-major-link-2-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18]}},{id:"bridge-motorway-trunk-2-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32]}},{id:"bridge-major-link-2",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-motorway-trunk-2",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(0, 0%, 100%)"}},{id:"admin-1-boundary-bg",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"bevel"},paint:{"line-blur":["interpolate",["linear"],["zoom"],3,0,8,3],"line-width":["interpolate",["linear"],["zoom"],7,3.75,12,5.5],"line-opacity":["interpolate",["linear"],["zoom"],7,0,8,.75],"line-dasharray":[1,0],"line-translate":[0,0],"line-color":"hsl(0, 0%, 84%)"}},{id:"admin-0-boundary-bg",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],paint:{"line-width":["interpolate",["linear"],["zoom"],3,3.5,10,8],"line-color":"hsl(0, 0%, 84%)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-translate":[0,0],"line-blur":["interpolate",["linear"],["zoom"],3,0,10,2]}},{id:"admin-1-boundary",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-width":["interpolate",["linear"],["zoom"],7,.75,12,1.5],"line-opacity":["interpolate",["linear"],["zoom"],2,0,3,1],"line-color":["interpolate",["linear"],["zoom"],3,"hsl(0, 0%, 80%)",7,"hsl(0, 0%, 70%)"]}},{id:"admin-0-boundary",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"hsl(0, 0%, 62%)","line-width":["interpolate",["linear"],["zoom"],3,.5,10,2]}},{id:"admin-0-boundary-disputed",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round"},paint:{"line-dasharray":[1.5,1.5],"line-color":"hsl(0, 0%, 62%)","line-width":["interpolate",["linear"],["zoom"],3,.5,10,2]}},{id:"county_border",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"attr_county_labels_pg-155yvu",minzoom:6,maxzoom:12,paint:{"line-width":["interpolate",["linear"],["zoom"],5,.5,9,1.7,18,2],"line-color":"hsl(0, 0%, 59%)","line-opacity":["interpolate",["linear"],["zoom"],5,.2,9,.5,18,1]}},{id:"cousub_border",type:"line",source:"composite","source-layer":"attr_cousub_labels_less_pl-9lemol",minzoom:8,maxzoom:14,layout:{},paint:{"line-color":"hsl(0, 3%, 38%)","line-width":["interpolate",["linear"],["zoom"],0,1,6,1,22,1],"line-opacity":["interpolate",["linear"],["zoom"],7,.1,18,.2]}},{id:"place_border",type:"line",source:"composite","source-layer":"attr_place_labels_less_pl-0n1bxr",minzoom:8,maxzoom:14,paint:{"line-color":"hsla(0, 0%, 58%, 0.62)","line-dasharray":[3,2]}},{id:"road-label",type:"symbol",source:"composite","source-layer":"road",minzoom:10,filter:["step",["zoom"],["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],!0,!1],12,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary","pedestrian","street","street_limited"],!0,!1],15,["match",["get","class"],["ferry","golf","path"],!1,!0]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],10,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","pedestrian","street","street_limited"],9,6.5],18,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],16,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","pedestrian","street","street_limited"],14,13]],"text-max-angle":30,"text-font":["DIN Offc Pro Regular","Arial Unicode MS Regular"],"symbol-placement":"line","text-padding":1,"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-color":"hsl(0, 0%, 42%)","text-halo-color":["match",["get","class"],["motorway","trunk"],"hsla(0, 0%, 100%, 0.75)","hsl(0, 0%, 100%)"],"text-halo-blur":1,"text-halo-width":.1}},{id:"waterway-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:13,filter:["all",["match",["get","class"],["canal","river","stream"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,16],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"natural-line-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["glacier","landform"],!0,!1],["==",["geometry-type"],"LineString"],["<=",["get","filterrank"],1]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},paint:{"text-halo-width":.5,"text-halo-color":"hsl(0, 0%, 100%)","text-halo-blur":.5,"text-color":"hsl(0, 0%, 42%)"}},{id:"natural-point-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland"],!0,!1],["==",["geometry-type"],"Point"],["<=",["get","filterrank"],1]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"text-offset":["literal",[0,0]]},paint:{"text-color":"hsl(0, 0%, 42%)","text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":.5,"text-halo-blur":.5}},{id:"water-line-label",type:"symbol",source:"composite","source-layer":"natural_label",filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"text-size":["interpolate",["linear"],["zoom"],7,["step",["get","sizerank"],24,6,18,12,12],10,["step",["get","sizerank"],18,9,12],18,["step",["get","sizerank"],18,9,16]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"water-point-label",type:"symbol",source:"composite","source-layer":"natural_label",filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water"],!0,!1],["==",["geometry-type"],"Point"]],layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],7,["step",["get","sizerank"],24,6,18,12,12],10,["step",["get","sizerank"],18,9,12]],"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"poi-label",type:"symbol",source:"composite","source-layer":"poi_label",minzoom:6,filter:["<=",["get","filterrank"],1],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":.1,"text-halo-blur":.5,"text-color":["step",["zoom"],["step",["get","sizerank"],"hsl(0, 0%, 66%)",5,"hsl(230, 0%, 56%)"],17,["step",["get","sizerank"],"hsl(0, 0%, 66%)",13,"hsl(0, 0%, 56%)"]]}},{id:"airport-label",type:"symbol",source:"composite","source-layer":"airport_label",minzoom:8,layout:{"text-line-height":1.1,"text-size":["step",["get","sizerank"],18,9,12],"icon-image":["step",["get","sizerank"],["concat",["get","maki"],"-15"],9,["concat",["get","maki"],"-11"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,.75],"text-rotation-alignment":"viewport","text-anchor":"top","text-field":["step",["get","sizerank"],["coalesce",["get","name_en"],["get","name"]],15,["get","ref"]],"text-letter-spacing":.01,"text-max-width":9},paint:{"text-color":"hsla(0, 0%, 42%, 0)","text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":1,"text-opacity":0}},{id:"settlement-subdivision-label",type:"symbol",source:"composite","source-layer":"place_label",minzoom:10,maxzoom:15,filter:["all",["==",["get","class"],"settlement_subdivision"],["<=",["get","filterrank"],4]],layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Offc Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.1],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",17,16]],visibility:"none"},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-color":"hsl(0, 0%, 62%)","text-halo-blur":.5,"text-halo-width":.1}},{id:"state-label",type:"symbol",source:"composite","source-layer":"place_label",minzoom:3,maxzoom:9,filter:["==",["get","class"],"state"],layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],10,6,9.5,7,9],9,["step",["get","symbolrank"],24,6,18,7,14]],"text-transform":"uppercase","text-font":["DIN Offc Pro Bold","Arial Unicode MS Bold"],"text-field":["step",["zoom"],["step",["get","symbolrank"],["coalesce",["get","name_en"],["get","name"]],5,["coalesce",["get","abbr"],["get","name_en"],["get","name"]]],5,["coalesce",["get","name_en"],["get","name"]]],"text-letter-spacing":.15,"text-max-width":6},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-color":"hsl(0, 0%, 66%)","text-halo-width":.1}},{id:"county_label",type:"symbol",source:"composite","source-layer":"attr_county_labels-5i5o0f",minzoom:7.5,maxzoom:14,layout:{"text-field":["step",["zoom"],["upcase",["to-string",["get","name"]]],6,["upcase",["to-string",["get","name"]]],10,["upcase",["to-string",["get","namelsad"]]],22,["upcase",["to-string",["get","namelsad"]]]],"text-font":["step",["zoom"],["literal",["Open Sans Regular","Arial Unicode MS Regular"]],6,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],8,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],11,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],22,["literal",["Montserrat Medium","Arial Unicode MS Regular"]]],"text-size":["interpolate",["linear"],["zoom"],0,0,6,6,6.5,10,7.5,14,9,30,11,75,14,85],"text-allow-overlap":["step",["zoom"],!1,5,!1,10,!1,11,!0],"text-max-width":5,"text-ignore-placement":["step",["zoom"],!1,6,!1,9,!0,12,!0,22,!0]},paint:{"text-color":"hsl(0, 0%, 48%)","text-opacity":["interpolate",["linear"],["zoom"],6.49999,1,6.5,.7,8,.3,11,.1,16,.05]}},{id:"cousub_label",type:"symbol",source:"composite","source-layer":"attr_cousub_labels_plus_pt-0kx5lj",minzoom:9,layout:{"text-field":["upcase",["get","display_name"]],"text-size":["interpolate",["linear"],["zoom"],7.9,0,8,8,9,10,14,30],"text-max-width":5,"text-line-height":1.1,visibility:"none"},paint:{"text-color":"hsla(0, 0%, 31%, 0.76)","text-halo-width":10,"text-halo-color":"hsl(0, 0%, 100%)"}},{id:"place-label new",type:"symbol",source:"composite","source-layer":"rural_places-4rf4i9",minzoom:9,filter:["match",["get","census_boundary_year"],[2020],!0,!1],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],12,9,11,10,10.5,12,9.5,14,8.5,16,6.5,17,4],15,["step",["get","symbolrank"],28,9,26,10,23,11,21,12,20,13,19,15,17]],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["Montserrat Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","NAME"]],"text-max-width":7},paint:{"text-color":["step",["get","symbolrank"],"hsl(0, 2%, 61%)",11,"hsl(0, 1%, 68%)",16,"hsl(0, 1%, 75%)"],"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1}},{id:"settlement-label",type:"symbol",source:"composite","source-layer":"place_label",maxzoom:10.76,filter:["all",["<=",["get","filterrank"],3],["==",["get","class"],"settlement"],["step",["zoom"],!0,12,[">=",["get","symbolrank"],11],13,[">=",["get","symbolrank"],12]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],12,9,11,10,10.5,12,9.5,14,8.5,16,6.5,17,4],15,["step",["get","symbolrank"],28,9,26,10,23,11,21,12,20,13,19,15,17]],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["step",["zoom"],["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]],8,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],11,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],10,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],12,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],11,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],13,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],12,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],15,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],13,["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]]],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],"text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},paint:{"text-color":["step",["get","symbolrank"],"hsl(0, 0%, 42%)",11,"hsl(0, 0%, 55%)",16,"hsl(0, 0%, 62%)"],"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1}},{id:"wwb2s-places_lat_lon",type:"symbol",source:"composite","source-layer":"places_lat_lon-awryh9",minzoom:10.75,maxzoom:20,filter:["all",[">=",["get","pop"],101],[">",["get","pct_rural"],0],["step",["zoom"],!0,13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],13]]],layout:{"text-line-height":1.1,"text-size":["step",["get","symbolrank"],20,9,18,10,16,11,14,12,12],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["step",["zoom"],["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]],8,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],11,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],10,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],12,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],11,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],13,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],12,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],15,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],13,["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]]],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],"text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","NAME"],["get","name"]],"text-max-width":7},paint:{"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1,"text-color":["interpolate",["linear"],["zoom"],0,"hsl(0, 0%, 62%)",22,"#000000"],"text-opacity":["interpolate",["linear"],["zoom"],7,0,9,.97,22,1]}},{id:"custom-pattern",type:"fill",source:"composite","source-layer":"attr_county_labels_pg-155yvu",minzoom:6,layout:{visibility:"none"},paint:{"fill-color":"hsla(303, 73%, 74%, 0.66)","fill-pattern":"stripe-4"}}],m4="2022-02-24T13:16:14.872Z",g4="2024-07-11T16:18:50.102Z",_4="cl010e7b7001p15pe3l0306hv",y4="ruralinno",v4="private",x4=!1,w4={version:r4,name:o4,metadata:s4,center:a4,zoom:l4,bearing:c4,pitch:u4,sources:h4,sprite:d4,glyphs:p4,layers:f4,created:m4,modified:g4,id:_4,owner:y4,visibility:v4,protected:!1,draft:x4};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */Object.assign({},w4);var KA={exports:{}};(function(t,i){(function(l,h){t.exports=h()})(Co,function(){var l,h,g;function x(s,M){if(!l)l=M;else if(!h)h=M;else{var F="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+l+")(sharedChunk); ("+h+")(sharedChunk); self.onerror = null;",q={};l(q),g=M(q),typeof window<"u"&&window&&window.URL&&window.URL.createObjectURL&&(g.workerUrl=window.URL.createObjectURL(new Blob([F],{type:"text/javascript"})))}}x(["exports"],function(s){var M=typeof self<"u"?self:{},F="2.15.0";let q;const X={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(q==null){const n=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{q={}.API_URL_REGEX!=null?new RegExp({}.API_URL_REGEX):n}catch{q=n}}return q},get API_TILEJSON_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return/^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){if(!X.API_URL)return null;try{const n=new URL(X.API_URL);return n.hostname==="api.mapbox.cn"?"https://events.mapbox.cn/events/v2":n.hostname==="api.mapbox.com"?"https://events.mapbox.com/events/v2":null}catch{return null}},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},oe={supported:!1,testSupport:function(n){!ke&&fe&&(ze?ue(n):Ae=n)}};let Ae,fe,ke=!1,ze=!1;function ue(n){const e=n.createTexture();n.bindTexture(n.TEXTURE_2D,e);try{if(n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,fe),n.isContextLost())return;oe.supported=!0}catch{}n.deleteTexture(e),ke=!0}M.document&&(fe=M.document.createElement("img"),fe.onload=function(){Ae&&ue(Ae),Ae=null,ze=!0},fe.onerror=function(){ke=!0,Ae=null},fe.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const re="01";function le(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var De=je;function je(n,e,r,a){this.cx=3*n,this.bx=3*(r-n)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(a-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=n,this.p1y=e,this.p2x=r,this.p2y=a}je.prototype={sampleCurveX:function(n){return((this.ax*n+this.bx)*n+this.cx)*n},sampleCurveY:function(n){return((this.ay*n+this.by)*n+this.cy)*n},sampleCurveDerivativeX:function(n){return(3*this.ax*n+2*this.bx)*n+this.cx},solveCurveX:function(n,e){if(e===void 0&&(e=1e-6),n<0)return 0;if(n>1)return 1;for(var r=n,a=0;a<8;a++){var u=this.sampleCurveX(r)-n;if(Math.abs(u)u?m=r:y=r,r=.5*(y-m)+m;return r},solve:function(n,e){return this.sampleCurveY(this.solveCurveX(n,e))}};var tt=le(De),lt=ut;function ut(n,e){this.x=n,this.y=e}ut.prototype={clone:function(){return new ut(this.x,this.y)},add:function(n){return this.clone()._add(n)},sub:function(n){return this.clone()._sub(n)},multByPoint:function(n){return this.clone()._multByPoint(n)},divByPoint:function(n){return this.clone()._divByPoint(n)},mult:function(n){return this.clone()._mult(n)},div:function(n){return this.clone()._div(n)},rotate:function(n){return this.clone()._rotate(n)},rotateAround:function(n,e){return this.clone()._rotateAround(n,e)},matMult:function(n){return this.clone()._matMult(n)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(n){return this.x===n.x&&this.y===n.y},dist:function(n){return Math.sqrt(this.distSqr(n))},distSqr:function(n){var e=n.x-this.x,r=n.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(n){return Math.atan2(this.y-n.y,this.x-n.x)},angleWith:function(n){return this.angleWithSep(n.x,n.y)},angleWithSep:function(n,e){return Math.atan2(this.x*e-this.y*n,this.x*n+this.y*e)},_matMult:function(n){var e=n[2]*this.x+n[3]*this.y;return this.x=n[0]*this.x+n[1]*this.y,this.y=e,this},_add:function(n){return this.x+=n.x,this.y+=n.y,this},_sub:function(n){return this.x-=n.x,this.y-=n.y,this},_mult:function(n){return this.x*=n,this.y*=n,this},_div:function(n){return this.x/=n,this.y/=n,this},_multByPoint:function(n){return this.x*=n.x,this.y*=n.y,this},_divByPoint:function(n){return this.x/=n.x,this.y/=n.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var n=this.y;return this.y=this.x,this.x=-n,this},_rotate:function(n){var e=Math.cos(n),r=Math.sin(n),a=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=a,this},_rotateAround:function(n,e){var r=Math.cos(n),a=Math.sin(n),u=e.y+a*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-a*(this.y-e.y),this.y=u,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},ut.convert=function(n){return n instanceof ut?n:Array.isArray(n)?new ut(n[0],n[1]):n};var Ve=le(lt);const jt=Math.PI/180,di=180/Math.PI;function St(n){return n*jt}function Vt(n){return n*di}const zi=[[0,0],[1,0],[1,1],[0,1]];function Li(n){if(n<=0)return 0;if(n>=1)return 1;const e=n*n,r=e*n;return 4*(n<.5?r:3*(n-e)+r-.75)}function wr(n,e,r,a){const u=new tt(n,e,r,a);return function(p){return u.solve(p)}}const Or=wr(.25,.1,.25,1);function Ke(n,e,r){return Math.min(r,Math.max(e,n))}function Tt(n,e,r){return(r=Ke((r-n)/(e-n),0,1))*r*(3-2*r)}function xt(n,e,r){const a=r-e,u=((n-e)%a+a)%a+e;return u===e?r:u}function Bt(n,e,r){if(!n.length)return r(null,[]);let a=n.length;const u=new Array(n.length);let p=null;n.forEach((m,y)=>{e(m,(w,b)=>{w&&(p=w),u[y]=b,--a==0&&r(p,u)})})}function dn(n){const e=[];for(const r in n)e.push(n[r]);return e}function _n(n,...e){for(const r of e)for(const a in r)n[a]=r[a];return n}let ei=1;function Wi(){return ei++}function ti(){return function n(e){return e?(e^Math.random()*(16>>e/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,n)}()}function pi(n){return n<=1?1:Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function rs(n){return!!n&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(n)}function Br(n,e){n.forEach(r=>{e[r]&&(e[r]=e[r].bind(e))})}function yn(n,e){return n.indexOf(e,n.length-e.length)!==-1}function Mt(n,e,r){const a={};for(const u in n)a[u]=e.call(r||this,n[u],u,n);return a}function Ro(n,e,r){const a={};for(const u in n)e.call(r||this,n[u],u,n)&&(a[u]=n[u]);return a}function Ai(n){return Array.isArray(n)?n.map(Ai):typeof n=="object"&&n?Mt(n,Ai):n}const Do={};function vn(n){Do[n]||(typeof console<"u"&&console.warn(n),Do[n]=!0)}function nr(n,e,r){return(r.y-n.y)*(e.x-n.x)>(e.y-n.y)*(r.x-n.x)}function tc(n){let e=0;for(let r,a,u=0,p=n.length,m=p-1;u@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(r,a,u,p)=>{const m=u||p;return e[a]=!m||m.toLowerCase(),""}),e["max-age"]){const r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}let qa=null;function Us(n){if(qa==null){const e=n.navigator?n.navigator.userAgent:null;qa=!!n.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return qa}function Za(n){try{const e=M[n];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch{return!1}}function Oo(n,e){return[n[4*e],n[4*e+1],n[4*e+2],n[4*e+3]]}const js="mapbox-tiles";let nc=500,ic=50,ir,Bo;function Wa(){try{return M.caches}catch{}}function os(){Wa()&&!ir&&(ir=M.caches.open(js))}function Vs(n){const e=n.indexOf("?");if(e<0)return n;const r=function(u){const p=u.indexOf("?");return p>0?u.slice(p+1).split("&"):[]}(n),a=r.filter(u=>{const p=u.split("=");return p[0]==="language"||p[0]==="worldview"});return a.length?`${n.slice(0,e)}?${a.join("&")}`:n.slice(0,e)}let Ha=1/0;const ss={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(ss);class Fo extends Error{constructor(e,r,a){r===401&&xe(a)&&(e+=": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes"),super(e),this.status=r,this.url=a}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}const as=to()?()=>self.worker&&self.worker.referrer:()=>(M.location.protocol==="blob:"?M.parent:M).location.href,ls=function(n,e){if(!(/^file:/.test(r=n.url)||/^file:/.test(as())&&!/^\w+:/.test(r))){if(M.fetch&&M.Request&&M.AbortController&&M.Request.prototype.hasOwnProperty("signal"))return function(a,u){const p=new M.AbortController,m=new M.Request(a.url,{method:a.method||"GET",body:a.body,credentials:a.credentials,headers:a.headers,referrer:as(),referrerPolicy:a.referrerPolicy,signal:p.signal});let y=!1,w=!1;const b=(A=m.url).indexOf("sku=")>0&&xe(A);var A;a.type==="json"&&m.headers.set("Accept","application/json");const I=(L,R,B)=>{if(w)return;if(L&&L.message!=="SecurityError"&&vn(L.toString()),R&&B)return k(R);const V=Date.now();M.fetch(m).then(K=>{if(K.ok){const ie=b?K.clone():null;return k(K,ie,V)}return u(new Fo(K.statusText,K.status,a.url))}).catch(K=>{K.name!=="AbortError"&&u(new Error(`${K.message} ${a.url}`))})},k=(L,R,B)=>{(a.type==="arrayBuffer"?L.arrayBuffer():a.type==="json"?L.json():L.text()).then(V=>{w||(R&&B&&function(K,ie,Y){if(os(),!ir)return;const te={status:ie.status,statusText:ie.statusText,headers:new M.Headers};ie.headers.forEach((Se,be)=>te.headers.set(be,Se));const ae=Hi(ie.headers.get("Cache-Control")||"");if(ae["no-store"])return;ae["max-age"]&&te.headers.set("Expires",new Date(Y+1e3*ae["max-age"]).toUTCString());const se=te.headers.get("Expires");se&&(new Date(se).getTime()-Y<42e4||function(Se,be){if(Bo===void 0)try{new Response(new ReadableStream),Bo=!0}catch{Bo=!1}Bo?be(Se.body):Se.blob().then(be)}(ie,Se=>{const be=new M.Response(Se,te);os(),ir&&ir.then(Re=>Re.put(Vs(K.url),be)).catch(Re=>vn(Re.message))}))}(m,R,B),y=!0,u(null,V,L.headers.get("Cache-Control"),L.headers.get("Expires")))}).catch(V=>{w||u(new Error(V.message))})};return b?function(L,R){if(os(),!ir)return R(null);const B=Vs(L.url);ir.then(V=>{V.match(B).then(K=>{const ie=function(Y){if(!Y)return!1;const te=new Date(Y.headers.get("Expires")||0),ae=Hi(Y.headers.get("Cache-Control")||"");return te>Date.now()&&!ae["no-cache"]}(K);V.delete(B),ie&&V.put(B,K.clone()),R(null,K,ie)}).catch(R)}).catch(R)}(m,I):I(null,null),{cancel:()=>{w=!0,y||p.abort()}}}(n,e);if(to()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",n,e,void 0,!0)}var r;return function(a,u){const p=new M.XMLHttpRequest;p.open(a.method||"GET",a.url,!0),a.type==="arrayBuffer"&&(p.responseType="arraybuffer");for(const m in a.headers)p.setRequestHeader(m,a.headers[m]);return a.type==="json"&&(p.responseType="text",p.setRequestHeader("Accept","application/json")),p.withCredentials=a.credentials==="include",p.onerror=()=>{u(new Error(p.statusText))},p.onload=()=>{if((p.status>=200&&p.status<300||p.status===0)&&p.response!==null){let m=p.response;if(a.type==="json")try{m=JSON.parse(p.response)}catch(y){return u(y)}u(null,m,p.getResponseHeader("Cache-Control"),p.getResponseHeader("Expires"))}else u(new Fo(p.statusText,p.status,a.url))},p.send(a.body),{cancel:()=>p.abort()}}(n,e)},Gs=function(n,e){return ls(_n(n,{type:"arrayBuffer"}),e)};function rc(n){const e=M.document.createElement("a");return e.href=n,e.protocol===M.document.location.protocol&&e.host===M.document.location.host}const ne="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";let N,U;N=[],U=0;const ee=function(n,e){if(oe.supported&&(n.headers||(n.headers={}),n.headers.accept="image/webp,*/*"),U>=X.MAX_PARALLEL_IMAGE_REQUESTS){const p={requestParameters:n,callback:e,cancelled:!1,cancel(){this.cancelled=!0}};return N.push(p),p}U++;let r=!1;const a=()=>{if(!r)for(r=!0,U--;N.length&&U{a(),p?e(p):m&&(M.createImageBitmap?function(b,A){const I=new M.Blob([new Uint8Array(b)],{type:"image/png"});M.createImageBitmap(I).then(k=>{A(null,k)}).catch(k=>{A(new Error(`Could not load image because of ${k.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(m,(b,A)=>e(b,A,y,w)):function(b,A){const I=new M.Image,k=M.URL;I.onload=()=>{A(null,I),k.revokeObjectURL(I.src),I.onload=null,M.requestAnimationFrame(()=>{I.src=ne})},I.onerror=()=>A(new 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."));const L=new M.Blob([new Uint8Array(b)],{type:"image/png"});I.src=b.byteLength?k.createObjectURL(L):ne}(m,(b,A)=>e(b,A,y,w)))});return{cancel:()=>{u.cancel(),a()}}},ce="NO_ACCESS_TOKEN";function ge(n){return n.indexOf("mapbox:")===0}function xe(n){return X.API_URL_REGEX.test(n)}function ve(n){return X.API_CDN_URL_REGEX.test(n)}function me(n){return X.API_STYLE_REGEX.test(n)&&!Me(n)}function Me(n){return X.API_SPRITE_REGEX.test(n)}const et=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function nt(n){const e=n.match(et);if(!e)throw new Error("Unable to parse URL object");return{protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function Ye(n){const e=n.params.length?`?${n.params.join("&")}`:"";return`${n.protocol}://${n.authority}${n.path}${e}`}const kt="mapbox.eventData";function Rt(n){if(!n)return null;const e=n.split(".");if(!e||e.length!==3)return null;try{return JSON.parse(decodeURIComponent(M.atob(e[1]).split("").map(r=>"%"+("00"+r.charCodeAt(0).toString(16)).slice(-2)).join("")))}catch{return null}}class Pt{constructor(e){this.type=e,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(e){const r=Rt(X.ACCESS_TOKEN);let a="";return a=r&&r.u?M.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,(u,p)=>String.fromCharCode(+("0x"+p)))):X.ACCESS_TOKEN||"",e?`${kt}.${e}:${a}`:`${kt}:${a}`}fetchEventData(){const e=Za("localStorage"),r=this.getStorageKey(),a=this.getStorageKey("uuid");if(e)try{const u=M.localStorage.getItem(r);u&&(this.eventData=JSON.parse(u));const p=M.localStorage.getItem(a);p&&(this.anonId=p)}catch{vn("Unable to read from LocalStorage")}}saveEventData(){const e=Za("localStorage"),r=this.getStorageKey(),a=this.getStorageKey("uuid");if(e)try{M.localStorage.setItem(a,this.anonId),Object.keys(this.eventData).length>=1&&M.localStorage.setItem(r,JSON.stringify(this.eventData))}catch{vn("Unable to write to LocalStorage")}}processRequests(e){}postEvent(e,r,a,u){if(!X.EVENTS_URL)return;const p=nt(X.EVENTS_URL);p.params.push(`access_token=${u||X.ACCESS_TOKEN||""}`);const m={event:this.type,created:new Date(e).toISOString()},y=r?_n(m,r):m,w={url:Ye(p),headers:{"Content-Type":"text/plain"},body:JSON.stringify([y])};this.pendingRequest=function(b,A){return ls(_n(b,{method:"POST"}),A)}(w,b=>{this.pendingRequest=null,a(b),this.saveEventData(),this.processRequests(u)})}queueRequest(e,r){this.queue.push(e),this.processRequests(r)}}const Dt=new class extends Pt{constructor(n){super("appUserTurnstile"),this._customAccessToken=n}postTurnstileEvent(n,e){X.EVENTS_URL&&X.ACCESS_TOKEN&&Array.isArray(n)&&n.some(r=>ge(r)||xe(r))&&this.queueRequest(Date.now(),e)}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const e=Rt(X.ACCESS_TOKEN),r=e?e.u:X.ACCESS_TOKEN;let a=r!==this.eventData.tokenU;rs(this.anonId)||(this.anonId=ti(),a=!0);const u=this.queue.shift();if(this.eventData.lastSuccess){const p=new Date(this.eventData.lastSuccess),m=new Date(u),y=(u-this.eventData.lastSuccess)/864e5;a=a||y>=1||y<-1||p.getDate()!==m.getDate()}else a=!0;a?this.postEvent(u,{sdkIdentifier:"mapbox-gl-js",sdkVersion:F,skuId:re,"enabled.telemetry":!1,userId:this.anonId},p=>{p||(this.eventData.lastSuccess=u,this.eventData.tokenU=r)},n):this.processRequests()}},$t=Dt.postTurnstileEvent.bind(Dt),An=new class extends Pt{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(n,e,r,a){this.skuToken=e,this.errorCb=a,X.EVENTS_URL&&(r||X.ACCESS_TOKEN?this.queueRequest({id:n,timestamp:Date.now()},r):this.errorCb(new Error(ce)))}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||(this.anonId||this.fetchEventData(),rs(this.anonId)||(this.anonId=ti()),this.postEvent(r,{sdkIdentifier:"mapbox-gl-js",sdkVersion:F,skuId:re,skuToken:this.skuToken,userId:this.anonId},a=>{a?this.errorCb(a):e&&(this.success[e]=!0)},n))}},Fn=An.postMapLoadEvent.bind(An),vi=new class extends Pt{constructor(){super("gljs.performance")}postPerformanceEvent(n,e){X.EVENTS_URL&&(n||X.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:e},n)}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{timestamp:e,performanceData:r}=this.queue.shift(),a=function(u){const p=M.performance.getEntriesByType("resource"),m=M.performance.getEntriesByType("mark"),y=function(k){const L={};if(k){for(const R in k)if(R!=="other")for(const B of k[R]){const V=`${R}ResolveRangeMin`,K=`${R}ResolveRangeMax`,ie=`${R}RequestCount`,Y=`${R}RequestCachedCount`;L[V]=Math.min(L[V]||1/0,B.startTime),L[K]=Math.max(L[K]||-1/0,B.responseEnd);const te=ae=>{L[ae]===void 0&&(L[ae]=0),++L[ae]};B.transferSize!==void 0&&B.transferSize===0&&te(Y),te(ie)}}return L}(function(k,L){const R={};if(k)for(const B of k){const V=L(B);R[V]===void 0&&(R[V]=[]),R[V].push(B)}return R}(p,_p)),w=M.devicePixelRatio,b=M.navigator.connection||M.navigator.mozConnection||M.navigator.webkitConnection,A={counters:[],metadata:[],attributes:[]},I=(k,L,R)=>{R!=null&&k.push({name:L,value:R.toString()})};for(const k in y)I(A.counters,k,y[k]);if(u.interactionRange[0]!==1/0&&u.interactionRange[1]!==-1/0&&(I(A.counters,"interactionRangeMin",u.interactionRange[0]),I(A.counters,"interactionRangeMax",u.interactionRange[1])),m)for(const k of Object.keys($s)){const L=$s[k],R=m.find(B=>B.name===L);R&&I(A.counters,L,R.startTime)}return I(A.counters,"visibilityHidden",u.visibilityHidden),I(A.attributes,"style",function(k){if(k)for(const L of k){const R=L.name.split("?")[0];if(me(R)){const B=R.split("/").slice(-2);if(B.length===2)return`mapbox://styles/${B[0]}/${B[1]}`}}}(p)),I(A.attributes,"terrainEnabled",u.terrainEnabled?"true":"false"),I(A.attributes,"fogEnabled",u.fogEnabled?"true":"false"),I(A.attributes,"projection",u.projection),I(A.attributes,"zoom",u.zoom),I(A.metadata,"devicePixelRatio",w),I(A.metadata,"connectionEffectiveType",b?b.effectiveType:void 0),I(A.metadata,"navigatorUserAgent",M.navigator.userAgent),I(A.metadata,"screenWidth",M.screen.width),I(A.metadata,"screenHeight",M.screen.height),I(A.metadata,"windowWidth",M.innerWidth),I(A.metadata,"windowHeight",M.innerHeight),I(A.metadata,"mapWidth",u.width/w),I(A.metadata,"mapHeight",u.height/w),I(A.metadata,"webglRenderer",u.renderer),I(A.metadata,"webglVendor",u.vendor),I(A.metadata,"sdkVersion",F),I(A.metadata,"sdkIdentifier","mapbox-gl-js"),A}(r);for(const u of a.metadata);for(const u of a.counters);for(const u of a.attributes);this.postEvent(e,a,()=>{},n)}},Yn=vi.postPerformanceEvent.bind(vi),Fr=new class extends Pt{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(n,e,r,a){if(!X.API_URL||!X.SESSION_PATH)return;const u=nt(X.API_URL+X.SESSION_PATH);u.params.push(`sku=${e||""}`),u.params.push(`access_token=${a||X.ACCESS_TOKEN||""}`);const p={url:Ye(u),headers:{"Content-Type":"text/plain"}};this.pendingRequest=function(m,y){return ls(_n(m,{method:"GET"}),y)}(p,m=>{this.pendingRequest=null,r(m),this.saveEventData(),this.processRequests(a)})}getSessionAPI(n,e,r,a){this.skuToken=e,this.errorCb=a,X.SESSION_PATH&&X.API_URL&&(r||X.ACCESS_TOKEN?this.queueRequest({id:n,timestamp:Date.now()},r):this.errorCb(new Error(ce)))}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||this.getSession(r,this.skuToken,a=>{a?this.errorCb(a):e&&(this.success[e]=!0)},n)}},ii=Fr.getSessionAPI.bind(Fr),Ci=new Set,$s={create:"create",load:"load",fullLoad:"fullLoad"},Bg={mark(n){M.performance.mark(n)},measure(n,e,r){M.performance.measure(n,e,r)}};function _p(n){const e=n.name.split("?")[0];return ve(e)&&e.includes("mapbox-gl.js")?"javascript":ve(e)&&e.includes("mapbox-gl.css")?"css":function(r){return X.API_FONTS_REGEX.test(r)}(e)?"fontRange":Me(e)?"sprite":me(e)?"style":function(r){return X.API_TILEJSON_REGEX.test(r)}(e)?"tilejson":"other"}const Jt=M.performance;function ju(n){const e=n?n.url.toString():void 0;return Jt.getEntriesByName(e)}let Xa,Vu,oc,Nr;const no={now:()=>oc!==void 0?oc:M.performance.now(),setNow(n){oc=n},restoreNow(){oc=void 0},frame(n){const e=M.requestAnimationFrame(n);return{cancel:()=>M.cancelAnimationFrame(e)}},getImageData(n,e=0){const{width:r,height:a}=n;Nr||(Nr=M.document.createElement("canvas"));const u=Nr.getContext("2d",{willReadFrequently:!0});if(!u)throw new Error("failed to create canvas 2d context");return(r>Nr.width||a>Nr.height)&&(Nr.width=r,Nr.height=a),u.clearRect(-e,-e,r+2*e,a+2*e),u.drawImage(n,0,0,r,a),u.getImageData(-e,-e,r+2*e,a+2*e)},resolveURL:n=>(Xa||(Xa=M.document.createElement("a")),Xa.href=n,Xa.href),get devicePixelRatio(){return M.devicePixelRatio},get prefersReducedMotion(){return!!M.matchMedia&&(Vu==null&&(Vu=M.matchMedia("(prefers-reduced-motion: reduce)")),Vu.matches)}};function Gu(n,e,r){r[n]&&r[n].indexOf(e)!==-1||(r[n]=r[n]||[],r[n].push(e))}function $u(n,e,r){if(r&&r[n]){const a=r[n].indexOf(e);a!==-1&&r[n].splice(a,1)}}class cs{constructor(e,r={}){_n(this,r),this.type=e}}class io extends cs{constructor(e,r={}){super("error",_n({error:e},r))}}class Ka{on(e,r){return this._listeners=this._listeners||{},Gu(e,r,this._listeners),this}off(e,r){return $u(e,r,this._listeners),$u(e,r,this._oneTimeListeners),this}once(e,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},Gu(e,r,this._oneTimeListeners),this):new Promise(a=>this.once(e,a))}fire(e,r){typeof e=="string"&&(e=new cs(e,r||{}));const a=e.type;if(this.listens(a)){e.target=this;const u=this._listeners&&this._listeners[a]?this._listeners[a].slice():[];for(const y of u)y.call(this,e);const p=this._oneTimeListeners&&this._oneTimeListeners[a]?this._oneTimeListeners[a].slice():[];for(const y of p)$u(a,y,this._oneTimeListeners),y.call(this,e);const m=this._eventedParent;m&&(_n(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),m.fire(e))}else e instanceof io&&console.error(e.error);return this}listens(e){return!!(this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e))}setEventedParent(e,r){return this._eventedParent=e,this._eventedParentData=r,this}}var Le=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["fill-extrusion-edge-radius"]},"fill-extrusion-rounded-roof":{"type":"boolean","default":true,"requires":["fill-extrusion-edge-radius"],"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-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":false,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');function ro(n,...e){for(const r of e)for(const a in r)n[a]=r[a];return n}function Nn(n){return n instanceof Number||n instanceof String||n instanceof Boolean?n.valueOf():n}function ri(n){if(Array.isArray(n))return n.map(ri);if(n instanceof Object&&!(n instanceof Number||n instanceof String||n instanceof Boolean)){const e={};for(const r in n)e[r]=ri(n[r]);return e}return Nn(n)}class yp extends Error{constructor(e,r){super(r),this.message=r,this.key=e}}var Ur=yp;class qu{constructor(e,r=[]){this.parent=e,this.bindings={};for(const[a,u]of r)this.bindings[a]=u}concat(e){return new qu(this,e)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw new Error(`${e} not found in scope.`)}has(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}var vp=qu;const qs={kind:"null"},at={kind:"number"},Gt={kind:"string"},Ft={kind:"boolean"},Xi={kind:"color"},br={kind:"object"},Nt={kind:"value"},Ki={kind:"collator"},Ya={kind:"formatted"},us={kind:"resolvedImage"};function rr(n,e){return{kind:"array",itemType:n,N:e}}function En(n){if(n.kind==="array"){const e=En(n.itemType);return typeof n.N=="number"?`array<${e}, ${n.N}>`:n.itemType.kind==="value"?"array":`array<${e}>`}return n.kind}const xp=[qs,at,Gt,Ft,Xi,Ya,br,rr(Nt),us];function oo(n,e){if(e.kind==="error")return null;if(n.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!oo(n.itemType,e.itemType))&&(typeof n.N!="number"||n.N===e.N))return null}else{if(n.kind===e.kind)return null;if(n.kind==="value"){for(const r of xp)if(!oo(r,e))return null}}return`Expected ${En(n)} but found ${En(e)} instead.`}function Ja(n,e){return e.some(r=>r.kind===n.kind)}function Qa(n,e){return e.some(r=>r==="null"?n===null:r==="array"?Array.isArray(n):r==="object"?n&&!Array.isArray(n)&&typeof n=="object":r===typeof n)}var Zu,wp={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function el(n){return(n=Math.round(n))<0?0:n>255?255:n}function tl(n){return el(n[n.length-1]==="%"?parseFloat(n)/100*255:parseInt(n))}function sc(n){return(e=n[n.length-1]==="%"?parseFloat(n)/100:parseFloat(n))<0?0:e>1?1:e;var e}function Zs(n,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?n+(e-n)*r*6:2*r<1?e:3*r<2?n+(e-n)*(2/3-r)*6:n}try{Zu={}.parseCSSColor=function(n){var e,r=n.replace(/ /g,"").toLowerCase();if(r in wp)return wp[r].slice();if(r[0]==="#")return r.length===4?(e=parseInt(r.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:r.length===7&&(e=parseInt(r.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var a=r.indexOf("("),u=r.indexOf(")");if(a!==-1&&u+1===r.length){var p=r.substr(0,a),m=r.substr(a+1,u-(a+1)).split(","),y=1;switch(p){case"rgba":if(m.length!==4)return null;y=sc(m.pop());case"rgb":return m.length!==3?null:[tl(m[0]),tl(m[1]),tl(m[2]),y];case"hsla":if(m.length!==4)return null;y=sc(m.pop());case"hsl":if(m.length!==3)return null;var w=(parseFloat(m[0])%360+360)%360/360,b=sc(m[1]),A=sc(m[2]),I=A<=.5?A*(b+1):A+b-A*b,k=2*A-I;return[el(255*Zs(k,I,w+1/3)),el(255*Zs(k,I,w)),el(255*Zs(k,I,w-1/3)),y];default:return null}}return null}}catch{}class Ri{constructor(e,r,a,u=1){this.r=e,this.g=r,this.b=a,this.a=u}static parse(e){if(!e)return;if(e instanceof Ri)return e;if(typeof e!="string")return;const r=Zu(e);return r?new Ri(r[0]/255*r[3],r[1]/255*r[3],r[2]/255*r[3],r[3]):void 0}toString(){const[e,r,a,u]=this.toArray();return`rgba(${Math.round(e)},${Math.round(r)},${Math.round(a)},${u})`}toArray(){const{r:e,g:r,b:a,a:u}=this;return u===0?[0,0,0,0]:[255*e/u,255*r/u,255*a/u,u]}toArray01(){const{r:e,g:r,b:a,a:u}=this;return u===0?[0,0,0,0]:[e/u,r/u,a/u,u]}toArray01PremultipliedAlpha(){const{r:e,g:r,b:a,a:u}=this;return[e,r,a,u]}}Ri.black=new Ri(0,0,0,1),Ri.white=new Ri(1,1,1,1),Ri.transparent=new Ri(0,0,0,0),Ri.red=new Ri(1,0,0,1),Ri.blue=new Ri(0,0,1,1);var Dn=Ri;class Wu{constructor(e,r,a){this.sensitivity=e?r?"variant":"case":r?"accent":"base",this.locale=a,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,r){return this.collator.compare(e,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Hu{constructor(e,r,a,u,p){this.text=e.normalize?e.normalize():e,this.image=r,this.scale=a,this.fontStack=u,this.textColor=p}}class Di{constructor(e){this.sections=e}static fromString(e){return new Di([new Hu(e,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(e){return e instanceof Di?e:Di.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map(e=>e.text).join("")}serialize(){const e=["format"];for(const r of this.sections){if(r.image){e.push(["image",r.image.name]);continue}e.push(r.text);const a={};r.fontStack&&(a["text-font"]=["literal",r.fontStack.split(",")]),r.scale&&(a["font-scale"]=r.scale),r.textColor&&(a["text-color"]=["rgba"].concat(r.textColor.toArray())),e.push(a)}return e}}class or{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(e){return e?new or({name:e,available:!1}):null}serialize(){return["image",this.name]}}function bp(n,e,r,a){return typeof n=="number"&&n>=0&&n<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof r=="number"&&r>=0&&r<=255?a===void 0||typeof a=="number"&&a>=0&&a<=1?null:`Invalid rgba value [${[n,e,r,a].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof a=="number"?[n,e,r,a]:[n,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function nl(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"||n instanceof Dn||n instanceof Wu||n instanceof Di||n instanceof or)return!0;if(Array.isArray(n)){for(const e of n)if(!nl(e))return!1;return!0}if(typeof n=="object"){for(const e in n)if(!nl(n[e]))return!1;return!0}return!1}function Pn(n){if(n===null)return qs;if(typeof n=="string")return Gt;if(typeof n=="boolean")return Ft;if(typeof n=="number")return at;if(n instanceof Dn)return Xi;if(n instanceof Wu)return Ki;if(n instanceof Di)return Ya;if(n instanceof or)return us;if(Array.isArray(n)){const e=n.length;let r;for(const a of n){const u=Pn(a);if(r){if(r===u)continue;r=Nt;break}r=u}return rr(r||Nt,e)}return br}function il(n){const e=typeof n;return n===null?"":e==="string"||e==="number"||e==="boolean"?String(n):n instanceof Dn||n instanceof Di||n instanceof or?n.toString():JSON.stringify(n)}class Xu{constructor(e,r){this.type=e,this.value=r}static parse(e,r){if(e.length!==2)return r.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!nl(e[1]))return r.error("invalid value");const a=e[1];let u=Pn(a);const p=r.expectedType;return u.kind!=="array"||u.N!==0||!p||p.kind!=="array"||typeof p.N=="number"&&p.N!==0||(u=p),new Xu(u,a)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return this.type.kind==="array"||this.type.kind==="object"?["literal",this.value]:this.value instanceof Dn?["rgba"].concat(this.value.toArray()):this.value instanceof Di?this.value.serialize():this.value}}var hs=Xu,fi=class{constructor(n){this.name="ExpressionEvaluationError",this.message=n}toJSON(){return this.message}};const Ku={string:Gt,number:at,boolean:Ft,object:br};class Yu{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");let a,u=1;const p=e[0];if(p==="array"){let y,w;if(e.length>2){const b=e[1];if(typeof b!="string"||!(b in Ku)||b==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);y=Ku[b],u++}else y=Nt;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return r.error('The length argument to "array" must be a positive integer literal',2);w=e[2],u++}a=rr(y,w)}else a=Ku[p];const m=[];for(;ue.outputDefined())}serialize(){const e=this.type,r=[e.kind];if(e.kind==="array"){const a=e.itemType;if(a.kind==="string"||a.kind==="number"||a.kind==="boolean"){r.push(a.kind);const u=e.N;(typeof u=="number"||this.args.length>1)&&r.push(u)}}return r.concat(this.args.map(a=>a.serialize()))}}var so=Yu;class No{constructor(e){this.type=Ya,this.sections=e}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const a=e[1];if(!Array.isArray(a)&&typeof a=="object")return r.error("First argument must be an image or text section.");const u=[];let p=!1;for(let m=1;m<=e.length-1;++m){const y=e[m];if(p&&typeof y=="object"&&!Array.isArray(y)){p=!1;let w=null;if(y["font-scale"]&&(w=r.parse(y["font-scale"],1,at),!w))return null;let b=null;if(y["text-font"]&&(b=r.parse(y["text-font"],1,rr(Gt)),!b))return null;let A=null;if(y["text-color"]&&(A=r.parse(y["text-color"],1,Xi),!A))return null;const I=u[u.length-1];I.scale=w,I.font=b,I.textColor=A}else{const w=r.parse(e[m],1,Nt);if(!w)return null;const b=w.type.kind;if(b!=="string"&&b!=="value"&&b!=="null"&&b!=="resolvedImage")return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");p=!0,u.push({content:w,scale:null,font:null,textColor:null})}}return new No(u)}evaluate(e){return new Di(this.sections.map(r=>{const a=r.content.evaluate(e);return Pn(a)===us?new Hu("",a,null,null,null):new Hu(il(a),null,r.scale?r.scale.evaluate(e):null,r.font?r.font.evaluate(e).join(","):null,r.textColor?r.textColor.evaluate(e):null)}))}eachChild(e){for(const r of this.sections)e(r.content),r.scale&&e(r.scale),r.font&&e(r.font),r.textColor&&e(r.textColor)}outputDefined(){return!1}serialize(){const e=["format"];for(const r of this.sections){e.push(r.content.serialize());const a={};r.scale&&(a["font-scale"]=r.scale.serialize()),r.font&&(a["text-font"]=r.font.serialize()),r.textColor&&(a["text-color"]=r.textColor.serialize()),e.push(a)}return e}}class ac{constructor(e){this.type=us,this.input=e}static parse(e,r){if(e.length!==2)return r.error("Expected two arguments.");const a=r.parse(e[1],1,Gt);return a?new ac(a):r.error("No image name provided.")}evaluate(e){const r=this.input.evaluate(e),a=or.fromString(r);return a&&e.availableImages&&(a.available=e.availableImages.indexOf(r)>-1),a}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const Fg={"to-boolean":Ft,"to-color":Xi,"to-number":at,"to-string":Gt};class Ju{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const a=e[0];if((a==="to-boolean"||a==="to-string")&&e.length!==2)return r.error("Expected one argument.");const u=Fg[a],p=[];for(let m=1;m4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:bp(r[0],r[1],r[2],r[3]),!a))return new Dn(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new fi(a||`Could not parse color from value '${typeof r=="string"?r:String(JSON.stringify(r))}'`)}if(this.type.kind==="number"){let r=null;for(const a of this.args){if(r=a.evaluate(e),r===null)return 0;const u=Number(r);if(!isNaN(u))return u}throw new fi(`Could not convert ${JSON.stringify(r)} to number.`)}return this.type.kind==="formatted"?Di.fromString(il(this.args[0].evaluate(e))):this.type.kind==="resolvedImage"?or.fromString(il(this.args[0].evaluate(e))):il(this.args[0].evaluate(e))}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}serialize(){if(this.type.kind==="formatted")return new No([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind==="resolvedImage")return new ac(this.args[0]).serialize();const e=[`to-${this.type.kind}`];return this.eachChild(r=>{e.push(r.serialize())}),e}}var Ws=Ju;const jr=["Unknown","Point","LineString","Polygon"];var Qu=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&this.feature.id!==void 0?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?jr[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const n=this.featureDistanceData.center,e=this.featureDistanceData.scale,{x:r,y:a}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(r*e-n[0])+this.featureDistanceData.bearing[1]*(a*e-n[1])}return 0}parseColor(n){let e=this._parseColorCache[n];return e||(e=this._parseColorCache[n]=Dn.parse(n)),e}};class ds{constructor(e,r,a,u){this.name=e,this.type=r,this._evaluate=a,this.args=u}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(e=>e.serialize()))}static parse(e,r){const a=e[0],u=ds.definitions[a];if(!u)return r.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`,0);const p=Array.isArray(u)?u[0]:u.type,m=Array.isArray(u)?[[u[1],u[2]]]:u.overloads,y=m.filter(([b])=>!Array.isArray(b)||b.length===e.length-1);let w=null;for(const[b,A]of y){w=new oh(r.registry,r.path,null,r.scope);const I=[];let k=!1;for(let L=1;L{return k=I,Array.isArray(k)?`(${k.map(En).join(", ")})`:`(${En(k.type)}...)`;var k}).join(" | "),A=[];for(let I=1;I=e[2]||n[1]<=e[1]||n[3]>=e[3])}function ol(n,e){const r=(180+n[0])/360,a=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n[1]*Math.PI/360)))/360,u=Math.pow(2,e.z);return[Math.round(r*u*lo),Math.round(a*u*lo)]}function Ep(n,e,r){const a=n[0]-e[0],u=n[1]-e[1],p=n[0]-r[0],m=n[1]-r[1];return a*m-p*u==0&&a*p<=0&&u*m<=0}function cc(n,e){let r=!1;for(let m=0,y=e.length;m(a=n)[1]!=(p=w[b+1])[1]>a[1]&&a[0]<(p[0]-u[0])*(a[1]-u[1])/(p[1]-u[1])+u[0]&&(r=!r)}}var a,u,p;return r}function eh(n,e){for(let r=0;r0&&y<0||m<0&&y>0}function Xs(n,e,r){for(const b of r)for(let A=0;Ar[2]){const u=.5*a;let p=n[0]-r[0]>u?-a:r[0]-n[0]>u?a:0;p===0&&(p=n[0]-r[2]>u?-a:r[2]-n[0]>u?a:0),n[0]+=p}lc(e,n)}function Sp(n,e,r,a){const u=Math.pow(2,a.z)*lo,p=[a.x*lo,a.y*lo],m=[];if(!n)return m;for(const y of n)for(const w of y){const b=[w.x+p[0],w.y+p[1]];ih(b,e,r,u),m.push(b)}return m}function rh(n,e,r,a){const u=Math.pow(2,a.z)*lo,p=[a.x*lo,a.y*lo],m=[];if(!n)return m;for(const w of n){const b=[];for(const A of w){const I=[A.x+p[0],A.y+p[1]];lc(e,I),b.push(I)}m.push(b)}if(e[2]-e[0]<=u/2){(y=e)[0]=y[1]=1/0,y[2]=y[3]=-1/0;for(const w of m)for(const b of w)ih(b,e,r,u)}var y;return m}class Ks{constructor(e,r){this.type=Ft,this.geojson=e,this.geometries=r}static parse(e,r){if(e.length!==2)return r.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(nl(e[1])){const a=e[1];if(a.type==="FeatureCollection")for(let u=0;u{e&&!Ys(r)&&(e=!1)}),e}function co(n){if(n instanceof ao&&n.name==="feature-state")return!1;let e=!0;return n.eachChild(r=>{e&&!co(r)&&(e=!1)}),e}function ps(n,e){if(n instanceof ao&&e.indexOf(n.name)>=0)return!1;let r=!0;return n.eachChild(a=>{r&&!ps(a,e)&&(r=!1)}),r}class hc{constructor(e,r){this.type=r.type,this.name=e,this.boundExpression=r}static parse(e,r){if(e.length!==2||typeof e[1]!="string")return r.error("'var' expression requires exactly one string literal argument.");const a=e[1];return r.scope.has(a)?new hc(a,r.scope.get(a)):r.error(`Unknown variable "${a}". Make sure "${a}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var Ap=hc;class sl{constructor(e,r=[],a,u=new vp,p=[]){this.registry=e,this.path=r,this.key=r.map(m=>`[${m}]`).join(""),this.scope=u,this.errors=p,this.expectedType=a}parse(e,r,a,u,p={}){return r?this.concat(r,a,u)._parse(e,p):this._parse(e,p)}_parse(e,r){function a(u,p,m){return m==="assert"?new so(p,[u]):m==="coerce"?new Ws(p,[u]):u}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),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", []].');const u=e[0];if(typeof u!="string")return this.error(`Expression name must be a string, but found ${typeof u} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const p=this.registry[u];if(p){let m=p.parse(e,this);if(!m)return null;if(this.expectedType){const y=this.expectedType,w=m.type;if(y.kind!=="string"&&y.kind!=="number"&&y.kind!=="boolean"&&y.kind!=="object"&&y.kind!=="array"||w.kind!=="value")if(y.kind!=="color"&&y.kind!=="formatted"&&y.kind!=="resolvedImage"||w.kind!=="value"&&w.kind!=="string"){if(this.checkSubtype(y,w))return null}else m=a(m,y,r.typeAnnotation||"coerce");else m=a(m,y,r.typeAnnotation||"assert")}if(!(m instanceof hs)&&m.type.kind!=="resolvedImage"&&sh(m)){const y=new Qu;try{m=new hs(m.type,m.evaluate(y))}catch(w){return this.error(w.message),null}}return m}return this.error(`Unknown expression "${u}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,r,a){const u=typeof e=="number"?this.path.concat(e):this.path,p=a?this.scope.concat(a):this.scope;return new sl(this.registry,u,r||null,p,this.errors)}error(e,...r){const a=`${this.key}${r.map(u=>`[${u}]`).join("")}`;this.errors.push(new Ur(a,e))}checkSubtype(e,r){const a=oo(e,r);return a&&this.error(a),a}}var oh=sl;function sh(n){if(n instanceof Ap)return sh(n.boundExpression);if(n instanceof ao&&n.name==="error"||n instanceof rl||n instanceof uc)return!1;const e=n instanceof Ws||n instanceof so;let r=!0;return n.eachChild(a=>{r=e?r&&sh(a):r&&a instanceof hs}),!!r&&Ys(n)&&ps(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}function dc(n,e){const r=n.length-1;let a,u,p=0,m=r,y=0;for(;p<=m;)if(y=Math.floor((p+m)/2),a=n[y],u=n[y+1],a<=e){if(y===r||ee))throw new fi("Input is not a number.");m=y-1}return 0}class pc{constructor(e,r,a){this.type=e,this.input=r,this.labels=[],this.outputs=[];for(const[u,p]of a)this.labels.push(u),this.outputs.push(p)}static parse(e,r){if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");const a=r.parse(e[1],1,at);if(!a)return null;const u=[];let p=null;r.expectedType&&r.expectedType.kind!=="value"&&(p=r.expectedType);for(let m=1;m=y)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',b);const I=r.parse(w,A,p);if(!I)return null;p=p||I.type,u.push([y,I])}return new pc(p,a,u)}evaluate(e){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(e);const u=this.input.evaluate(e);if(u<=r[0])return a[0].evaluate(e);const p=r.length;return u>=r[p-1]?a[p-1].evaluate(e):a[dc(r,u)].evaluate(e)}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}serialize(){const e=["step",this.input.serialize()];for(let r=0;r0&&e.push(this.labels[r]),e.push(this.outputs[r].serialize());return e}}var ah=pc;function Zt(n,e,r){return n*(1-r)+e*r}var al=Object.freeze({__proto__:null,array:function(n,e,r){return n.map((a,u)=>Zt(a,e[u],r))},color:function(n,e,r){return new Dn(Zt(n.r,e.r,r),Zt(n.g,e.g,r),Zt(n.b,e.b,r),Zt(n.a,e.a,r))},number:Zt});const Cp=.95047,lh=1.08883,Ip=4/29,fs=6/29,ch=3*fs*fs,Ug=fs*fs*fs,jg=Math.PI/180,Vg=180/Math.PI;function uh(n){return n>Ug?Math.pow(n,1/3):n/ch+Ip}function hh(n){return n>fs?n*n*n:ch*(n-Ip)}function dh(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function fc(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Mp(n){const e=fc(n.r),r=fc(n.g),a=fc(n.b),u=uh((.4124564*e+.3575761*r+.1804375*a)/Cp),p=uh((.2126729*e+.7151522*r+.072175*a)/1);return{l:116*p-16,a:500*(u-p),b:200*(p-uh((.0193339*e+.119192*r+.9503041*a)/lh)),alpha:n.a}}function kp(n){let e=(n.l+16)/116,r=isNaN(n.a)?e:e+n.a/500,a=isNaN(n.b)?e:e-n.b/200;return e=1*hh(e),r=Cp*hh(r),a=lh*hh(a),new Dn(dh(3.2404542*r-1.5371385*e-.4985314*a),dh(-.969266*r+1.8760108*e+.041556*a),dh(.0556434*r-.2040259*e+1.0572252*a),n.alpha)}function Gg(n,e,r){const a=e-n;return n+r*(a>180||a<-180?a-360*Math.round(a/360):a)}const ll={forward:Mp,reverse:kp,interpolate:function(n,e,r){return{l:Zt(n.l,e.l,r),a:Zt(n.a,e.a,r),b:Zt(n.b,e.b,r),alpha:Zt(n.alpha,e.alpha,r)}}},Js={forward:function(n){const{l:e,a:r,b:a}=Mp(n),u=Math.atan2(a,r)*Vg;return{h:u<0?u+360:u,c:Math.sqrt(r*r+a*a),l:e,alpha:n.a}},reverse:function(n){const e=n.h*jg,r=n.c;return kp({l:n.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:n.alpha})},interpolate:function(n,e,r){return{h:Gg(n.h,e.h,r),c:Zt(n.c,e.c,r),l:Zt(n.l,e.l,r),alpha:Zt(n.alpha,e.alpha,r)}}};var ph=Object.freeze({__proto__:null,hcl:Js,lab:ll});class cl{constructor(e,r,a,u,p){this.type=e,this.operator=r,this.interpolation=a,this.input=u,this.labels=[],this.outputs=[];for(const[m,y]of p)this.labels.push(m),this.outputs.push(y)}static interpolationFactor(e,r,a,u){let p=0;if(e.name==="exponential")p=fh(r,e.base,a,u);else if(e.name==="linear")p=fh(r,1,a,u);else if(e.name==="cubic-bezier"){const m=e.controlPoints;p=new tt(m[0],m[1],m[2],m[3]).solve(fh(r,1,a,u))}return p}static parse(e,r){let[a,u,p,...m]=e;if(!Array.isArray(u)||u.length===0)return r.error("Expected an interpolation type expression.",1);if(u[0]==="linear")u={name:"linear"};else if(u[0]==="exponential"){const b=u[1];if(typeof b!="number")return r.error("Exponential interpolation requires a numeric base.",1,1);u={name:"exponential",base:b}}else{if(u[0]!=="cubic-bezier")return r.error(`Unknown interpolation type ${String(u[0])}`,1,0);{const b=u.slice(1);if(b.length!==4||b.some(A=>typeof A!="number"||A<0||A>1))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);u={name:"cubic-bezier",controlPoints:b}}}if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(p=r.parse(p,2,at),!p)return null;const y=[];let w=null;a==="interpolate-hcl"||a==="interpolate-lab"?w=Xi:r.expectedType&&r.expectedType.kind!=="value"&&(w=r.expectedType);for(let b=0;b=A)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',k);const R=r.parse(I,L,w);if(!R)return null;w=w||R.type,y.push([A,R])}return w.kind==="number"||w.kind==="color"||w.kind==="array"&&w.itemType.kind==="number"&&typeof w.N=="number"?new cl(w,a,u,p,y):r.error(`Type ${En(w)} is not interpolatable.`)}evaluate(e){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(e);const u=this.input.evaluate(e);if(u<=r[0])return a[0].evaluate(e);const p=r.length;if(u>=r[p-1])return a[p-1].evaluate(e);const m=dc(r,u),y=cl.interpolationFactor(this.interpolation,u,r[m],r[m+1]),w=a[m].evaluate(e),b=a[m+1].evaluate(e);return this.operator==="interpolate"?al[this.type.kind.toLowerCase()](w,b,y):this.operator==="interpolate-hcl"?Js.reverse(Js.interpolate(Js.forward(w),Js.forward(b),y)):ll.reverse(ll.interpolate(ll.forward(w),ll.forward(b),y))}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}serialize(){let e;e=this.interpolation.name==="linear"?["linear"]:this.interpolation.name==="exponential"?this.interpolation.base===1?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const r=[this.operator,e,this.input.serialize()];for(let a=0;aoo(u,y.type));return new mc(m?Nt:a,p)}evaluate(e){let r,a=null,u=0;for(const p of this.args){if(u++,a=p.evaluate(e),a&&a instanceof or&&!a.available&&(r||(r=a),a=null,u===this.args.length))return r;if(a!==null)break}return a}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}serialize(){const e=["coalesce"];return this.eachChild(r=>{e.push(r.serialize())}),e}}var mh=mc;class gc{constructor(e,r){this.type=r.type,this.bindings=[].concat(e),this.result=r}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const r of this.bindings)e(r[1]);e(this.result)}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const a=[];for(let p=1;p=a.length)throw new fi(`Array index out of bounds: ${r} > ${a.length-1}.`);if(r!==Math.floor(r))throw new fi(`Array index must be an integer, but found ${r} instead.`);return a[r]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var $g=gh;class _h{constructor(e,r){this.type=Ft,this.needle=e,this.haystack=r}static parse(e,r){if(e.length!==3)return r.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,Nt);return a&&u?Ja(a.type,[Ft,Gt,at,qs,Nt])?new _h(a,u):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${En(a.type)} instead`):null}evaluate(e){const r=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(a==null)return!1;if(!Qa(r,["boolean","string","number","null"]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${En(Pn(r))} instead.`);if(!Qa(a,["string","array"]))throw new fi(`Expected second argument to be of type array or string, but found ${En(Pn(a))} instead.`);return a.indexOf(r)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var _c=_h;class ul{constructor(e,r,a){this.type=at,this.needle=e,this.haystack=r,this.fromIndex=a}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,Nt);if(!a||!u)return null;if(!Ja(a.type,[Ft,Gt,at,qs,Nt]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${En(a.type)} instead`);if(e.length===4){const p=r.parse(e[3],3,at);return p?new ul(a,u,p):null}return new ul(a,u)}evaluate(e){const r=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(!Qa(r,["boolean","string","number","null"]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${En(Pn(r))} instead.`);if(!Qa(a,["string","array"]))throw new fi(`Expected second argument to be of type array or string, but found ${En(Pn(a))} instead.`);if(this.fromIndex){const u=this.fromIndex.evaluate(e);return a.indexOf(r,u)}return a.indexOf(r)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}serialize(){if(this.fromIndex!=null&&this.fromIndex!==void 0){const e=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),e]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var zp=ul;class yh{constructor(e,r,a,u,p,m){this.inputType=e,this.type=r,this.input=a,this.cases=u,this.outputs=p,this.otherwise=m}static parse(e,r){if(e.length<5)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return r.error("Expected an even number of arguments.");let a,u;r.expectedType&&r.expectedType.kind!=="value"&&(u=r.expectedType);const p={},m=[];for(let b=2;bNumber.MAX_SAFE_INTEGER)return k.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof R=="number"&&Math.floor(R)!==R)return k.error("Numeric branch labels must be integer values.");if(a){if(k.checkSubtype(a,Pn(R)))return null}else a=Pn(R);if(p[String(R)]!==void 0)return k.error("Branch labels must be unique.");p[String(R)]=m.length}const L=r.parse(I,b,u);if(!L)return null;u=u||L.type,m.push(L)}const y=r.parse(e[1],1,Nt);if(!y)return null;const w=r.parse(e[e.length-1],e.length-1,u);return w?y.type.kind!=="value"&&r.concat(1).checkSubtype(a,y.type)?null:new yh(a,u,y,p,m,w):null}evaluate(e){const r=this.input.evaluate(e);return(Pn(r)===this.inputType&&this.outputs[this.cases[r]]||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()}serialize(){const e=["match",this.input.serialize()],r=Object.keys(this.cases).sort(),a=[],u={};for(const m of r){const y=u[this.cases[m]];y===void 0?(u[this.cases[m]]=a.length,a.push([this.cases[m],[m]])):a[y][1].push(m)}const p=m=>this.inputType.kind==="number"?Number(m):m;for(const[m,y]of a)e.push(y.length===1?p(y[0]):y.map(p)),e.push(this.outputs[m].serialize());return e.push(this.otherwise.serialize()),e}}var qg=yh;class vh{constructor(e,r,a){this.type=e,this.branches=r,this.otherwise=a}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return r.error("Expected an odd number of arguments.");let a;r.expectedType&&r.expectedType.kind!=="value"&&(a=r.expectedType);const u=[];for(let m=1;mr.outputDefined())&&this.otherwise.outputDefined()}serialize(){const e=["case"];return this.eachChild(r=>{e.push(r.serialize())}),e}}var Lp=vh;class hl{constructor(e,r,a,u){this.type=e,this.input=r,this.beginIndex=a,this.endIndex=u}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,at);if(!a||!u)return null;if(!Ja(a.type,[rr(Nt),Gt,Nt]))return r.error(`Expected first argument to be of type array or string, but found ${En(a.type)} instead`);if(e.length===4){const p=r.parse(e[3],3,at);return p?new hl(a.type,a,u,p):null}return new hl(a.type,a,u)}evaluate(e){const r=this.input.evaluate(e),a=this.beginIndex.evaluate(e);if(!Qa(r,["string","array"]))throw new fi(`Expected first argument to be of type array or string, but found ${En(Pn(r))} instead.`);if(this.endIndex){const u=this.endIndex.evaluate(e);return r.slice(a,u)}return r.slice(a)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}serialize(){if(this.endIndex!=null&&this.endIndex!==void 0){const e=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),e]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Rp=hl;function yc(n,e){return n==="=="||n==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function Dp(n,e,r,a){return a.compare(e,r)===0}function Qs(n,e,r){const a=n!=="=="&&n!=="!=";return class YA{constructor(p,m,y){this.type=Ft,this.lhs=p,this.rhs=m,this.collator=y,this.hasUntypedArgument=p.type.kind==="value"||m.type.kind==="value"}static parse(p,m){if(p.length!==3&&p.length!==4)return m.error("Expected two or three arguments.");const y=p[0];let w=m.parse(p[1],1,Nt);if(!w)return null;if(!yc(y,w.type))return m.concat(1).error(`"${y}" comparisons are not supported for type '${En(w.type)}'.`);let b=m.parse(p[2],2,Nt);if(!b)return null;if(!yc(y,b.type))return m.concat(2).error(`"${y}" comparisons are not supported for type '${En(b.type)}'.`);if(w.type.kind!==b.type.kind&&w.type.kind!=="value"&&b.type.kind!=="value")return m.error(`Cannot compare types '${En(w.type)}' and '${En(b.type)}'.`);a&&(w.type.kind==="value"&&b.type.kind!=="value"?w=new so(b.type,[w]):w.type.kind!=="value"&&b.type.kind==="value"&&(b=new so(w.type,[b])));let A=null;if(p.length===4){if(w.type.kind!=="string"&&b.type.kind!=="string"&&w.type.kind!=="value"&&b.type.kind!=="value")return m.error("Cannot use collator to compare non-string types.");if(A=m.parse(p[3],3,Ki),!A)return null}return new YA(w,b,A)}evaluate(p){const m=this.lhs.evaluate(p),y=this.rhs.evaluate(p);if(a&&this.hasUntypedArgument){const w=Pn(m),b=Pn(y);if(w.kind!==b.kind||w.kind!=="string"&&w.kind!=="number")throw new fi(`Expected arguments for "${n}" to be (string, string) or (number, number), but found (${w.kind}, ${b.kind}) instead.`)}if(this.collator&&!a&&this.hasUntypedArgument){const w=Pn(m),b=Pn(y);if(w.kind!=="string"||b.kind!=="string")return e(p,m,y)}return this.collator?r(p,m,y,this.collator.evaluate(p)):e(p,m,y)}eachChild(p){p(this.lhs),p(this.rhs),this.collator&&p(this.collator)}outputDefined(){return!0}serialize(){const p=[n];return this.eachChild(m=>{p.push(m.serialize())}),p}}}const Zg=Qs("==",function(n,e,r){return e===r},Dp),Wg=Qs("!=",function(n,e,r){return e!==r},function(n,e,r,a){return!Dp(0,e,r,a)}),Hg=Qs("<",function(n,e,r){return e",function(n,e,r){return e>r},function(n,e,r,a){return a.compare(e,r)>0}),Kg=Qs("<=",function(n,e,r){return e<=r},function(n,e,r,a){return a.compare(e,r)<=0}),Op=Qs(">=",function(n,e,r){return e>=r},function(n,e,r,a){return a.compare(e,r)>=0});class vc{constructor(e,r,a,u,p,m){this.type=Gt,this.number=e,this.locale=r,this.currency=a,this.unit=u,this.minFractionDigits=p,this.maxFractionDigits=m}static parse(e,r){if(e.length!==3)return r.error("Expected two arguments.");const a=r.parse(e[1],1,at);if(!a)return null;const u=e[2];if(typeof u!="object"||Array.isArray(u))return r.error("NumberFormat options argument must be an object.");let p=null;if(u.locale&&(p=r.parse(u.locale,1,Gt),!p))return null;let m=null;if(u.currency&&(m=r.parse(u.currency,1,Gt),!m))return null;let y=null;if(u.unit&&(y=r.parse(u.unit,1,Gt),!y))return null;let w=null;if(u["min-fraction-digits"]&&(w=r.parse(u["min-fraction-digits"],1,at),!w))return null;let b=null;return u["max-fraction-digits"]&&(b=r.parse(u["max-fraction-digits"],1,at),!b)?null:new vc(a,p,m,y,w,b)}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!1}serialize(){const e={};return this.locale&&(e.locale=this.locale.serialize()),this.currency&&(e.currency=this.currency.serialize()),this.unit&&(e.unit=this.unit.serialize()),this.minFractionDigits&&(e["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(e["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),e]}}class ea{constructor(e){this.type=at,this.input=e}static parse(e,r){if(e.length!==2)return r.error(`Expected 1 argument, but found ${e.length-1} instead.`);const a=r.parse(e[1],1);return a?a.type.kind!=="array"&&a.type.kind!=="string"&&a.type.kind!=="value"?r.error(`Expected argument of type string or array, but found ${En(a.type)} instead.`):new ea(a):null}evaluate(e){const r=this.input.evaluate(e);if(typeof r=="string"||Array.isArray(r))return r.length;throw new fi(`Expected value to be of type string or array, but found ${En(Pn(r))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){const e=["length"];return this.eachChild(r=>{e.push(r.serialize())}),e}}const Bp={"==":Zg,"!=":Wg,">":Xg,"<":Hg,">=":Op,"<=":Kg,array:so,at:$g,boolean:so,case:Lp,coalesce:mh,collator:rl,format:No,image:ac,in:_c,"index-of":zp,interpolate:Vr,"interpolate-hcl":Vr,"interpolate-lab":Vr,length:ea,let:Pp,literal:hs,match:qg,number:so,"number-format":vc,object:so,slice:Rp,step:ah,string:so,"to-boolean":Ws,"to-color":Ws,"to-number":Ws,"to-string":Ws,var:Ap,within:uc};function Fp(n,[e,r,a,u]){e=e.evaluate(n),r=r.evaluate(n),a=a.evaluate(n);const p=u?u.evaluate(n):1,m=bp(e,r,a,p);if(m)throw new fi(m);return new Dn(e/255*p,r/255*p,a/255*p,p)}function uo(n,e){return n in e}function xc(n,e){const r=e[n];return r===void 0?null:r}function sr(n){return{type:n}}ao.register(Bp,{error:[{kind:"error"},[Gt],(n,[e])=>{throw new fi(e.evaluate(n))}],typeof:[Gt,[Nt],(n,[e])=>En(Pn(e.evaluate(n)))],"to-rgba":[rr(at,4),[Xi],(n,[e])=>e.evaluate(n).toArray()],rgb:[Xi,[at,at,at],Fp],rgba:[Xi,[at,at,at,at],Fp],has:{type:Ft,overloads:[[[Gt],(n,[e])=>uo(e.evaluate(n),n.properties())],[[Gt,br],(n,[e,r])=>uo(e.evaluate(n),r.evaluate(n))]]},get:{type:Nt,overloads:[[[Gt],(n,[e])=>xc(e.evaluate(n),n.properties())],[[Gt,br],(n,[e,r])=>xc(e.evaluate(n),r.evaluate(n))]]},"feature-state":[Nt,[Gt],(n,[e])=>xc(e.evaluate(n),n.featureState||{})],properties:[br,[],n=>n.properties()],"geometry-type":[Gt,[],n=>n.geometryType()],id:[Nt,[],n=>n.id()],zoom:[at,[],n=>n.globals.zoom],pitch:[at,[],n=>n.globals.pitch||0],"distance-from-center":[at,[],n=>n.distanceFromCenter()],"heatmap-density":[at,[],n=>n.globals.heatmapDensity||0],"line-progress":[at,[],n=>n.globals.lineProgress||0],"sky-radial-progress":[at,[],n=>n.globals.skyRadialProgress||0],accumulated:[Nt,[],n=>n.globals.accumulated===void 0?null:n.globals.accumulated],"+":[at,sr(at),(n,e)=>{let r=0;for(const a of e)r+=a.evaluate(n);return r}],"*":[at,sr(at),(n,e)=>{let r=1;for(const a of e)r*=a.evaluate(n);return r}],"-":{type:at,overloads:[[[at,at],(n,[e,r])=>e.evaluate(n)-r.evaluate(n)],[[at],(n,[e])=>-e.evaluate(n)]]},"/":[at,[at,at],(n,[e,r])=>e.evaluate(n)/r.evaluate(n)],"%":[at,[at,at],(n,[e,r])=>e.evaluate(n)%r.evaluate(n)],ln2:[at,[],()=>Math.LN2],pi:[at,[],()=>Math.PI],e:[at,[],()=>Math.E],"^":[at,[at,at],(n,[e,r])=>Math.pow(e.evaluate(n),r.evaluate(n))],sqrt:[at,[at],(n,[e])=>Math.sqrt(e.evaluate(n))],log10:[at,[at],(n,[e])=>Math.log(e.evaluate(n))/Math.LN10],ln:[at,[at],(n,[e])=>Math.log(e.evaluate(n))],log2:[at,[at],(n,[e])=>Math.log(e.evaluate(n))/Math.LN2],sin:[at,[at],(n,[e])=>Math.sin(e.evaluate(n))],cos:[at,[at],(n,[e])=>Math.cos(e.evaluate(n))],tan:[at,[at],(n,[e])=>Math.tan(e.evaluate(n))],asin:[at,[at],(n,[e])=>Math.asin(e.evaluate(n))],acos:[at,[at],(n,[e])=>Math.acos(e.evaluate(n))],atan:[at,[at],(n,[e])=>Math.atan(e.evaluate(n))],min:[at,sr(at),(n,e)=>Math.min(...e.map(r=>r.evaluate(n)))],max:[at,sr(at),(n,e)=>Math.max(...e.map(r=>r.evaluate(n)))],abs:[at,[at],(n,[e])=>Math.abs(e.evaluate(n))],round:[at,[at],(n,[e])=>{const r=e.evaluate(n);return r<0?-Math.round(-r):Math.round(r)}],floor:[at,[at],(n,[e])=>Math.floor(e.evaluate(n))],ceil:[at,[at],(n,[e])=>Math.ceil(e.evaluate(n))],"filter-==":[Ft,[Gt,Nt],(n,[e,r])=>n.properties()[e.value]===r.value],"filter-id-==":[Ft,[Nt],(n,[e])=>n.id()===e.value],"filter-type-==":[Ft,[Gt],(n,[e])=>n.geometryType()===e.value],"filter-<":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a{const r=n.id(),a=e.value;return typeof r==typeof a&&r":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a>u}],"filter-id->":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r>a}],"filter-<=":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a<=u}],"filter-id-<=":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r<=a}],"filter->=":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a>=u}],"filter-id->=":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r>=a}],"filter-has":[Ft,[Nt],(n,[e])=>e.value in n.properties()],"filter-has-id":[Ft,[],n=>n.id()!==null&&n.id()!==void 0],"filter-type-in":[Ft,[rr(Gt)],(n,[e])=>e.value.indexOf(n.geometryType())>=0],"filter-id-in":[Ft,[rr(Nt)],(n,[e])=>e.value.indexOf(n.id())>=0],"filter-in-small":[Ft,[Gt,rr(Nt)],(n,[e,r])=>r.value.indexOf(n.properties()[e.value])>=0],"filter-in-large":[Ft,[Gt,rr(Nt)],(n,[e,r])=>function(a,u,p,m){for(;p<=m;){const y=p+m>>1;if(u[y]===a)return!0;u[y]>a?m=y-1:p=y+1}return!1}(n.properties()[e.value],r.value,0,r.value.length-1)],all:{type:Ft,overloads:[[[Ft,Ft],(n,[e,r])=>e.evaluate(n)&&r.evaluate(n)],[sr(Ft),(n,e)=>{for(const r of e)if(!r.evaluate(n))return!1;return!0}]]},any:{type:Ft,overloads:[[[Ft,Ft],(n,[e,r])=>e.evaluate(n)||r.evaluate(n)],[sr(Ft),(n,e)=>{for(const r of e)if(r.evaluate(n))return!0;return!1}]]},"!":[Ft,[Ft],(n,[e])=>!e.evaluate(n)],"is-supported-script":[Ft,[Gt],(n,[e])=>{const r=n.globals&&n.globals.isSupportedScript;return!r||r(e.evaluate(n))}],upcase:[Gt,[Gt],(n,[e])=>e.evaluate(n).toUpperCase()],downcase:[Gt,[Gt],(n,[e])=>e.evaluate(n).toLowerCase()],concat:[Gt,sr(Nt),(n,e)=>e.map(r=>il(r.evaluate(n))).join("")],"resolved-locale":[Gt,[Ki],(n,[e])=>e.evaluate(n).resolvedLocale()]});var dl=Bp;function Np(n){return{result:"success",value:n}}function ms(n){return{result:"error",value:n}}function ta(n){return n["property-type"]==="data-driven"}function wc(n){return!!n.expression&&n.expression.parameters.indexOf("zoom")>-1}function bc(n){return!!n.expression&&n.expression.interpolated}function Wt(n){return n instanceof Number?"number":n instanceof String?"string":n instanceof Boolean?"boolean":Array.isArray(n)?"array":n===null?"null":typeof n}function pl(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Up(n){return n}function Ec(n,e){const r=e.type==="color",a=n.stops&&typeof n.stops[0][0]=="object",u=a||!(a||n.property!==void 0),p=n.type||(bc(e)?"exponential":"interval");if(r&&((n=ro({},n)).stops&&(n.stops=n.stops.map(b=>[b[0],Dn.parse(b[1])])),n.default=Dn.parse(n.default?n.default:e.default)),n.colorSpace&&n.colorSpace!=="rgb"&&!ph[n.colorSpace])throw new Error(`Unknown color space: ${n.colorSpace}`);let m,y,w;if(p==="exponential")m=ho;else if(p==="interval")m=Tc;else if(p==="categorical"){m=jp,y=Object.create(null);for(const b of n.stops)y[b[0]]=b[1];w=typeof n.stops[0][0]}else{if(p!=="identity")throw new Error(`Unknown function type "${p}"`);m=Vp}if(a){const b={},A=[];for(let L=0;LL[0]),evaluate:({zoom:L},R)=>ho({stops:I,base:n.base},e,L).evaluate(L,R)}}if(u){const b=p==="exponential"?{name:"exponential",base:n.base!==void 0?n.base:1}:null;return{kind:"camera",interpolationType:b,interpolationFactor:Vr.interpolationFactor.bind(void 0,b),zoomStops:n.stops.map(A=>A[0]),evaluate:({zoom:A})=>m(n,e,A,y,w)}}return{kind:"source",evaluate(b,A){const I=A&&A.properties?A.properties[n.property]:void 0;return I===void 0?na(n.default,e.default):m(n,e,I,y,w)}}}function na(n,e,r){return n!==void 0?n:e!==void 0?e:r!==void 0?r:void 0}function jp(n,e,r,a,u){return na(typeof r===u?a[r]:void 0,n.default,e.default)}function Tc(n,e,r){if(Wt(r)!=="number")return na(n.default,e.default);const a=n.stops.length;if(a===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[a-1][0])return n.stops[a-1][1];const u=dc(n.stops.map(p=>p[0]),r);return n.stops[u][1]}function ho(n,e,r){const a=n.base!==void 0?n.base:1;if(Wt(r)!=="number")return na(n.default,e.default);const u=n.stops.length;if(u===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[u-1][0])return n.stops[u-1][1];const p=dc(n.stops.map(A=>A[0]),r),m=function(A,I,k,L){const R=L-k,B=A-k;return R===0?0:I===1?B/R:(Math.pow(I,B)-1)/(Math.pow(I,R)-1)}(r,a,n.stops[p][0],n.stops[p+1][0]),y=n.stops[p][1],w=n.stops[p+1][1];let b=al[e.type]||Up;if(n.colorSpace&&n.colorSpace!=="rgb"){const A=ph[n.colorSpace];b=(I,k)=>A.reverse(A.interpolate(A.forward(I),A.forward(k),m))}return typeof y.evaluate=="function"?{evaluate(...A){const I=y.evaluate.apply(void 0,A),k=w.evaluate.apply(void 0,A);if(I!==void 0&&k!==void 0)return b(I,k,m)}}:b(y,w,m)}function Vp(n,e,r){return e.type==="color"?r=Dn.parse(r):e.type==="formatted"?r=Di.fromString(r.toString()):e.type==="resolvedImage"?r=or.fromString(r.toString()):Wt(r)===e.type||e.type==="enum"&&e.values[r]||(r=void 0),na(r,n.default,e.default)}class Sc{constructor(e,r){this.expression=e,this._warningHistory={},this._evaluator=new Qu,this._defaultValue=r?function(a){return a.type==="color"&&(pl(a.default)||Array.isArray(a.default))?new Dn(0,0,0,0):a.type==="color"?Dn.parse(a.default)||null:a.default===void 0?null:a.default}(r):null,this._enumValues=r&&r.type==="enum"?r.values:null}evaluateWithoutErrorHandling(e,r,a,u,p,m,y,w){return this._evaluator.globals=e,this._evaluator.feature=r,this._evaluator.featureState=a,this._evaluator.canonical=u||null,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m,this._evaluator.featureTileCoord=y||null,this._evaluator.featureDistanceData=w||null,this.expression.evaluate(this._evaluator)}evaluate(e,r,a,u,p,m,y,w){this._evaluator.globals=e,this._evaluator.feature=r||null,this._evaluator.featureState=a||null,this._evaluator.canonical=u||null,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m||null,this._evaluator.featureTileCoord=y||null,this._evaluator.featureDistanceData=w||null;try{const b=this.expression.evaluate(this._evaluator);if(b==null||typeof b=="number"&&b!=b)return this._defaultValue;if(this._enumValues&&!(b in this._enumValues))throw new fi(`Expected value to be one of ${Object.keys(this._enumValues).map(A=>JSON.stringify(A)).join(", ")}, but found ${JSON.stringify(b)} instead.`);return b}catch(b){return this._warningHistory[b.message]||(this._warningHistory[b.message]=!0,typeof console<"u"&&console.warn(b.message)),this._defaultValue}}}function ia(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="string"&&n[0]in dl}function ra(n,e){const r=new oh(dl,[],e?function(u){const p={color:Xi,string:Gt,number:at,enum:Gt,boolean:Ft,formatted:Ya,resolvedImage:us};return u.type==="array"?rr(p[u.value]||Nt,u.length):p[u.type]}(e):void 0),a=r.parse(n,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return a?Np(new Sc(a,e)):ms(r.errors)}class xh{constructor(e,r){this.kind=e,this._styleExpression=r,this.isStateDependent=e!=="constant"&&!co(r.expression)}evaluateWithoutErrorHandling(e,r,a,u,p,m){return this._styleExpression.evaluateWithoutErrorHandling(e,r,a,u,p,m)}evaluate(e,r,a,u,p,m){return this._styleExpression.evaluate(e,r,a,u,p,m)}}class fl{constructor(e,r,a,u){this.kind=e,this.zoomStops=a,this._styleExpression=r,this.isStateDependent=e!=="camera"&&!co(r.expression),this.interpolationType=u}evaluateWithoutErrorHandling(e,r,a,u,p,m){return this._styleExpression.evaluateWithoutErrorHandling(e,r,a,u,p,m)}evaluate(e,r,a,u,p,m){return this._styleExpression.evaluate(e,r,a,u,p,m)}interpolationFactor(e,r,a){return this.interpolationType?Vr.interpolationFactor(this.interpolationType,e,r,a):0}}function ml(n,e){if((n=ra(n,e)).result==="error")return n;const r=n.value.expression,a=Ys(r);if(!a&&!ta(e))return ms([new Ur("","data expressions not supported")]);const u=ps(r,["zoom","pitch","distance-from-center"]);if(!u&&!wc(e))return ms([new Ur("","zoom expressions not supported")]);const p=Cc(r);return p||u?p instanceof Ur?ms([p]):p instanceof Vr&&!bc(e)?ms([new Ur("",'"interpolate" expressions cannot be used with this property')]):Np(p?new fl(a?"camera":"composite",n.value,p.labels,p instanceof Vr?p.interpolation:void 0):new xh(a?"constant":"source",n.value)):ms([new Ur("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Ac{constructor(e,r){this._parameters=e,this._specification=r,ro(this,Ec(this._parameters,this._specification))}static deserialize(e){return new Ac(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function Cc(n){let e=null;if(n instanceof Pp)e=Cc(n.result);else if(n instanceof mh){for(const r of n.args)if(e=Cc(r),e)break}else(n instanceof ah||n instanceof Vr)&&n.input instanceof ao&&n.input.name==="zoom"&&(e=n);return e instanceof Ur||n.eachChild(r=>{const a=Cc(r);a instanceof Ur?e=a:!e&&a?e=new Ur("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&a&&e!==a&&(e=new Ur("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}class ct{constructor(e,r,a,u){this.message=(e?`${e}: `:"")+a,u&&(this.identifier=u),r!=null&&r.__line__&&(this.line=r.__line__)}}function Er(n){const e=n.key,r=n.value,a=n.valueSpec||{},u=n.objectElementValidators||{},p=n.style,m=n.styleSpec;let y=[];const w=Wt(r);if(w!=="object")return[new ct(e,r,`object expected, ${w} found`)];for(const b in r){const A=b.split(".")[0];let I;u[A]?I=u[A]:a[A]?I=xi:u["*"]?I=u["*"]:a["*"]&&(I=xi),I?y=y.concat(I({key:(e&&`${e}.`)+b,value:r[b],valueSpec:a[A]||a["*"],style:p,styleSpec:m,object:r,objectKey:b},r)):y.push(new ct(e,r[b],`unknown property "${b}"`))}for(const b in a)u[b]||a[b].required&&a[b].default===void 0&&r[b]===void 0&&y.push(new ct(e,r,`missing required property "${b}"`));return y}function Gp(n){const e=n.value,r=n.valueSpec,a=n.style,u=n.styleSpec,p=n.key,m=n.arrayElementValidator||xi;if(Wt(e)!=="array")return[new ct(p,e,`array expected, ${Wt(e)} found`)];if(r.length&&e.length!==r.length)return[new ct(p,e,`array length ${r.length} expected, length ${e.length} found`)];if(r["min-length"]&&e.lengthp)return[new ct(e,r,`${r} is greater than the maximum value ${p}`)]}return[]}function _l(n){const e=n.valueSpec,r=Nn(n.value.type);let a,u,p,m={};const y=r!=="categorical"&&n.value.property===void 0,w=!y,b=Wt(n.value.stops)==="array"&&Wt(n.value.stops[0])==="array"&&Wt(n.value.stops[0][0])==="object",A=Er({key:n.key,value:n.value,valueSpec:n.styleSpec.function,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{stops:function(L){if(r==="identity")return[new ct(L.key,L.value,'identity function may not have a "stops" property')];let R=[];const B=L.value;return R=R.concat(Gp({key:L.key,value:B,valueSpec:L.valueSpec,style:L.style,styleSpec:L.styleSpec,arrayElementValidator:I})),Wt(B)==="array"&&B.length===0&&R.push(new ct(L.key,B,"array must have at least one stop")),R},default:function(L){return xi({key:L.key,value:L.value,valueSpec:e,style:L.style,styleSpec:L.styleSpec})}}});return r==="identity"&&y&&A.push(new ct(n.key,n.value,'missing required property "property"')),r==="identity"||n.value.stops||A.push(new ct(n.key,n.value,'missing required property "stops"')),r==="exponential"&&n.valueSpec.expression&&!bc(n.valueSpec)&&A.push(new ct(n.key,n.value,"exponential functions not supported")),n.styleSpec.$version>=8&&(w&&!ta(n.valueSpec)?A.push(new ct(n.key,n.value,"property functions not supported")):y&&!wc(n.valueSpec)&&A.push(new ct(n.key,n.value,"zoom functions not supported"))),r!=="categorical"&&!b||n.value.property!==void 0||A.push(new ct(n.key,n.value,'"property" property is required')),A;function I(L){let R=[];const B=L.value,V=L.key;if(Wt(B)!=="array")return[new ct(V,B,`array expected, ${Wt(B)} found`)];if(B.length!==2)return[new ct(V,B,`array length 2 expected, length ${B.length} found`)];if(b){if(Wt(B[0])!=="object")return[new ct(V,B,`object expected, ${Wt(B[0])} found`)];if(B[0].zoom===void 0)return[new ct(V,B,"object stop key must have zoom")];if(B[0].value===void 0)return[new ct(V,B,"object stop key must have value")];const K=Nn(B[0].zoom);if(typeof K!="number")return[new ct(V,B[0].zoom,"stop zoom values must be numbers")];if(p&&p>K)return[new ct(V,B[0].zoom,"stop zoom values must appear in ascending order")];K!==p&&(p=K,u=void 0,m={}),R=R.concat(Er({key:`${V}[0]`,value:B[0],valueSpec:{zoom:{}},style:L.style,styleSpec:L.styleSpec,objectElementValidators:{zoom:gl,value:k}}))}else R=R.concat(k({key:`${V}[0]`,value:B[0],valueSpec:{},style:L.style,styleSpec:L.styleSpec},B));return ia(ri(B[1]))?R.concat([new ct(`${V}[1]`,B[1],"expressions are not allowed in function stops.")]):R.concat(xi({key:`${V}[1]`,value:B[1],valueSpec:e,style:L.style,styleSpec:L.styleSpec}))}function k(L,R){const B=Wt(L.value),V=Nn(L.value),K=L.value!==null?L.value:R;if(a){if(B!==a)return[new ct(L.key,K,`${B} stop domain type must match previous stop domain type ${a}`)]}else a=B;if(B!=="number"&&B!=="string"&&B!=="boolean"&&typeof V!="number"&&typeof V!="string"&&typeof V!="boolean")return[new ct(L.key,K,"stop domain value must be a number, string, or boolean")];if(B!=="number"&&r!=="categorical"){let ie=`number expected, ${B} found`;return ta(e)&&r===void 0&&(ie+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ct(L.key,K,ie)]}return r!=="categorical"||B!=="number"||typeof V=="number"&&isFinite(V)&&Math.floor(V)===V?r!=="categorical"&&B==="number"&&typeof V=="number"&&typeof u=="number"&&u!==void 0&&Vnew ct(`${n.key}${a.key}`,n.value,a.message));const r=e.value.expression||e.value._styleExpression.expression;if(n.expressionContext==="property"&&n.propertyKey==="text-font"&&!r.outputDefined())return[new ct(n.key,n.value,`Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.`)];if(n.expressionContext==="property"&&n.propertyType==="layout"&&!co(r))return[new ct(n.key,n.value,'"feature-state" data expressions are not supported with layout properties.')];if(n.expressionContext==="filter")return yl(r,n);if(n.expressionContext&&n.expressionContext.indexOf("cluster")===0){if(!ps(r,["zoom","feature-state"]))return[new ct(n.key,n.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(n.expressionContext==="cluster-initial"&&!Ys(r))return[new ct(n.key,n.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function yl(n,e){const r=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(e.valueSpec&&e.valueSpec.expression)for(const u of e.valueSpec.expression.parameters)r.delete(u);if(r.size===0)return[];const a=[];return n instanceof ao&&r.has(n.name)?[new ct(e.key,e.value,`["${n.name}"] expression is not supported in a filter for a ${e.object.type} layer with id: ${e.object.id}`)]:(n.eachChild(u=>{a.push(...yl(u,e))}),a)}function Ic(n){const e=n.key,r=n.value,a=n.valueSpec,u=[];return Array.isArray(a.values)?a.values.indexOf(Nn(r))===-1&&u.push(new ct(e,r,`expected one of [${a.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(a.values).indexOf(Nn(r))===-1&&u.push(new ct(e,r,`expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(r)} found`)),u}function wh(n){if(n===!0||n===!1)return!0;if(!Array.isArray(n)||n.length===0)return!1;switch(n[0]){case"has":return n.length>=2&&n[1]!=="$id"&&n[1]!=="$type";case"in":return n.length>=3&&(typeof n[1]!="string"||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return n.length!==3||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const e of n.slice(1))if(!wh(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}function Mc(n,e="fill"){if(n==null)return{filter:()=>!0,needGeometry:!1,needFeature:!1};wh(n)||(n=sa(n));const r=n;let a=!0;try{a=function(b){if(!oa(b))return b;let A=ri(b);return kc(A),A=$p(A),A}(r)}catch{console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. +This is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md +and paste the contents of this message in the report. +Thank you! +Filter Expression: +${JSON.stringify(r,null,2)} + `)}const u=Le[`filter_${e}`],p=ra(a,u);let m=null;if(p.result==="error")throw new Error(p.value.map(b=>`${b.key}: ${b.message}`).join(", "));m=(b,A,I)=>p.value.evaluate(b,A,{},I);let y=null,w=null;if(a!==r){const b=ra(r,u);if(b.result==="error")throw new Error(b.value.map(A=>`${A.key}: ${A.message}`).join(", "));y=(A,I,k,L,R)=>b.value.evaluate(A,I,{},k,void 0,void 0,L,R),w=!Ys(b.value.expression)}return{filter:m,dynamicFilter:y||void 0,needGeometry:qp(a),needFeature:!!w}}function $p(n){if(!Array.isArray(n))return n;const e=function(r){if(bh.has(r[0])){for(let a=1;a$p(r))}function kc(n){let e=!1;const r=[];if(n[0]==="case"){for(let a=1;a",">=","<","<=","to-boolean"]);function Yg(n,e){return ne?1:0}function qp(n){if(!Array.isArray(n))return!1;if(n[0]==="within")return!0;for(let e=1;e"||e==="<="||e===">="?Eh(n[1],n[2],e):e==="any"?(r=n.slice(1),["any"].concat(r.map(sa))):e==="all"?["all"].concat(n.slice(1).map(sa)):e==="none"?["all"].concat(n.slice(1).map(sa).map(Pc)):e==="in"?Th(n[1],n.slice(2)):e==="!in"?Pc(Th(n[1],n.slice(2))):e==="has"?Sh(n[1]):e==="!has"?Pc(Sh(n[1])):e!=="within"||n;var r}function Eh(n,e,r){switch(n){case"$type":return[`filter-type-${r}`,e];case"$id":return[`filter-id-${r}`,e];default:return[`filter-${r}`,n,e]}}function Th(n,e){if(e.length===0)return!1;switch(n){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(r=>typeof r!=typeof e[0])?["filter-in-large",n,["literal",e.sort(Yg)]]:["filter-in-small",n,["literal",e]]}}function Sh(n){switch(n){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",n]}}function Pc(n){return["!",n]}function vl(n){return wh(ri(n.value))?oi(ro({},n,{expressionContext:"filter",valueSpec:n.styleSpec[`filter_${n.layerType||"fill"}`]})):xl(n)}function xl(n){const e=n.value,r=n.key;if(Wt(e)!=="array")return[new ct(r,e,`array expected, ${Wt(e)} found`)];const a=n.styleSpec;let u,p=[];if(e.length<1)return[new ct(r,e,"filter array must have at least 1 element")];switch(p=p.concat(Ic({key:`${r}[0]`,value:e[0],valueSpec:a.filter_operator,style:n.style,styleSpec:n.styleSpec})),Nn(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Nn(e[1])==="$type"&&p.push(new ct(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&p.push(new ct(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(u=Wt(e[1]),u!=="string"&&p.push(new ct(`${r}[1]`,e[1],`string expected, ${u} found`)));for(let m=2;m{b in r&&e.push(new ct(a,r[b],`"${b}" is prohibited for ref layers`))}),u.layers.forEach(b=>{Nn(b.id)===y&&(w=b)}),w?w.ref?e.push(new ct(a,r.ref,"ref cannot reference another ref layer")):m=Nn(w.type):typeof y=="string"&&e.push(new ct(a,r.ref,`ref layer "${y}" not found`))}else if(m!=="background"&&m!=="sky")if(r.source){const w=u.sources&&u.sources[r.source],b=w&&Nn(w.type);w?b==="vector"&&m==="raster"?e.push(new ct(a,r.source,`layer "${r.id}" requires a raster source`)):b==="raster"&&m!=="raster"?e.push(new ct(a,r.source,`layer "${r.id}" requires a vector source`)):b!=="vector"||r["source-layer"]?b==="raster-dem"&&m!=="hillshade"?e.push(new ct(a,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):m!=="line"||!r.paint||!r.paint["line-gradient"]&&!r.paint["line-trim-offset"]||b==="geojson"&&w.lineMetrics||e.push(new ct(a,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new ct(a,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new ct(a,r.source,`source "${r.source}" not found`))}else e.push(new ct(a,r,'missing required property "source"'));return e=e.concat(Er({key:a,value:r,valueSpec:p.layer,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{"*":()=>[],type:()=>xi({key:`${a}.type`,value:r.type,valueSpec:p.layer.type,style:n.style,styleSpec:n.styleSpec,object:r,objectKey:"type"}),filter:w=>vl(ro({layerType:m},w)),layout:w=>Er({layer:r,key:w.key,value:w.value,valueSpec:{},style:w.style,styleSpec:w.styleSpec,objectElementValidators:{"*":b=>Ch(ro({layerType:m},b))}}),paint:w=>Er({layer:r,key:w.key,value:w.value,valueSpec:{},style:w.style,styleSpec:w.styleSpec,objectElementValidators:{"*":b=>Zp(ro({layerType:m},b))}})}})),e}function Uo(n){const e=n.value,r=n.key,a=Wt(e);return a!=="string"?[new ct(r,e,`string expected, ${a} found`)]:[]}const Hp={promoteId:function({key:n,value:e}){if(Wt(e)==="string")return Uo({key:n,value:e});{const r=[];for(const a in e)r.push(...Uo({key:`${n}.${a}`,value:e[a]}));return r}}};function Xp(n){const e=n.value,r=n.key,a=n.styleSpec,u=n.style;if(!e.type)return[new ct(r,e,'"type" is required')];const p=Nn(e.type);let m;switch(p){case"vector":case"raster":case"raster-dem":return m=Er({key:r,value:e,valueSpec:a[`source_${p.replace("-","_")}`],style:n.style,styleSpec:a,objectElementValidators:Hp}),m;case"geojson":if(m=Er({key:r,value:e,valueSpec:a.source_geojson,style:u,styleSpec:a,objectElementValidators:Hp}),e.cluster)for(const y in e.clusterProperties){const[w,b]=e.clusterProperties[y],A=typeof w=="string"?[w,["accumulated"],["get",y]]:w;m.push(...oi({key:`${r}.${y}.map`,value:b,expressionContext:"cluster-map"})),m.push(...oi({key:`${r}.${y}.reduce`,value:A,expressionContext:"cluster-reduce"}))}return m;case"video":return Er({key:r,value:e,valueSpec:a.source_video,style:u,styleSpec:a});case"image":return Er({key:r,value:e,valueSpec:a.source_image,style:u,styleSpec:a});case"canvas":return[new ct(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Ic({key:`${r}.type`,value:e.type,valueSpec:{values:Jg(a)},style:u,styleSpec:a})}}function Jg(n){return n.source.reduce((e,r)=>{const a=n[r];return a.type.type==="enum"&&(e=e.concat(Object.keys(a.type.values))),e},[])}function Kp(n){const e=n.value,r=n.styleSpec,a=r.light,u=n.style;let p=[];const m=Wt(e);if(e===void 0)return p;if(m!=="object")return p=p.concat([new ct("light",e,`object expected, ${m} found`)]),p;for(const y in e){const w=y.match(/^(.*)-transition$/);p=p.concat(w&&a[w[1]]&&a[w[1]].transition?xi({key:y,value:e[y],valueSpec:r.transition,style:u,styleSpec:r}):a[y]?xi({key:y,value:e[y],valueSpec:a[y],style:u,styleSpec:r}):[new ct(y,e[y],`unknown property "${y}"`)])}return p}function Ih(n){const e=n.value,r=n.key,a=n.style,u=n.styleSpec,p=u.terrain;let m=[];const y=Wt(e);if(e===void 0)return m;if(y!=="object")return m=m.concat([new ct("terrain",e,`object expected, ${y} found`)]),m;for(const w in e){const b=w.match(/^(.*)-transition$/);m=m.concat(b&&p[b[1]]&&p[b[1]].transition?xi({key:w,value:e[w],valueSpec:u.transition,style:a,styleSpec:u}):p[w]?xi({key:w,value:e[w],valueSpec:p[w],style:a,styleSpec:u}):[new ct(w,e[w],`unknown property "${w}"`)])}if(e.source){const w=a.sources&&a.sources[e.source],b=w&&Nn(w.type);w?b!=="raster-dem"&&m.push(new ct(r,e.source,`terrain cannot be used with a source of type ${String(b)}, it only be used with a "raster-dem" source type`)):m.push(new ct(r,e.source,`source "${e.source}" not found`))}else m.push(new ct(r,e,'terrain is missing required property "source"'));return m}function Yp(n){const e=n.value,r=n.style,a=n.styleSpec,u=a.fog;let p=[];const m=Wt(e);if(e===void 0)return p;if(m!=="object")return p=p.concat([new ct("fog",e,`object expected, ${m} found`)]),p;for(const y in e){const w=y.match(/^(.*)-transition$/);p=p.concat(w&&u[w[1]]&&u[w[1]].transition?xi({key:y,value:e[y],valueSpec:a.transition,style:r,styleSpec:a}):u[y]?xi({key:y,value:e[y],valueSpec:u[y],style:r,styleSpec:a}):[new ct(y,e[y],`unknown property "${y}"`)])}return p}const Jp={"*":()=>[],array:Gp,boolean:function(n){const e=n.value,r=n.key,a=Wt(e);return a!=="boolean"?[new ct(r,e,`boolean expected, ${a} found`)]:[]},number:gl,color:function(n){const e=n.key,r=n.value,a=Wt(r);return a!=="string"?[new ct(e,r,`color expected, ${a} found`)]:Zu(r)===null?[new ct(e,r,`color expected, "${r}" found`)]:[]},enum:Ic,filter:vl,function:_l,layer:Wp,object:Er,source:Xp,light:Kp,terrain:Ih,fog:Yp,string:Uo,formatted:function(n){return Uo(n).length===0?[]:oi(n)},resolvedImage:function(n){return Uo(n).length===0?[]:oi(n)},projection:function(n){const e=n.value,r=n.styleSpec,a=r.projection,u=n.style;let p=[];const m=Wt(e);if(m==="object")for(const y in e)p=p.concat(xi({key:y,value:e[y],valueSpec:a[y],style:u,styleSpec:r}));else m!=="string"&&(p=p.concat([new ct("projection",e,`object or string expected, ${m} found`)]));return p}};function xi(n){const e=n.value,r=n.valueSpec,a=n.styleSpec;return r.expression&&pl(Nn(e))?_l(n):r.expression&&ia(ri(e))?oi(n):r.type&&Jp[r.type]?Jp[r.type](n):Er(ro({},n,{valueSpec:r.type?a[r.type]:r}))}function Qg(n){const e=n.value,r=n.key,a=Uo(n);return a.length||(e.indexOf("{fontstack}")===-1&&a.push(new ct(r,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new ct(r,e,'"glyphs" url must include a "{range}" token'))),a}function Qp(n,e=Le){return ar(xi({key:"",value:n,valueSpec:e.$root,styleSpec:e,style:n,objectElementValidators:{glyphs:Qg,"*":()=>[]}}))}const e_=n=>ar(Zp(n)),t_=n=>ar(Ch(n));function ar(n){return n.slice().sort((e,r)=>e.line&&r.line?e.line-r.line:0)}function ef(n,e){let r=!1;if(e&&e.length)for(const a of e)n.fire(new io(new Error(a.message))),r=!0;return r}var n_=Gr,Tr=3;function Gr(n,e,r){var a=this.cells=[];if(n instanceof ArrayBuffer){this.arrayBuffer=n;var u=new Int32Array(this.arrayBuffer);n=u[0],this.d=(e=u[1])+2*(r=u[2]);for(var p=0;p=A[L+0]&&a>=A[L+1])?(m[k]=!0,p.push(b[k])):m[k]=!1}}},Gr.prototype._forEachCell=function(n,e,r,a,u,p,m,y){for(var w=this._convertToCellCoord(n),b=this._convertToCellCoord(e),A=this._convertToCellCoord(r),I=this._convertToCellCoord(a),k=w;k<=A;k++)for(var L=b;L<=I;L++){var R=this.d*L+k;if((!y||y(this._convertFromCellCoord(k),this._convertFromCellCoord(L),this._convertFromCellCoord(k+1),this._convertFromCellCoord(L+1)))&&u.call(this,n,e,r,a,R,p,m,y))return}},Gr.prototype._convertFromCellCoord=function(n){return(n-this.padding)/this.scale},Gr.prototype._convertToCellCoord=function(n){return Math.max(0,Math.min(this.d-1,Math.floor(n*this.scale)+this.padding))},Gr.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var n=this.cells,e=Tr+this.cells.length+1+1,r=0,a=0;a=0||(u[p]=aa(n[p],e)));n instanceof Error&&(u.message=n.message)}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return a!=="Object"&&(u.$name=a),u}throw new Error("can't serialize object of type "+typeof n)}function _s(n){if(n==null||typeof n=="boolean"||typeof n=="number"||typeof n=="string"||n instanceof Boolean||n instanceof Number||n instanceof String||n instanceof Date||n instanceof RegExp||Mh(n)||kh(n)||ArrayBuffer.isView(n)||n instanceof M.ImageData)return n;if(Array.isArray(n))return n.map(_s);if(typeof n=="object"){const e=n.$name||"Object",{klass:r}=zc[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(n);const a=Object.create(r.prototype);for(const u of Object.keys(n))u!=="$name"&&(a[u]=_s(n[u]));return a}throw new Error("can't deserialize object of type "+typeof n)}const st={"Latin-1 Supplement":n=>n>=128&&n<=255,Arabic:n=>n>=1536&&n<=1791,"Arabic Supplement":n=>n>=1872&&n<=1919,"Arabic Extended-A":n=>n>=2208&&n<=2303,"Hangul Jamo":n=>n>=4352&&n<=4607,"Unified Canadian Aboriginal Syllabics":n=>n>=5120&&n<=5759,Khmer:n=>n>=6016&&n<=6143,"Unified Canadian Aboriginal Syllabics Extended":n=>n>=6320&&n<=6399,"General Punctuation":n=>n>=8192&&n<=8303,"Letterlike Symbols":n=>n>=8448&&n<=8527,"Number Forms":n=>n>=8528&&n<=8591,"Miscellaneous Technical":n=>n>=8960&&n<=9215,"Control Pictures":n=>n>=9216&&n<=9279,"Optical Character Recognition":n=>n>=9280&&n<=9311,"Enclosed Alphanumerics":n=>n>=9312&&n<=9471,"Geometric Shapes":n=>n>=9632&&n<=9727,"Miscellaneous Symbols":n=>n>=9728&&n<=9983,"Miscellaneous Symbols and Arrows":n=>n>=11008&&n<=11263,"CJK Radicals Supplement":n=>n>=11904&&n<=12031,"Kangxi Radicals":n=>n>=12032&&n<=12255,"Ideographic Description Characters":n=>n>=12272&&n<=12287,"CJK Symbols and Punctuation":n=>n>=12288&&n<=12351,Hiragana:n=>n>=12352&&n<=12447,Katakana:n=>n>=12448&&n<=12543,Bopomofo:n=>n>=12544&&n<=12591,"Hangul Compatibility Jamo":n=>n>=12592&&n<=12687,Kanbun:n=>n>=12688&&n<=12703,"Bopomofo Extended":n=>n>=12704&&n<=12735,"CJK Strokes":n=>n>=12736&&n<=12783,"Katakana Phonetic Extensions":n=>n>=12784&&n<=12799,"Enclosed CJK Letters and Months":n=>n>=12800&&n<=13055,"CJK Compatibility":n=>n>=13056&&n<=13311,"CJK Unified Ideographs Extension A":n=>n>=13312&&n<=19903,"Yijing Hexagram Symbols":n=>n>=19904&&n<=19967,"CJK Unified Ideographs":n=>n>=19968&&n<=40959,"Yi Syllables":n=>n>=40960&&n<=42127,"Yi Radicals":n=>n>=42128&&n<=42191,"Hangul Jamo Extended-A":n=>n>=43360&&n<=43391,"Hangul Syllables":n=>n>=44032&&n<=55215,"Hangul Jamo Extended-B":n=>n>=55216&&n<=55295,"Private Use Area":n=>n>=57344&&n<=63743,"CJK Compatibility Ideographs":n=>n>=63744&&n<=64255,"Arabic Presentation Forms-A":n=>n>=64336&&n<=65023,"Vertical Forms":n=>n>=65040&&n<=65055,"CJK Compatibility Forms":n=>n>=65072&&n<=65103,"Small Form Variants":n=>n>=65104&&n<=65135,"Arabic Presentation Forms-B":n=>n>=65136&&n<=65279,"Halfwidth and Fullwidth Forms":n=>n>=65280&&n<=65519};function Ph(n){for(const e of n)if(zh(e.charCodeAt(0)))return!0;return!1}function i_(n){for(const e of n)if(!tf(e.charCodeAt(0)))return!1;return!0}function tf(n){return!(st.Arabic(n)||st["Arabic Supplement"](n)||st["Arabic Extended-A"](n)||st["Arabic Presentation Forms-A"](n)||st["Arabic Presentation Forms-B"](n))}function zh(n){return!(n!==746&&n!==747&&(n<4352||!(st["Bopomofo Extended"](n)||st.Bopomofo(n)||st["CJK Compatibility Forms"](n)&&!(n>=65097&&n<=65103)||st["CJK Compatibility Ideographs"](n)||st["CJK Compatibility"](n)||st["CJK Radicals Supplement"](n)||st["CJK Strokes"](n)||!(!st["CJK Symbols and Punctuation"](n)||n>=12296&&n<=12305||n>=12308&&n<=12319||n===12336)||st["CJK Unified Ideographs Extension A"](n)||st["CJK Unified Ideographs"](n)||st["Enclosed CJK Letters and Months"](n)||st["Hangul Compatibility Jamo"](n)||st["Hangul Jamo Extended-A"](n)||st["Hangul Jamo Extended-B"](n)||st["Hangul Jamo"](n)||st["Hangul Syllables"](n)||st.Hiragana(n)||st["Ideographic Description Characters"](n)||st.Kanbun(n)||st["Kangxi Radicals"](n)||st["Katakana Phonetic Extensions"](n)||st.Katakana(n)&&n!==12540||!(!st["Halfwidth and Fullwidth Forms"](n)||n===65288||n===65289||n===65293||n>=65306&&n<=65310||n===65339||n===65341||n===65343||n>=65371&&n<=65503||n===65507||n>=65512&&n<=65519)||!(!st["Small Form Variants"](n)||n>=65112&&n<=65118||n>=65123&&n<=65126)||st["Unified Canadian Aboriginal Syllabics"](n)||st["Unified Canadian Aboriginal Syllabics Extended"](n)||st["Vertical Forms"](n)||st["Yijing Hexagram Symbols"](n)||st["Yi Syllables"](n)||st["Yi Radicals"](n))))}function nf(n){return!(zh(n)||function(e){return!!(st["Latin-1 Supplement"](e)&&(e===167||e===169||e===174||e===177||e===188||e===189||e===190||e===215||e===247)||st["General Punctuation"](e)&&(e===8214||e===8224||e===8225||e===8240||e===8241||e===8251||e===8252||e===8258||e===8263||e===8264||e===8265||e===8273)||st["Letterlike Symbols"](e)||st["Number Forms"](e)||st["Miscellaneous Technical"](e)&&(e>=8960&&e<=8967||e>=8972&&e<=8991||e>=8996&&e<=9e3||e===9003||e>=9085&&e<=9114||e>=9150&&e<=9165||e===9167||e>=9169&&e<=9179||e>=9186&&e<=9215)||st["Control Pictures"](e)&&e!==9251||st["Optical Character Recognition"](e)||st["Enclosed Alphanumerics"](e)||st["Geometric Shapes"](e)||st["Miscellaneous Symbols"](e)&&!(e>=9754&&e<=9759)||st["Miscellaneous Symbols and Arrows"](e)&&(e>=11026&&e<=11055||e>=11088&&e<=11097||e>=11192&&e<=11243)||st["CJK Symbols and Punctuation"](e)||st.Katakana(e)||st["Private Use Area"](e)||st["CJK Compatibility Forms"](e)||st["Small Form Variants"](e)||st["Halfwidth and Fullwidth Forms"](e)||e===8734||e===8756||e===8757||e>=9984&&e<=10087||e>=10102&&e<=10131||e===65532||e===65533)}(n))}function rf(n){return n>=1424&&n<=2303||st["Arabic Presentation Forms-A"](n)||st["Arabic Presentation Forms-B"](n)}function r_(n,e){return!(!e&&rf(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||st.Khmer(n))}function o_(n){for(const e of n)if(rf(e.charCodeAt(0)))return!0;return!1}const Lh="deferred",Rh="loading",Dh="loaded";let la=null,d="unavailable",o=null;const c=function(n){n&&typeof n=="string"&&n.indexOf("NetworkError")>-1&&(d="error"),la&&la(n)};function f(){_.fire(new cs("pluginStateChange",{pluginStatus:d,pluginURL:o}))}const _=new Ka,v=function(){return d},E=function(){if(d!==Lh||!o)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");d=Rh,f(),o&&Gs({url:o},n=>{n?c(n):(d=Dh,f())})},S={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>d===Dh||S.applyArabicShaping!=null,isLoading:()=>d===Rh,setState(n){d=n.pluginStatus,o=n.pluginURL},isParsed:()=>S.applyArabicShaping!=null&&S.processBidirectionalText!=null&&S.processStyledBidirectionalText!=null,getPluginURL:()=>o};class C{constructor(e,r){this.zoom=e,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.transition=r.transition,this.pitch=r.pitch):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0)}isSupportedScript(e){return function(r,a){for(const u of r)if(!r_(u.charCodeAt(0),a))return!1;return!0}(e,S.isLoaded())}}class z{constructor(e,r){this.property=e,this.value=r,this.expression=function(a,u){if(pl(a))return new Ac(a,u);if(ia(a)){const p=ml(a,u);if(p.result==="error")throw new Error(p.value.map(m=>`${m.key}: ${m.message}`).join(", "));return p.value}{let p=a;return typeof a=="string"&&u.type==="color"&&(p=Dn.parse(a)),{kind:"constant",evaluate:()=>p}}}(r===void 0?e.specification.default:r,e.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(e,r,a){return this.property.possiblyEvaluate(this,e,r,a)}}class P{constructor(e){this.property=e,this.value=new z(e,void 0)}transitioned(e,r){return new j(this.property,this.value,r,_n({},e.transition,this.transition),e.now)}untransitioned(){return new j(this.property,this.value,null,{},0)}}class D{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues)}getValue(e){return Ai(this._values[e].value.value)}setValue(e,r){this._values.hasOwnProperty(e)||(this._values[e]=new P(this._values[e].property)),this._values[e].value=new z(this._values[e].property,r===null?void 0:Ai(r))}getTransition(e){return Ai(this._values[e].transition)}setTransition(e,r){this._values.hasOwnProperty(e)||(this._values[e]=new P(this._values[e].property)),this._values[e].transition=Ai(r)||void 0}serialize(){const e={};for(const r of Object.keys(this._values)){const a=this.getValue(r);a!==void 0&&(e[r]=a);const u=this.getTransition(r);u!==void 0&&(e[`${r}-transition`]=u)}return e}transitioned(e,r){const a=new $(this._properties);for(const u of Object.keys(this._values))a._values[u]=this._values[u].transitioned(e,r._values[u]);return a}untransitioned(){const e=new $(this._properties);for(const r of Object.keys(this._values))e._values[r]=this._values[r].untransitioned();return e}}class j{constructor(e,r,a,u,p){const m=u.delay||0,y=u.duration||0;p=p||0,this.property=e,this.value=r,this.begin=p+m,this.end=this.begin+y,e.specification.transition&&(u.delay||u.duration)&&(this.prior=a)}possiblyEvaluate(e,r,a){const u=e.now||0,p=this.value.possiblyEvaluate(e,r,a),m=this.prior;if(m){if(u>this.end)return this.prior=null,p;if(this.value.isDataDriven())return this.prior=null,p;if(uthis.capacity){this.capacity=Math.max(e,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null}}function _e(n,e=1){let r=0,a=0;return{members:n.map(u=>{const p=pe[u.type].BYTES_PER_ELEMENT,m=r=Te(r,Math.max(e,p)),y=u.components||1;return a=Math.max(a,p),r+=p*y,{name:u.name,type:u.type,components:y,offset:m}}),size:Te(r,Math.max(a,e)),alignment:e}}function Te(n,e){return Math.ceil(n/e)*e}class Ze extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.int16[u+0]=r,this.int16[u+1]=a,e}}Ze.prototype.bytesPerElement=4,ht(Ze,"StructArrayLayout2i4");class we extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.int16[p+0]=r,this.int16[p+1]=a,this.int16[p+2]=u,e}}we.prototype.bytesPerElement=6,ht(we,"StructArrayLayout3i6");class Be extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.int16[m+0]=r,this.int16[m+1]=a,this.int16[m+2]=u,this.int16[m+3]=p,e}}Be.prototype.bytesPerElement=8,ht(Be,"StructArrayLayout4i8");class Ce extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y){const w=this.length;return this.resize(w+1),this.emplace(w,e,r,a,u,p,m,y)}emplace(e,r,a,u,p,m,y,w){const b=6*e,A=12*e,I=3*e;return this.int16[b+0]=r,this.int16[b+1]=a,this.uint8[A+4]=u,this.uint8[A+5]=p,this.uint8[A+6]=m,this.uint8[A+7]=y,this.float32[I+2]=w,e}}Ce.prototype.bytesPerElement=12,ht(Ce,"StructArrayLayout2i4ub1f12");class qe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.float32[m+0]=r,this.float32[m+1]=a,this.float32[m+2]=u,this.float32[m+3]=p,e}}qe.prototype.bytesPerElement=16,ht(qe,"StructArrayLayout4f16");class Ee extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=6*e,w=3*e;return this.uint16[y+0]=r,this.uint16[y+1]=a,this.uint16[y+2]=u,this.uint16[y+3]=p,this.float32[w+2]=m,e}}Ee.prototype.bytesPerElement=12,ht(Ee,"StructArrayLayout4ui1f12");class Oe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.uint16[m+0]=r,this.uint16[m+1]=a,this.uint16[m+2]=u,this.uint16[m+3]=p,e}}Oe.prototype.bytesPerElement=8,ht(Oe,"StructArrayLayout4ui8");class He extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,a,u,p,m)}emplace(e,r,a,u,p,m,y){const w=6*e;return this.int16[w+0]=r,this.int16[w+1]=a,this.int16[w+2]=u,this.int16[w+3]=p,this.int16[w+4]=m,this.int16[w+5]=y,e}}He.prototype.bytesPerElement=12,ht(He,"StructArrayLayout6i12");class Ge extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k){const L=this.length;return this.resize(L+1),this.emplace(L,e,r,a,u,p,m,y,w,b,A,I,k)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L){const R=12*e;return this.int16[R+0]=r,this.int16[R+1]=a,this.int16[R+2]=u,this.int16[R+3]=p,this.uint16[R+4]=m,this.uint16[R+5]=y,this.uint16[R+6]=w,this.uint16[R+7]=b,this.int16[R+8]=A,this.int16[R+9]=I,this.int16[R+10]=k,this.int16[R+11]=L,e}}Ge.prototype.bytesPerElement=24,ht(Ge,"StructArrayLayout4i4ui4i24");class Xe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,a,u,p,m)}emplace(e,r,a,u,p,m,y){const w=10*e,b=5*e;return this.int16[w+0]=r,this.int16[w+1]=a,this.int16[w+2]=u,this.float32[b+2]=p,this.float32[b+3]=m,this.float32[b+4]=y,e}}Xe.prototype.bytesPerElement=20,ht(Xe,"StructArrayLayout3i3f20");class gt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint32[1*e+0]=r,e}}gt.prototype.bytesPerElement=4,ht(gt,"StructArrayLayout1ul4");class Et extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L){const R=this.length;return this.resize(R+1),this.emplace(R,e,r,a,u,p,m,y,w,b,A,I,k,L)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=20*e,V=10*e;return this.int16[B+0]=r,this.int16[B+1]=a,this.int16[B+2]=u,this.int16[B+3]=p,this.int16[B+4]=m,this.float32[V+3]=y,this.float32[V+4]=w,this.float32[V+5]=b,this.float32[V+6]=A,this.int16[B+14]=I,this.uint32[V+8]=k,this.uint16[B+18]=L,this.uint16[B+19]=R,e}}Et.prototype.bytesPerElement=40,ht(Et,"StructArrayLayout5i4f1i1ul2ui40");class dt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y){const w=this.length;return this.resize(w+1),this.emplace(w,e,r,a,u,p,m,y)}emplace(e,r,a,u,p,m,y,w){const b=8*e;return this.int16[b+0]=r,this.int16[b+1]=a,this.int16[b+2]=u,this.int16[b+4]=p,this.int16[b+5]=m,this.int16[b+6]=y,this.int16[b+7]=w,e}}dt.prototype.bytesPerElement=16,ht(dt,"StructArrayLayout3i2i2i16");class wt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=4*e,w=8*e;return this.float32[y+0]=r,this.float32[y+1]=a,this.float32[y+2]=u,this.int16[w+6]=p,this.int16[w+7]=m,e}}wt.prototype.bytesPerElement=16,ht(wt,"StructArrayLayout2f1f2i16");class Ut extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=12*e,y=3*e;return this.uint8[m+0]=r,this.uint8[m+1]=a,this.float32[y+1]=u,this.float32[y+2]=p,e}}Ut.prototype.bytesPerElement=12,ht(Ut,"StructArrayLayout2ub2f12");class Ot extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.float32[p+0]=r,this.float32[p+1]=a,this.float32[p+2]=u,e}}Ot.prototype.bytesPerElement=12,ht(Ot,"StructArrayLayout3f12");class mt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.uint16[p+0]=r,this.uint16[p+1]=a,this.uint16[p+2]=u,e}}mt.prototype.bytesPerElement=6,ht(mt,"StructArrayLayout3ui6");class en extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae){const se=this.length;return this.resize(se+1),this.emplace(se,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se){const Se=30*e,be=15*e,Re=60*e;return this.int16[Se+0]=r,this.int16[Se+1]=a,this.int16[Se+2]=u,this.float32[be+2]=p,this.float32[be+3]=m,this.uint16[Se+8]=y,this.uint16[Se+9]=w,this.uint32[be+5]=b,this.uint32[be+6]=A,this.uint32[be+7]=I,this.uint16[Se+16]=k,this.uint16[Se+17]=L,this.uint16[Se+18]=R,this.float32[be+10]=B,this.float32[be+11]=V,this.uint8[Re+48]=K,this.uint8[Re+49]=ie,this.uint8[Re+50]=Y,this.uint32[be+13]=te,this.int16[Se+28]=ae,this.uint8[Re+58]=se,e}}en.prototype.bytesPerElement=60,ht(en,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");class rn extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e){const Je=this.length;return this.resize(Je+1),this.emplace(Je,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e,Je){const Pe=38*e,rt=19*e;return this.int16[Pe+0]=r,this.int16[Pe+1]=a,this.int16[Pe+2]=u,this.float32[rt+2]=p,this.float32[rt+3]=m,this.int16[Pe+8]=y,this.int16[Pe+9]=w,this.int16[Pe+10]=b,this.int16[Pe+11]=A,this.int16[Pe+12]=I,this.int16[Pe+13]=k,this.uint16[Pe+14]=L,this.uint16[Pe+15]=R,this.uint16[Pe+16]=B,this.uint16[Pe+17]=V,this.uint16[Pe+18]=K,this.uint16[Pe+19]=ie,this.uint16[Pe+20]=Y,this.uint16[Pe+21]=te,this.uint16[Pe+22]=ae,this.uint16[Pe+23]=se,this.uint16[Pe+24]=Se,this.uint16[Pe+25]=be,this.uint16[Pe+26]=Re,this.uint16[Pe+27]=We,this.uint16[Pe+28]=Ie,this.uint32[rt+15]=Ne,this.float32[rt+16]=Ue,this.float32[rt+17]=$e,this.float32[rt+18]=Je,e}}rn.prototype.bytesPerElement=76,ht(rn,"StructArrayLayout3i2f6i15ui1ul3f76");class on extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.float32[1*e+0]=r,e}}on.prototype.bytesPerElement=4,ht(on,"StructArrayLayout1f4");class sn extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=5*e;return this.float32[y+0]=r,this.float32[y+1]=a,this.float32[y+2]=u,this.float32[y+3]=p,this.float32[y+4]=m,e}}sn.prototype.bytesPerElement=20,ht(sn,"StructArrayLayout5f20");class wi extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=6*e;return this.uint32[3*e+0]=r,this.uint16[m+2]=a,this.uint16[m+3]=u,this.uint16[m+4]=p,e}}wi.prototype.bytesPerElement=12,ht(wi,"StructArrayLayout1ul3ui12");class si extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.uint16[u+0]=r,this.uint16[u+1]=a,e}}si.prototype.bytesPerElement=4,ht(si,"StructArrayLayout2ui4");class lr extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint16[1*e+0]=r,e}}lr.prototype.bytesPerElement=2,ht(lr,"StructArrayLayout1ui2");class $r extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.float32[u+0]=r,this.float32[u+1]=a,e}}$r.prototype.bytesPerElement=8,ht($r,"StructArrayLayout2f8");class Tn extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}Tn.prototype.size=40;class an extends Et{get(e){return new Tn(this,e)}}ht(an,"CollisionBoxArray");class Xt extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(e){this._structArray.uint8[this._pos1+49]=e}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(e){this._structArray.uint8[this._pos1+50]=e}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(e){this._structArray.uint32[this._pos4+13]=e}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(e){this._structArray.uint8[this._pos1+58]=e}}Xt.prototype.size=60;class Un extends en{get(e){return new Xt(this,e)}}ht(Un,"PlacedSymbolArray");class Ii extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(e){this._structArray.uint32[this._pos4+15]=e}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}Ii.prototype.size=76;class wn extends rn{get(e){return new Ii(this,e)}}ht(wn,"SymbolInstanceArray");class Oi extends on{getoffsetX(e){return this.float32[1*e+0]}}ht(Oi,"GlyphOffsetArray");class Lc extends Ze{getx(e){return this.int16[2*e+0]}gety(e){return this.int16[2*e+1]}}ht(Lc,"SymbolLineVertexArray");class ys extends de{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}ys.prototype.size=12;class wl extends wi{get(e){return new ys(this,e)}}ht(wl,"FeatureIndexArray");class po extends si{geta_centroid_pos0(e){return this.uint16[2*e+0]}geta_centroid_pos1(e){return this.uint16[2*e+1]}}ht(po,"FillExtrusionCentroidArray");const jo=_e([{name:"a_pattern",components:4,type:"Uint16"},{name:"a_pixel_ratio",components:1,type:"Float32"}]),vs=_e([{name:"a_dash",components:4,type:"Uint16"}]);var Rc={exports:{}},bl={exports:{}};bl.exports=function(n,e){var r,a,u,p,m,y,w,b;for(a=n.length-(r=3&n.length),u=e,m=3432918353,y=461845907,b=0;b>>16)*m&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295)<<13|u>>>19))+((5*(u>>>16)&65535)<<16)&4294967295))+((58964+(p>>>16)&65535)<<16);switch(w=0,r){case 3:w^=(255&n.charCodeAt(b+2))<<16;case 2:w^=(255&n.charCodeAt(b+1))<<8;case 1:u^=w=(65535&(w=(w=(65535&(w^=255&n.charCodeAt(b)))*m+(((w>>>16)*m&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295}return u^=n.length,u=2246822507*(65535&(u^=u>>>16))+((2246822507*(u>>>16)&65535)<<16)&4294967295,u=3266489909*(65535&(u^=u>>>13))+((3266489909*(u>>>16)&65535)<<16)&4294967295,(u^=u>>>16)>>>0};var Oh=bl.exports,bx={exports:{}};bx.exports=function(n,e){for(var r,a=n.length,u=e^a,p=0;a>=4;)r=1540483477*(65535&(r=255&n.charCodeAt(p)|(255&n.charCodeAt(++p))<<8|(255&n.charCodeAt(++p))<<16|(255&n.charCodeAt(++p))<<24))+((1540483477*(r>>>16)&65535)<<16),u=1540483477*(65535&u)+((1540483477*(u>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),a-=4,++p;switch(a){case 3:u^=(255&n.charCodeAt(p+2))<<16;case 2:u^=(255&n.charCodeAt(p+1))<<8;case 1:u=1540483477*(65535&(u^=255&n.charCodeAt(p)))+((1540483477*(u>>>16)&65535)<<16)}return u=1540483477*(65535&(u^=u>>>13))+((1540483477*(u>>>16)&65535)<<16),(u^=u>>>15)>>>0};var Ex=Oh,JA=bx.exports;Rc.exports=Ex,Rc.exports.murmur3=Ex,Rc.exports.murmur2=JA;var s_=le(Rc.exports);class of{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,r,a,u){this.ids.push(Tx(e)),this.positions.push(r,a,u)}getPositions(e){const r=Tx(e);let a=0,u=this.ids.length-1;for(;a>1;this.ids[m]>=r?u=m:a=m+1}const p=[];for(;this.ids[a]===r;)p.push({index:this.positions[3*a],start:this.positions[3*a+1],end:this.positions[3*a+2]}),a++;return p}static serialize(e,r){const a=new Float64Array(e.ids),u=new Uint32Array(e.positions);return a_(a,u,0,a.length-1),r&&r.push(a.buffer,u.buffer),{ids:a,positions:u}}static deserialize(e){const r=new of;return r.ids=e.ids,r.positions=e.positions,r.indexed=!0,r}}function Tx(n){const e=+n;return!isNaN(e)&&Number.MIN_SAFE_INTEGER<=e&&e<=Number.MAX_SAFE_INTEGER?e:s_(String(n))}function a_(n,e,r,a){for(;r>1];let p=r-1,m=a+1;for(;;){do p++;while(n[p]u);if(p>=m)break;sf(n,p,m),sf(e,3*p,3*m),sf(e,3*p+1,3*m+1),sf(e,3*p+2,3*m+2)}m-r`u_${u}`),this.type=a}setUniform(e,r,a,u,p){r.set(e,p,u.constantOr(this.value))}getBinding(e,r){return this.type==="color"?new Ax(e):new af(e)}}class Dc{constructor(e,r){this.uniformNames=r.map(a=>`u_${a}`),this.pattern=null,this.pixelRatio=1}setConstantPatternPositions(e){this.pixelRatio=e.pixelRatio||1,this.pattern=e.tl.concat(e.br)}setUniform(e,r,a,u,p){const m=p==="u_pattern"||p==="u_dash"?this.pattern:p==="u_pixel_ratio"?this.pixelRatio:null;m&&r.set(e,p,m)}getBinding(e,r){return r==="u_pattern"||r==="u_dash"?new Sx(e):new af(e)}}class ws{constructor(e,r,a,u){this.expression=e,this.type=a,this.maxValue=0,this.paintVertexAttributes=r.map(p=>({name:`a_${p}`,type:"Float32",components:a==="color"?2:1,offset:0})),this.paintVertexArray=new u}populatePaintArray(e,r,a,u,p,m){const y=this.paintVertexArray.length,w=this.expression.evaluate(new C(0),r,{},p,u,m);this.paintVertexArray.resize(e),this._setPaintValue(y,e,w)}updatePaintArray(e,r,a,u,p){const m=this.expression.evaluate({zoom:0},a,u,void 0,p);this._setPaintValue(e,r,m)}_setPaintValue(e,r,a){if(this.type==="color"){const u=l_(a);for(let p=e;p`u_${y}_t`),this.type=a,this.useIntegerZoom=u,this.zoom=p,this.maxValue=0,this.paintVertexAttributes=r.map(y=>({name:`a_${y}`,type:"Float32",components:a==="color"?4:2,offset:0})),this.paintVertexArray=new m}populatePaintArray(e,r,a,u,p,m){const y=this.expression.evaluate(new C(this.zoom),r,{},p,u,m),w=this.expression.evaluate(new C(this.zoom+1),r,{},p,u,m),b=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(b,e,y,w)}updatePaintArray(e,r,a,u,p){const m=this.expression.evaluate({zoom:this.zoom},a,u,void 0,p),y=this.expression.evaluate({zoom:this.zoom+1},a,u,void 0,p);this._setPaintValue(e,r,m,y)}_setPaintValue(e,r,a,u){if(this.type==="color"){const p=l_(a),m=l_(u);for(let y=e;y!0){this.binders={},this._buffers=[];const u=[];for(const p in e.paint._values){if(!a(p))continue;const m=e.paint.get(p);if(!(m instanceof Z&&ta(m.property.specification)))continue;const y=iC(p,e.type),w=m.value,b=m.property.specification.type,A=!!m.property.useIntegerZoom,I=p==="line-dasharray"||p.endsWith("pattern"),k=p==="line-dasharray"&&e.layout.get("line-cap").value.kind!=="constant";if(w.kind!=="constant"||k)if(w.kind==="source"||k||I){const L=Cx(p,b,"source");this.binders[p]=I?new ca(w,y,b,L,e.id):new ws(w,y,b,L),u.push(`/a_${p}`)}else{const L=Cx(p,b,"composite");this.binders[p]=new fo(w,y,b,A,r,L),u.push(`/z_${p}`)}else this.binders[p]=I?new Dc(w.value,y):new Bh(w.value,y,b),u.push(`/u_${p}`)}this.cacheKey=u.sort().join("")}getMaxValue(e){const r=this.binders[e];return r instanceof ws||r instanceof fo?r.maxValue:0}populatePaintArrays(e,r,a,u,p,m){for(const y in this.binders){const w=this.binders[y];(w instanceof ws||w instanceof fo||w instanceof ca)&&w.populatePaintArray(e,r,a,u,p,m)}}setConstantPatternPositions(e){for(const r in this.binders){const a=this.binders[r];a instanceof Dc&&a.setConstantPatternPositions(e)}}updatePaintArrays(e,r,a,u,p,m){let y=!1;for(const w in e){const b=r.getPositions(w);for(const A of b){const I=a.feature(A.index);for(const k in this.binders){const L=this.binders[k];if((L instanceof ws||L instanceof fo||L instanceof ca)&&L.expression.isStateDependent===!0){const R=u.paint.get(k);L.expression=R.value,L.updatePaintArray(A.start,A.end,I,e[w],p,m),y=!0}}}}return y}defines(){const e=[];for(const r in this.binders){const a=this.binders[r];(a instanceof Bh||a instanceof Dc)&&e.push(...a.uniformNames.map(u=>`#define HAS_UNIFORM_${u}`))}return e}getBinderAttributes(){const e=[];for(const r in this.binders){const a=this.binders[r];if(a instanceof ws||a instanceof fo||a instanceof ca)for(let u=0;u!0){this.programConfigurations={};for(const u of e)this.programConfigurations[u.id]=new ua(u,r,a);this.needsUpload=!1,this._featureMap=new of,this._bufferOffset=0}populatePaintArrays(e,r,a,u,p,m,y){for(const w in this.programConfigurations)this.programConfigurations[w].populatePaintArrays(e,r,u,p,m,y);r.id!==void 0&&this._featureMap.add(r.id,a,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,r,a,u,p){for(const m of a)this.needsUpload=this.programConfigurations[m.id].updatePaintArrays(e,this._featureMap,r,m,u,p)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(e);this.needsUpload=!1}}destroy(){for(const e in this.programConfigurations)this.programConfigurations[e].destroy()}}const nC={"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-pattern":["pattern","pixel_ratio"],"fill-pattern":["pattern","pixel_ratio"],"fill-extrusion-pattern":["pattern","pixel_ratio"],"line-dasharray":["dash"]};function iC(n,e){return nC[n]||[n.replace(`${e}-`,"").replace(/-/g,"_")]}const rC={"line-pattern":{source:Ee,composite:Ee},"fill-pattern":{source:Ee,composite:Ee},"fill-extrusion-pattern":{source:Ee,composite:Ee},"line-dasharray":{source:Oe,composite:Oe}},oC={color:{source:$r,composite:qe},number:{source:on,composite:$r}};function Cx(n,e,r){const a=rC[n];return a&&a[r]||oC[e][r]}ht(Bh,"ConstantBinder"),ht(Dc,"PatternConstantBinder"),ht(ws,"SourceExpressionBinder"),ht(ca,"PatternCompositeBinder"),ht(fo,"CompositeExpressionBinder"),ht(ua,"ProgramConfiguration",{omit:["_buffers"]}),ht(El,"ProgramConfigurationSet");const Ix="-transition";class mo extends Ka{constructor(e,r){if(super(),this.id=e.id,this.type=e.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,e.type!=="custom"&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!=="background"&&e.type!=="sky"&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new W(r.layout)),r.paint)){this._transitionablePaint=new D(r.paint);for(const a in e.paint)this.setPaintProperty(a,e.paint[a],{validate:!1});for(const a in e.layout)this.setLayoutProperty(a,e.layout[a],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new H(r.paint)}}getLayoutProperty(e){return e==="visibility"?this.visibility:this._unevaluatedLayout.getValue(e)}setLayoutProperty(e,r,a={}){r!=null&&this._validate(t_,`layers.${this.id}.layout.${e}`,e,r,a)||(e!=="visibility"?this._unevaluatedLayout.setValue(e,r):this.visibility=r)}getPaintProperty(e){return yn(e,Ix)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,r,a={}){if(r!=null&&this._validate(e_,`layers.${this.id}.paint.${e}`,e,r,a))return!1;if(yn(e,Ix))return this._transitionablePaint.setTransition(e.slice(0,-11),r||void 0),!1;{const u=this._transitionablePaint._values[e],p=u.value.isDataDriven(),m=u.value;this._transitionablePaint.setValue(e,r),this._handleSpecialPaintPropertyUpdate(e);const y=this._transitionablePaint._values[e].value,w=y.isDataDriven(),b=yn(e,"pattern")||e==="line-dasharray";return w||p||b||this._handleOverridablePaintPropertyUpdate(e,m,y)}}_handleSpecialPaintPropertyUpdate(e){}getProgramIds(){return null}getProgramConfiguration(e){return null}_handleOverridablePaintPropertyUpdate(e,r,a){return!1}isHidden(e){return!!(this.minzoom&&e=this.maxzoom)||this.visibility==="none"}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(e,r){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,r)}serialize(){const 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&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(e.layout=e.layout||{},e.layout.visibility=this.visibility),Ro(e,(r,a)=>!(r===void 0||a==="layout"&&!Object.keys(r).length||a==="paint"&&!Object.keys(r).length))}_validate(e,r,a,u,p={}){return(!p||p.validate!==!1)&&ef(this,e.call(Qp,{key:r,layerType:this.type,objectKey:a,value:u,styleSpec:Le,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const e in this.paint._values){const r=this.paint.get(e);if(r instanceof Z&&ta(r.property.specification)&&(r.value.kind==="source"||r.value.kind==="composite")&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=Mc(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const sC=_e([{name:"a_pos",components:2,type:"Int16"}],4),aC=_e([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);class jn{constructor(e=[]){this.segments=e}prepareSegment(e,r,a,u){let p=this.segments[this.segments.length-1];return e>jn.MAX_VERTEX_ARRAY_LENGTH&&vn(`Max vertices per segment is ${jn.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}`),(!p||p.vertexLength+e>jn.MAX_VERTEX_ARRAY_LENGTH||p.sortKey!==u)&&(p={vertexOffset:r.length,primitiveOffset:a.length,vertexLength:0,primitiveLength:0},u!==void 0&&(p.sortKey=u),this.segments.push(p)),p}get(){return this.segments}destroy(){for(const e of this.segments)for(const r in e.vaos)e.vaos[r].destroy()}static simpleSegment(e,r,a,u){return new jn([{vertexOffset:e,primitiveOffset:r,vertexLength:a,primitiveLength:u,vaos:{},sortKey:0}])}}jn.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,ht(jn,"SegmentVector");var vt=8192;class ha{constructor(e,r){e&&(r?this.setSouthWest(e).setNorthEast(r):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 ln?new ln(e.lng,e.lat):ln.convert(e),this}setSouthWest(e){return this._sw=e instanceof ln?new ln(e.lng,e.lat):ln.convert(e),this}extend(e){const r=this._sw,a=this._ne;let u,p;if(e instanceof ln)u=e,p=e;else{if(!(e instanceof ha))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(ha.convert(e)):this.extend(ln.convert(e)):typeof e=="object"&&e!==null&&e.hasOwnProperty("lat")&&(e.hasOwnProperty("lon")||e.hasOwnProperty("lng"))?this.extend(ln.convert(e)):this;if(u=e._sw,p=e._ne,!u||!p)return this}return r||a?(r.lng=Math.min(u.lng,r.lng),r.lat=Math.min(u.lat,r.lat),a.lng=Math.max(p.lng,a.lng),a.lat=Math.max(p.lat,a.lat)):(this._sw=new ln(u.lng,u.lat),this._ne=new ln(p.lng,p.lat)),this}getCenter(){return new ln((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 ln(this.getWest(),this.getNorth())}getSouthEast(){return new ln(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){const{lng:r,lat:a}=ln.convert(e);let u=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(u=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=a&&a<=this._ne.lat&&u}static convert(e){return!e||e instanceof ha?e:new ha(e)}}var lf=1e-6,cr=typeof Float32Array<"u"?Float32Array:Array;function Mx(){var n=new cr(9);return cr!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function kx(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=r[0],L=r[1],R=r[2],B=r[3],V=r[4],K=r[5],ie=r[6],Y=r[7],te=r[8];return n[0]=k*a+L*m+R*b,n[1]=k*u+L*y+R*A,n[2]=k*p+L*w+R*I,n[3]=B*a+V*m+K*b,n[4]=B*u+V*y+K*A,n[5]=B*p+V*w+K*I,n[6]=ie*a+Y*m+te*b,n[7]=ie*u+Y*y+te*A,n[8]=ie*p+Y*w+te*I,n}function go(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function c_(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=e[4],y=e[5],w=e[6],b=e[7],A=e[8],I=e[9],k=e[10],L=e[11],R=e[12],B=e[13],V=e[14],K=e[15],ie=r*y-a*m,Y=r*w-u*m,te=r*b-p*m,ae=a*w-u*y,se=a*b-p*y,Se=u*b-p*w,be=A*B-I*R,Re=A*V-k*R,We=A*K-L*R,Ie=I*V-k*B,Ne=I*K-L*B,Ue=k*K-L*V,$e=ie*Ue-Y*Ne+te*Ie+ae*We-se*Re+Se*be;return $e?(n[0]=(y*Ue-w*Ne+b*Ie)*($e=1/$e),n[1]=(u*Ne-a*Ue-p*Ie)*$e,n[2]=(B*Se-V*se+K*ae)*$e,n[3]=(k*se-I*Se-L*ae)*$e,n[4]=(w*We-m*Ue-b*Re)*$e,n[5]=(r*Ue-u*We+p*Re)*$e,n[6]=(V*te-R*Se-K*Y)*$e,n[7]=(A*Se-k*te+L*Y)*$e,n[8]=(m*Ne-y*We+b*be)*$e,n[9]=(a*We-r*Ne-p*be)*$e,n[10]=(R*se-B*te+K*ie)*$e,n[11]=(I*te-A*se-L*ie)*$e,n[12]=(y*Re-m*Ie-w*be)*$e,n[13]=(r*Ie-a*Re+u*be)*$e,n[14]=(B*Y-R*ae-V*ie)*$e,n[15]=(A*ae-I*Y+k*ie)*$e,n):null}function Tl(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=e[9],L=e[10],R=e[11],B=e[12],V=e[13],K=e[14],ie=e[15],Y=r[0],te=r[1],ae=r[2],se=r[3];return n[0]=Y*a+te*y+ae*I+se*B,n[1]=Y*u+te*w+ae*k+se*V,n[2]=Y*p+te*b+ae*L+se*K,n[3]=Y*m+te*A+ae*R+se*ie,n[4]=(Y=r[4])*a+(te=r[5])*y+(ae=r[6])*I+(se=r[7])*B,n[5]=Y*u+te*w+ae*k+se*V,n[6]=Y*p+te*b+ae*L+se*K,n[7]=Y*m+te*A+ae*R+se*ie,n[8]=(Y=r[8])*a+(te=r[9])*y+(ae=r[10])*I+(se=r[11])*B,n[9]=Y*u+te*w+ae*k+se*V,n[10]=Y*p+te*b+ae*L+se*K,n[11]=Y*m+te*A+ae*R+se*ie,n[12]=(Y=r[12])*a+(te=r[13])*y+(ae=r[14])*I+(se=r[15])*B,n[13]=Y*u+te*w+ae*k+se*V,n[14]=Y*p+te*b+ae*L+se*K,n[15]=Y*m+te*A+ae*R+se*ie,n}function Fh(n,e,r){var a,u,p,m,y,w,b,A,I,k,L,R,B=r[0],V=r[1],K=r[2];return e===n?(n[12]=e[0]*B+e[4]*V+e[8]*K+e[12],n[13]=e[1]*B+e[5]*V+e[9]*K+e[13],n[14]=e[2]*B+e[6]*V+e[10]*K+e[14],n[15]=e[3]*B+e[7]*V+e[11]*K+e[15]):(u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=e[9],L=e[10],R=e[11],n[0]=a=e[0],n[1]=u,n[2]=p,n[3]=m,n[4]=y,n[5]=w,n[6]=b,n[7]=A,n[8]=I,n[9]=k,n[10]=L,n[11]=R,n[12]=a*B+y*V+I*K+e[12],n[13]=u*B+w*V+k*K+e[13],n[14]=p*B+b*V+L*K+e[14],n[15]=m*B+A*V+R*K+e[15]),n}function Sl(n,e,r){var a=r[0],u=r[1],p=r[2];return n[0]=e[0]*a,n[1]=e[1]*a,n[2]=e[2]*a,n[3]=e[3]*a,n[4]=e[4]*u,n[5]=e[5]*u,n[6]=e[6]*u,n[7]=e[7]*u,n[8]=e[8]*p,n[9]=e[9]*p,n[10]=e[10]*p,n[11]=e[11]*p,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n}function u_(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[4],m=e[5],y=e[6],w=e[7],b=e[8],A=e[9],I=e[10],k=e[11];return e!==n&&(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[4]=p*u+b*a,n[5]=m*u+A*a,n[6]=y*u+I*a,n[7]=w*u+k*a,n[8]=b*u-p*a,n[9]=A*u-m*a,n[10]=I*u-y*a,n[11]=k*u-w*a,n}function cf(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[0],m=e[1],y=e[2],w=e[3],b=e[8],A=e[9],I=e[10],k=e[11];return e!==n&&(n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[0]=p*u-b*a,n[1]=m*u-A*a,n[2]=y*u-I*a,n[3]=w*u-k*a,n[8]=p*a+b*u,n[9]=m*a+A*u,n[10]=y*a+I*u,n[11]=w*a+k*u,n}function Px(n,e){return n[0]=e[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=e[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function zx(n,e,r){var a,u,p,m=r[0],y=r[1],w=r[2],b=Math.hypot(m,y,w);return b0&&(p=1/Math.sqrt(p)),n[0]=e[0]*p,n[1]=e[1]*p,n[2]=e[2]*p,n}function qr(n,e){return n[0]*e[0]+n[1]*e[1]+n[2]*e[2]}function p_(n,e,r){var a=e[0],u=e[1],p=e[2],m=r[0],y=r[1],w=r[2];return n[0]=u*w-p*y,n[1]=p*m-a*w,n[2]=a*y-u*m,n}function On(n,e,r){var a=e[0],u=e[1],p=e[2],m=r[3]*a+r[7]*u+r[11]*p+r[15];return n[0]=(r[0]*a+r[4]*u+r[8]*p+r[12])/(m=m||1),n[1]=(r[1]*a+r[5]*u+r[9]*p+r[13])/m,n[2]=(r[2]*a+r[6]*u+r[10]*p+r[14])/m,n}function Dx(n,e,r){var a=r[0],u=r[1],p=r[2],m=e[0],y=e[1],w=e[2],b=u*w-p*y,A=p*m-a*w,I=a*y-u*m,k=u*I-p*A,L=p*b-a*I,R=a*A-u*b,B=2*r[3];return A*=B,I*=B,L*=2,R*=2,n[0]=m+(b*=B)+(k*=2),n[1]=y+A+L,n[2]=w+I+R,n}var Gh,_o=d_,cC=Rx,uC=Nh;function Ox(n,e,r){return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3]*r,n}function Bx(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=r*r+a*a+u*u+p*p;return m>0&&(m=1/Math.sqrt(m)),n[0]=r*m,n[1]=a*m,n[2]=u*m,n[3]=p*m,n}function Al(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3];return n[0]=r[0]*a+r[4]*u+r[8]*p+r[12]*m,n[1]=r[1]*a+r[5]*u+r[9]*p+r[13]*m,n[2]=r[2]*a+r[6]*u+r[10]*p+r[14]*m,n[3]=r[3]*a+r[7]*u+r[11]*p+r[15]*m,n}function Fx(){var n=new cr(4);return cr!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function Nx(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n}function Ux(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w+m*y,n[1]=u*w+p*y,n[2]=p*w-u*y,n[3]=m*w-a*y,n}function jx(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w-p*y,n[1]=u*w+m*y,n[2]=p*w+a*y,n[3]=m*w-u*y,n}h_(),Gh=new cr(4),cr!=Float32Array&&(Gh[0]=0,Gh[1]=0,Gh[2]=0,Gh[3]=0);var hC=Bx;h_(),Oc(1,0,0),Oc(0,1,0),Fx(),Fx(),Mx();const dC=_e([{type:"Float32",name:"a_globe_pos",components:3},{type:"Float32",name:"a_uv",components:2}]),{members:Vx}=dC,Gx=_e([{name:"a_pos_3",components:3,type:"Int16"}]);var $h=_e([{name:"a_pos",type:"Int16",components:2}]);class f_{constructor(e,r){this.pos=e,this.dir=r}intersectsPlane(e,r,a){const u=qr(r,this.dir);if(Math.abs(u)<1e-6)return!1;const p=((e[0]-this.pos[0])*r[0]+(e[1]-this.pos[1])*r[1]+(e[2]-this.pos[2])*r[2])/u;return a[0]=this.pos[0]+this.dir[0]*p,a[1]=this.pos[1]+this.dir[1]*p,a[2]=this.pos[2]+this.dir[2]*p,!0}closestPointOnSphere(e,r,a){if(function(L,R){var B=L[0],V=L[1],K=L[2],ie=R[0],Y=R[1],te=R[2];return Math.abs(B-ie)<=lf*Math.max(1,Math.abs(B),Math.abs(ie))&&Math.abs(V-Y)<=lf*Math.max(1,Math.abs(V),Math.abs(Y))&&Math.abs(K-te)<=lf*Math.max(1,Math.abs(K),Math.abs(te))}(this.pos,e)||r===0)return a[0]=a[1]=a[2]=0,!1;const[u,p,m]=this.dir,y=this.pos[0]-e[0],w=this.pos[1]-e[1],b=this.pos[2]-e[2],A=u*u+p*p+m*m,I=2*(y*u+w*p+b*m),k=I*I-4*A*(y*y+w*w+b*b-r*r);if(k<0){const L=Math.max(-I/2,0),R=y+u*L,B=w+p*L,V=b+m*L,K=Math.hypot(R,B,V);return a[0]=R*r/K,a[1]=B*r/K,a[2]=V*r/K,!1}{const L=(-I-Math.sqrt(k))/(2*A);if(L<0){const R=Math.hypot(y,w,b);return a[0]=y*r/R,a[1]=w*r/R,a[2]=b*r/R,!1}return a[0]=y+u*L,a[1]=w+p*L,a[2]=b+m*L,!0}}}class m_{constructor(e,r,a,u,p){this.TL=e,this.TR=r,this.BR=a,this.BL=u,this.horizon=p}static fromInvProjectionMatrix(e,r,a){const u=[-1,1,1],p=[1,1,1],m=[1,-1,1],y=[-1,-1,1],w=On(u,u,e),b=On(p,p,e),A=On(m,m,e),I=On(y,y,e);return new m_(w,b,A,I,r/a)}}class g_{constructor(e,r){this.points=e,this.planes=r}static fromInvProjectionMatrix(e,r,a,u){const p=Math.pow(2,a),m=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(w=>{const b=Al([],w,e),A=1/b[3]/r*p;return function(I,k,L){return I[0]=k[0]*L[0],I[1]=k[1]*L[1],I[2]=k[2]*L[2],I[3]=k[3]*L[3],I}(b,b,[A,A,u?1/b[3]:A,A])}),y=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(w=>{const b=Bi([],p_([],_o([],m[w[0]],m[w[1]]),_o([],m[w[2]],m[w[1]]))),A=-qr(b,m[w[1]]);return b.concat(A)});return new g_(m,y)}}class Fi{static fromPoints(e){const r=[1/0,1/0,1/0],a=[-1/0,-1/0,-1/0];for(const u of e)Uh(r,r,u),jh(a,a,u);return new Fi(r,a)}static applyTransform(e,r){const a=e.getCorners();for(let u=0;u=0;if(m===0)return 0;m!==r.length&&(a=!1)}if(a)return 2;for(let u=0;u<3;u++){let p=Number.MAX_VALUE,m=-Number.MAX_VALUE;for(let y=0;ythis.max[u]-this.min[u])return 0}return 1}}const __=5,$x=6,Vo=vt/Math.PI/2,pC=16383,Cl=64,qh=[Cl,32,16],Zr=-Vo,Wr=Vo,fC=[new Fi([Zr,Zr,Zr],[Wr,Wr,Wr]),new Fi([Zr,Zr,Zr],[0,0,Wr]),new Fi([0,Zr,Zr],[Wr,0,Wr]),new Fi([Zr,0,Zr],[0,Wr,Wr]),new Fi([0,0,Zr],[Wr,Wr,Wr])];function uf(n){return n*Vo/Hh}function qx(n,e,r,a=!0){const u=Sr([],n._camera.position,n.worldSize),p=[e,r,1,1];Al(p,p,n.pixelMatrixInverse),Ox(p,p,1/p[3]);const m=Bi([],_o([],p,u)),y=n.globeMatrix,w=[y[12],y[13],y[14]],b=_o([],w,u),A=Nh(b),I=Bi([],b),k=n.worldSize/(2*Math.PI),L=qr(I,m),R=Math.asin(k/A);if(R1?null:function(a,u,p,m){const y=Math.sin(p);return a*(Math.sin((1-m)*p)/y)+u*(Math.sin(m*p)/y)}(n.a[e],n.b[e],n.angle,Ke(r,0,1))+n.center[e]}function Go(n){if(n.z<=1)return fC[n.z+2*n.y+n.x];const e=v_(hf(n));return Fi.fromPoints(e)}function Il(n,e,r){return Sr(n,n,1-r),Vh(n,n,e,r)}function Zx(n,e){const r=Nc(e.zoom);if(r===0)return Go(n);const a=hf(n),u=v_(a),p=$o(a.getWest())*e.worldSize,m=$o(a.getEast())*e.worldSize,y=qo(a.getNorth())*e.worldSize,w=qo(a.getSouth())*e.worldSize,b=[p,y,0],A=[m,y,0],I=[p,w,0],k=[m,w,0],L=c_([],e.globeMatrix);return On(b,b,L),On(A,A,L),On(I,I,L),On(k,k,L),u[0]=Il(u[0],I,r),u[1]=Il(u[1],k,r),u[2]=Il(u[2],A,r),u[3]=Il(u[3],b,r),Fi.fromPoints(u)}function Wx(n,e,r){for(const a of n)On(a,a,e),Sr(a,a,r)}function gC(n,e,r){const a=e/n.worldSize,u=n.globeMatrix;if(r.z<=1){const be=Go(r).getCorners();return Wx(be,u,a),Fi.fromPoints(be)}const p=hf(r),m=v_(p);Wx(m,u,a);const y=Number.MAX_VALUE,w=[-y,-y,-y],b=[y,y,y];if(p.contains(n.center)){for(const We of m)Uh(b,b,We),jh(w,w,We);w[2]=0;const be=n.point,Re=[be.x*a,be.y*a,0];return Uh(b,b,Re),jh(w,w,Re),new Fi(b,w)}const A=[u[12]*a,u[13]*a,u[14]*a],I=p.getCenter(),k=Ke(n.center.lat,-Ei,Ei),L=Ke(I.lat,-Ei,Ei),R=$o(n.center.lng),B=qo(k);let V=R-$o(I.lng);const K=B-qo(L);V>.5?V-=1:V<-.5&&(V+=1);let ie=0;Math.abs(V)>Math.abs(K)?ie=V>=0?1:3:(ie=K>=0?0:2,Vh(A,A,[u[4]*a,u[5]*a,u[6]*a],-Math.sin(St(K>=0?p.getSouth():p.getNorth()))*Vo));const Y=m[ie],te=m[(ie+1)%4],ae=new mC(Y,te,A),se=[y_(ae,0)||Y[0],y_(ae,1)||Y[1],y_(ae,2)||Y[2]],Se=Nc(n.zoom);if(Se>0){const be=function({x:We,y:Ie,z:Ne},Ue,$e,Je,Pe){const rt=1/(1<.5?_t=-1:Ct<-.5&&(_t=1),pt=((pt+_t)*Ue-(Je*=Ue))*$e+Je,ot=((ot+_t)*Ue-Je)*$e+Je,At=(At*Ue-(Pe*=Ue))*$e+Pe,Qe=(Qe*Ue-Pe)*$e+Pe,[[pt,Qe,0],[ot,Qe,0],[ot,At,0],[pt,At,0]]}(r,e,n._pixelsPerMercatorPixel,R,B);for(let We=0;WeMath.PI/2*1.01}const Yx=St(85),_C=Math.cos(Yx),yC=Math.sin(Yx),Hh=63710088e-1,Jx=2*Math.PI*Hh;class da{constructor(e,r){if(isNaN(e)||isNaN(r))throw new Error(`Invalid LngLat object: (${e}, ${r})`);if(this.lng=+e,this.lat=+r,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new da(xt(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){const r=Math.PI/180,a=this.lat*r,u=e.lat*r,p=Math.sin(a)*Math.sin(u)+Math.cos(a)*Math.cos(u)*Math.cos((e.lng-this.lng)*r);return Hh*Math.acos(Math.min(p,1))}toBounds(e=0){const r=360*e/40075017,a=r/Math.cos(Math.PI/180*this.lat);return new ha(new da(this.lng-a,this.lat-r),new da(this.lng+a,this.lat+r))}toEcef(e){const r=uf(e);return Fc(this.lat,this.lng,Vo+r)}static convert(e){if(e instanceof da)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new da(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e=="object"&&e!==null)return new da(Number("lng"in e?e.lng:e.lon),Number(e.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}var ln=da;function b_(n){return Jx*Math.cos(n*Math.PI/180)}function $o(n){return(180+n)/360}function qo(n){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n*Math.PI/360)))/360}function yo(n,e){return n/b_(e)}function Ar(n){return 360*n-180}function bi(n){return 360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90}function Qx(n,e){return n*b_(bi(e))}const Ei=85.051129;function e1(n){return 1/Math.cos(n*Math.PI/180)}class Uc{constructor(e,r,a=0){this.x=+e,this.y=+r,this.z=+a}static fromLngLat(e,r=0){const a=ln.convert(e);return new Uc($o(a.lng),qo(a.lat),yo(r,a.lat))}toLngLat(){return new ln(Ar(this.x),bi(this.y))}toAltitude(){return Qx(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Jx*e1(bi(this.y))}}function E_(n,e,r,a,u,p,m,y,w){const b=(e+a)/2,A=(r+u)/2,I=new Ve(b,A);y(I),function(k,L,R,B,V,K){const ie=R-V,Y=B-K;return Math.abs((B-L)*ie-(R-k)*Y)/Math.hypot(ie,Y)}(I.x,I.y,p.x,p.y,m.x,m.y)>=w?(E_(n,e,r,b,A,p,I,y,w),E_(n,b,A,a,u,I,m,y,w)):n.push(m)}function t1(n,e,r){let a=n[0],u=a.x,p=a.y;e(a);const m=[a];for(let y=1;yn.x+1||an.y+1)&&vn("Geometry exceeds allowed extent, reduce your vector tile buffer size"),n}function Es(n,e,r){const a=n.loadGeometry(),u=n.extent,p=vt/u;if(e&&r&&r.projection.isReprojectedInTileSpace){const m=1<{const L=Ar((e.x+k.x/u)/m),R=bi((e.y+k.y/u)/m),B=A.project(L,R);k.x=(B.x*y-w)*u,k.y=(B.y*y-b)*u};for(let k=0;k=u||R.y<0||R.y>=u||(I(R),L.push(R));a[k]=L}}for(const m of a)for(const y of m)xC(y,p);return a}function Ml(n,e){return{type:n.type,id:n.id,properties:n.properties,geometry:e?Es(n):[]}}function pf(n,e,r,a,u){n.emplaceBack(2*e+(a+1)/2,2*r+(u+1)/2)}function ff(n,e,r){n.emplaceBack(e.x,e.y,e.z,r[0]*16384,r[1]*16384,r[2]*16384)}class A_{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.projection=e.projection,this.layoutVertexArray=new Ze,this.indexArray=new mt,this.segments=new jn,this.programConfigurations=new El(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,a,u){const p=this.layers[0],m=[];let y=null;p.type==="circle"&&(y=p.layout.get("circle-sort-key"));for(const{feature:b,id:A,index:I,sourceLayerIndex:k}of e){const L=this.layers[0]._featureFilter.needGeometry,R=Ml(b,L);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),R,a))continue;const B=y?y.evaluate(R,{},a):void 0,V={id:A,properties:b.properties,type:b.type,sourceLayerIndex:k,index:I,geometry:L?R.geometry:Es(b,a,u),patterns:{},sortKey:B};m.push(V)}y&&m.sort((b,A)=>b.sortKey-A.sortKey);let w=null;u.projection.name==="globe"&&(this.globeExtVertexArray=new He,w=u.projection);for(const b of m){const{geometry:A,index:I,sourceLayerIndex:k}=b,L=e[I].feature;this.addFeature(b,A,I,r.availableImages,a,w),r.featureIndex.insert(L,A,I,k,this.index)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,sC.members),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,aC.members))),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}addFeature(e,r,a,u,p,m){for(const y of r)for(const w of y){const b=w.x,A=w.y;if(b<0||b>=vt||A<0||A>=vt)continue;if(m){const L=m.projectTilePoint(b,A,p),R=m.upVector(p,b,A),B=this.globeExtVertexArray;ff(B,L,R),ff(B,L,R),ff(B,L,R),ff(B,L,R)}const I=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,e.sortKey),k=I.vertexLength;pf(this.layoutVertexArray,b,A,-1,-1),pf(this.layoutVertexArray,b,A,1,-1),pf(this.layoutVertexArray,b,A,1,1),pf(this.layoutVertexArray,b,A,-1,1),this.indexArray.emplaceBack(k,k+1,k+2),this.indexArray.emplaceBack(k,k+2,k+3),I.vertexLength+=4,I.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{},u,p)}}function i1(n,e){for(let r=0;r1){if(C_(n,e))return!0;for(let a=0;a1?r:r.sub(e)._mult(u)._add(e))}function s1(n,e){let r,a,u,p=!1;for(let m=0;me.y!=u.y>e.y&&e.x<(u.x-a.x)*(e.y-a.y)/(u.y-a.y)+a.x&&(p=!p)}return p}function kl(n,e){let r=!1;for(let a=0,u=n.length-1;ae.y!=m.y>e.y&&e.x<(m.x-p.x)*(e.y-p.y)/(m.y-p.y)+p.x&&(r=!r)}return r}function a1(n,e,r,a,u){for(const m of n)if(e<=m.x&&r<=m.y&&a>=m.x&&u>=m.y)return!0;const p=[new Ve(e,r),new Ve(e,u),new Ve(a,u),new Ve(a,r)];if(n.length>2){for(const m of p)if(kl(n,m))return!0}for(let m=0;mu.x&&e.x>u.x||n.yu.y&&e.y>u.y)return!1;const p=nr(n,e,r[0]);return p!==nr(n,e,r[1])||p!==nr(n,e,r[2])||p!==nr(n,e,r[3])}function jc(n,e,r){const a=e.paint.get(n).value;return a.kind==="constant"?a.value:r.programConfigurations.get(e.id).getMaxValue(n)}function mf(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function l1(n,e,r,a,u){if(!e[0]&&!e[1])return n;const p=Ve.convert(e)._mult(u);r==="viewport"&&p._rotate(-a);const m=[];for(let y=0;y0){const Y=r.projection.upVector(b,L.x,L.y);B.x+=Y[0]*A*R,B.y+=Y[1]*A*R,B.z+=Y[2]*A*R}const V=p?L:CC(B.x,B.y,B.z,a),K=p?n.tilespaceRays.map(Y=>MC(Y,R)):n.queryGeometry.screenGeometry,ie=Al([],[B.x,B.y,B.z,1],a);if(!m&&p?w*=ie[3]/r.cameraToCenterDistance:m&&!p&&(w*=r.cameraToCenterDistance/ie[3]),p){const Y=bi((k.y/vt+b.y)/(1<n.width||u.height>n.height||r.x>n.width-u.width||r.y>n.height-u.height)throw new RangeError("out of range source coordinates for image copy");if(u.width>e.width||u.height>e.height||a.x>e.width-u.width||a.y>e.height-u.height)throw new RangeError("out of range destination coordinates for image copy");const m=n.data,y=e.data;for(let w=0;w{e[n.evaluationKey]=w;const b=n.expression.evaluate(e);u.data[m+y+0]=Math.floor(255*b.r/b.a),u.data[m+y+1]=Math.floor(255*b.g/b.a),u.data[m+y+2]=Math.floor(255*b.b/b.a),u.data[m+y+3]=Math.floor(255*b.a)};if(n.clips)for(let m=0,y=0;m80*r){a=p=n[0],u=m=n[1];for(var R=r;Rp&&(p=y),w>m&&(m=w);b=(b=Math.max(p-a,m-u))!==0?32767/b:0}return Xh(k,L,r,a,u,b,0),L}function m1(n,e,r,a,u){var p,m;if(u===R_(n,e,r,a)>0)for(p=e;p=e;p-=a)m=y1(p,n[p],n[p+1],m);return m&&_f(m,m.next)&&(Yh(m),m=m.next),m}function Pl(n,e){if(!n)return n;e||(e=n);var r,a=n;do if(r=!1,a.steiner||!_f(a,a.next)&&Vn(a.prev,a,a.next)!==0)a=a.next;else{if(Yh(a),(a=e=a.prev)===a.next)break;r=!0}while(r||a!==e);return e}function Xh(n,e,r,a,u,p,m){if(n){!m&&p&&function(A,I,k,L){var R=A;do R.z===0&&(R.z=z_(R.x,R.y,I,k,L)),R.prevZ=R.prev,R.nextZ=R.next,R=R.next;while(R!==A);R.prevZ.nextZ=null,R.prevZ=null,function(B){var V,K,ie,Y,te,ae,se,Se,be=1;do{for(K=B,B=null,te=null,ae=0;K;){for(ae++,ie=K,se=0,V=0;V0||Se>0&&ie;)se!==0&&(Se===0||!ie||K.z<=ie.z)?(Y=K,K=K.nextZ,se--):(Y=ie,ie=ie.nextZ,Se--),te?te.nextZ=Y:B=Y,Y.prevZ=te,te=Y;K=ie}te.nextZ=null,be*=2}while(ae>1)}(R)}(n,a,u,p);for(var y,w,b=n;n.prev!==n.next;)if(y=n.prev,w=n.next,p?DC(n,a,u,p):RC(n))e.push(y.i/r|0),e.push(n.i/r|0),e.push(w.i/r|0),Yh(n),n=w.next,b=w.next;else if((n=w)===b){m?m===1?Xh(n=OC(Pl(n),e,r),e,r,a,u,p,2):m===2&&BC(n,e,r,a,u,p):Xh(Pl(n),e,r,a,u,p,1);break}}}function RC(n){var e=n.prev,r=n,a=n.next;if(Vn(e,r,a)>=0)return!1;for(var u=e.x,p=r.x,m=a.x,y=e.y,w=r.y,b=a.y,A=up?u>m?u:m:p>m?p:m,L=y>w?y>b?y:b:w>b?w:b,R=a.next;R!==e;){if(R.x>=A&&R.x<=k&&R.y>=I&&R.y<=L&&Vc(u,y,p,w,m,b,R.x,R.y)&&Vn(R.prev,R,R.next)>=0)return!1;R=R.next}return!0}function DC(n,e,r,a){var u=n.prev,p=n,m=n.next;if(Vn(u,p,m)>=0)return!1;for(var y=u.x,w=p.x,b=m.x,A=u.y,I=p.y,k=m.y,L=yw?y>b?y:b:w>b?w:b,V=A>I?A>k?A:k:I>k?I:k,K=z_(L,R,e,r,a),ie=z_(B,V,e,r,a),Y=n.prevZ,te=n.nextZ;Y&&Y.z>=K&&te&&te.z<=ie;){if(Y.x>=L&&Y.x<=B&&Y.y>=R&&Y.y<=V&&Y!==u&&Y!==m&&Vc(y,A,w,I,b,k,Y.x,Y.y)&&Vn(Y.prev,Y,Y.next)>=0||(Y=Y.prevZ,te.x>=L&&te.x<=B&&te.y>=R&&te.y<=V&&te!==u&&te!==m&&Vc(y,A,w,I,b,k,te.x,te.y)&&Vn(te.prev,te,te.next)>=0))return!1;te=te.nextZ}for(;Y&&Y.z>=K;){if(Y.x>=L&&Y.x<=B&&Y.y>=R&&Y.y<=V&&Y!==u&&Y!==m&&Vc(y,A,w,I,b,k,Y.x,Y.y)&&Vn(Y.prev,Y,Y.next)>=0)return!1;Y=Y.prevZ}for(;te&&te.z<=ie;){if(te.x>=L&&te.x<=B&&te.y>=R&&te.y<=V&&te!==u&&te!==m&&Vc(y,A,w,I,b,k,te.x,te.y)&&Vn(te.prev,te,te.next)>=0)return!1;te=te.nextZ}return!0}function OC(n,e,r){var a=n;do{var u=a.prev,p=a.next.next;!_f(u,p)&&g1(u,a,a.next,p)&&Kh(u,p)&&Kh(p,u)&&(e.push(u.i/r|0),e.push(a.i/r|0),e.push(p.i/r|0),Yh(a),Yh(a.next),a=n=p),a=a.next}while(a!==n);return Pl(a)}function BC(n,e,r,a,u,p){var m=n;do{for(var y=m.next.next;y!==m.prev;){if(m.i!==y.i&&VC(m,y)){var w=_1(m,y);return m=Pl(m,m.next),w=Pl(w,w.next),Xh(m,e,r,a,u,p,0),void Xh(w,e,r,a,u,p,0)}y=y.next}m=m.next}while(m!==n)}function FC(n,e){return n.x-e.x}function NC(n,e){var r=function(u,p){var m,y=p,w=u.x,b=u.y,A=-1/0;do{if(b<=y.y&&b>=y.next.y&&y.next.y!==y.y){var I=y.x+(b-y.y)*(y.next.x-y.x)/(y.next.y-y.y);if(I<=w&&I>A&&(A=I,m=y.x=y.x&&y.x>=R&&w!==y.x&&Vc(bm.x||y.x===m.x&&UC(m,y)))&&(m=y,V=k)),y=y.next;while(y!==L);return m}(n,e);if(!r)return e;var a=_1(r,n);return Pl(a,a.next),Pl(r,r.next)}function UC(n,e){return Vn(n.prev,n,e.prev)<0&&Vn(e.next,n,n.next)<0}function z_(n,e,r,a,u){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*u|0)|n<<8))|n<<4))|n<<2))|n<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-a)*u|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function jC(n){var e=n,r=n;do(e.x=(n-m)*(p-y)&&(n-m)*(a-y)>=(r-m)*(e-y)&&(r-m)*(p-y)>=(u-m)*(a-y)}function VC(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!function(r,a){var u=r;do{if(u.i!==r.i&&u.next.i!==r.i&&u.i!==a.i&&u.next.i!==a.i&&g1(u,u.next,r,a))return!0;u=u.next}while(u!==r);return!1}(n,e)&&(Kh(n,e)&&Kh(e,n)&&function(r,a){var u=r,p=!1,m=(r.x+a.x)/2,y=(r.y+a.y)/2;do u.y>y!=u.next.y>y&&u.next.y!==u.y&&m<(u.next.x-u.x)*(y-u.y)/(u.next.y-u.y)+u.x&&(p=!p),u=u.next;while(u!==r);return p}(n,e)&&(Vn(n.prev,n,e.prev)||Vn(n,e.prev,e))||_f(n,e)&&Vn(n.prev,n,n.next)>0&&Vn(e.prev,e,e.next)>0)}function Vn(n,e,r){return(e.y-n.y)*(r.x-e.x)-(e.x-n.x)*(r.y-e.y)}function _f(n,e){return n.x===e.x&&n.y===e.y}function g1(n,e,r,a){var u=vf(Vn(n,e,r)),p=vf(Vn(n,e,a)),m=vf(Vn(r,a,n)),y=vf(Vn(r,a,e));return u!==p&&m!==y||!(u!==0||!yf(n,r,e))||!(p!==0||!yf(n,a,e))||!(m!==0||!yf(r,n,a))||!(y!==0||!yf(r,e,a))}function yf(n,e,r){return e.x<=Math.max(n.x,r.x)&&e.x>=Math.min(n.x,r.x)&&e.y<=Math.max(n.y,r.y)&&e.y>=Math.min(n.y,r.y)}function vf(n){return n>0?1:n<0?-1:0}function Kh(n,e){return Vn(n.prev,n,n.next)<0?Vn(n,e,n.next)>=0&&Vn(n,n.prev,e)>=0:Vn(n,e,n.prev)<0||Vn(n,n.next,e)<0}function _1(n,e){var r=new L_(n.i,n.x,n.y),a=new L_(e.i,e.x,e.y),u=n.next,p=e.prev;return n.next=e,e.prev=n,r.next=u,u.prev=r,a.next=r,r.prev=a,p.next=a,a.prev=p,a}function y1(n,e,r,a){var u=new L_(n,e,r);return a?(u.next=a.next,u.prev=a,a.next.prev=u,a.next=u):(u.prev=u,u.next=u),u}function Yh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function L_(n,e,r){this.i=n,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function R_(n,e,r,a){for(var u=0,p=e,m=r-a;p0&&r.holes.push(a+=n[u-1].length)}return r};var D_=le(P_.exports);function GC(n,e,r,a,u){v1(n,e,r||0,a||n.length-1,u||$C)}function v1(n,e,r,a,u){for(;a>r;){if(a-r>600){var p=a-r+1,m=e-r+1,y=Math.log(p),w=.5*Math.exp(2*y/3),b=.5*Math.sqrt(y*w*(p-w)/p)*(m-p/2<0?-1:1);v1(n,e,Math.max(r,Math.floor(e-m*w/p+b)),Math.min(a,Math.floor(e+(p-m)*w/p+b)),u)}var A=n[e],I=r,k=a;for(Jh(n,r,e),u(n[a],A)>0&&Jh(n,r,a);I0;)k--}u(n[r],A)===0?Jh(n,r,k):Jh(n,++k,a),k<=e&&(r=k+1),e<=k&&(a=k-1)}}function Jh(n,e,r){var a=n[e];n[e]=n[r],n[r]=a}function $C(n,e){return ne?1:0}function O_(n,e){const r=n.length;if(r<=1)return[n];const a=[];let u,p;for(let m=0;m1)for(let m=0;mr.id),this.index=e.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Ze,this.indexArray=new mt,this.indexArray2=new si,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.segments2=new jn,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id),this.projection=e.projection}populate(e,r,a,u){this.hasPattern=B_("fill",this.layers,r);const p=this.layers[0].layout.get("fill-sort-key"),m=[];for(const{feature:y,id:w,index:b,sourceLayerIndex:A}of e){const I=this.layers[0]._featureFilter.needGeometry,k=Ml(y,I);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),k,a))continue;const L=p?p.evaluate(k,{},a,r.availableImages):void 0,R={id:w,properties:y.properties,type:y.type,sourceLayerIndex:A,index:b,geometry:I?k.geometry:Es(y,a,u),patterns:{},sortKey:L};m.push(R)}p&&m.sort((y,w)=>y.sortKey-w.sortKey);for(const y of m){const{geometry:w,index:b,sourceLayerIndex:A}=y;if(this.hasPattern){const I=F_("fill",this.layers,y,this.zoom,r);this.patternFeatures.push(I)}else this.addFeature(y,w,b,a,{},r.availableImages);r.featureIndex.insert(e[b].feature,w,b,A,this.index)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}addFeatures(e,r,a,u,p){for(const m of this.patternFeatures)this.addFeature(m,m.geometry,m.index,r,a,u)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,LC),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(e,r,a,u,p,m=[]){for(const y of O_(r,500)){let w=0;for(const R of y)w+=R.length;const b=this.segments.prepareSegment(w,this.layoutVertexArray,this.indexArray),A=b.vertexLength,I=[],k=[];for(const R of y){if(R.length===0)continue;R!==y[0]&&k.push(I.length/2);const B=this.segments2.prepareSegment(R.length,this.layoutVertexArray,this.indexArray2),V=B.vertexLength;this.layoutVertexArray.emplaceBack(R[0].x,R[0].y),this.indexArray2.emplaceBack(V+R.length-1,V),I.push(R[0].x),I.push(R[0].y);for(let K=1;K>3}if(u--,a===1||a===2)p+=n.readSVarint(),m+=n.readSVarint(),a===1&&(e&&y.push(e),e=[]),e.push(new JC(p,m));else{if(a!==7)throw new Error("unknown command "+a);e&&e.push(e[0].clone())}}return e&&y.push(e),y},Gc.prototype.bbox=function(){var n=this._pbf;n.pos=this._geometry;for(var e=n.readVarint()+n.pos,r=1,a=0,u=0,p=0,m=1/0,y=-1/0,w=1/0,b=-1/0;n.pos>3}if(a--,r===1||r===2)(u+=n.readSVarint())y&&(y=u),(p+=n.readSVarint())b&&(b=p);else if(r!==7)throw new Error("unknown command "+r)}return[m,w,y,b]},Gc.prototype.toGeoJSON=function(n,e,r){var a,u,p=this.extent*Math.pow(2,r),m=this.extent*n,y=this.extent*e,w=this.loadGeometry(),b=Gc.types[this.type];function A(L){for(var R=0;R>3;u=m===1?a.readString():m===2?a.readFloat():m===3?a.readDouble():m===4?a.readVarint64():m===5?a.readVarint():m===6?a.readSVarint():m===7?a.readBoolean():null}return u}(r))}b1.prototype.feature=function(n){if(n<0||n>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[n];var e=this._pbf.readVarint()+this._pbf.pos;return new tI(this._pbf,e,this.extent,this._keys,this._values)};var iI=w1;function rI(n,e,r){if(n===3){var a=new iI(r,r.readVarint()+r.pos);a.length&&(e[a.name]=a)}}var N_=wf.VectorTile=function(n,e){this.layers=n.readFields(rI,{},e)},bf=wf.VectorTileFeature=x1;function Ef(n,e,r,a){const u=[],p=a===0?(m,y,w,b,A,I)=>{m.push(new Ve(I,w+(I-y)/(b-y)*(A-w)))}:(m,y,w,b,A,I)=>{m.push(new Ve(y+(I-w)/(A-w)*(b-y),I))};for(const m of n){const y=[];for(const w of m){if(w.length<=2)continue;const b=[];for(let k=0;ke&&p(b,L,R,B,V,e):K>r?ie=e&&p(b,L,R,B,V,e),ie>r&&K<=r&&p(b,L,R,B,V,r)}let A=w[w.length-1];const I=a===0?A.x:A.y;I>=e&&I<=r&&b.push(A),b.length&&(A=b[b.length-1],b[0].x===A.x&&b[0].y===A.y||b.push(b[0]),y.push(b))}y.length&&u.push(y)}return u}wf.VectorTileLayer=w1;const oI=bf.types,sI=Math.pow(2,13);function Qh(n,e,r,a,u,p,m,y){n.emplaceBack((e<<1)+m,(r<<1)+p,(Math.floor(a*sI)<<1)+u,Math.round(y))}function ed(n,e,r){n.emplaceBack(e.x,e.y,e.z,r[0]*16384,r[1]*16384,r[2]*16384)}class E1{constructor(){this.acc=new Ve(0,0),this.polyCount=[]}startRing(e){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new Ve(e.x,e.y),this.max=new Ve(e.x,e.y))}append(e,r){this.currentPolyCount.edges++,this.acc._add(e);const a=this.min,u=this.max;e.xu.x&&(u.x=e.x),e.yu.y&&(u.y=e.y),((e.x===0||e.x===vt)&&e.x===r.x)!=((e.y===0||e.y===vt)&&e.y===r.y)&&this.processBorderOverlap(e,r),r.x<0!=e.x<0&&this.addBorderIntersection(0,Zt(r.y,e.y,(0-r.x)/(e.x-r.x))),r.x>vt!=e.x>vt&&this.addBorderIntersection(1,Zt(r.y,e.y,(vt-r.x)/(e.x-r.x))),r.y<0!=e.y<0&&this.addBorderIntersection(2,Zt(r.x,e.x,(0-r.y)/(e.y-r.y))),r.y>vt!=e.y>vt&&this.addBorderIntersection(3,Zt(r.x,e.x,(vt-r.y)/(e.y-r.y)))}addBorderIntersection(e,r){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const a=this.borders[e];ra[1]&&(a[1]=r)}processBorderOverlap(e,r){if(e.x===r.x){if(e.y===r.y)return;const a=e.x===0?0:1;this.addBorderIntersection(a,r.y),this.addBorderIntersection(a,e.y)}else{const a=e.y===0?2:3;this.addBorderIntersection(a,r.x),this.addBorderIntersection(a,e.x)}}centroid(){const e=this.polyCount.reduce((r,a)=>r+a.edges,0);return e!==0?this.acc.div(e)._round():new Ve(0,0)}span(){return new Ve(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((e,r)=>e+ +(r[0]!==Number.MAX_VALUE),0)}}class td{constructor(e){this.zoom=e.zoom,this.canonical=e.canonical,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=e.projection,this.layoutVertexArray=new Be,this.centroidVertexArray=new po,this.indexArray=new mt,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id),this.enableTerrain=e.enableTerrain}populate(e,r,a,u){this.features=[],this.hasPattern=B_("fill-extrusion",this.layers,r),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(p){const m=Math.exp(Math.PI*(1-p.y/(1<=0;K--){const ie=L[K];(ie.length===0||(R=ie[0]).every(Y=>Y.x<=0)||R.every(Y=>Y.x>=vt)||R.every(Y=>Y.y<=0)||R.every(Y=>Y.y>=vt))&&L.splice(K,1)}var R;let B;if(A)B=k1(L,w,u);else{B=[];for(const K of L)B.push({polygon:K,bounds:w})}const V=k?this.edgeRadius:0;for(const{polygon:K,bounds:ie}of B){let Y=0,te=0;for(const se of K)k&&!se[0].equals(se[se.length-1])&&se.push(se[0]),te+=k?se.length-1:se.length;const ae=this.segments.prepareSegment((k?5:4)*te,this.layoutVertexArray,this.indexArray);if(k){const se=[],Se=[];Y=ae.vertexLength;for(const Re of K){let We,Ie;Re.length&&Re!==K[0]&&Se.push(se.length/2),We=Re[1].sub(Re[0])._perp()._unit();for(let Ne=1;Ne4&&C1(se[se.length-2],se[0],se[1]),Ie=V?aI(se[se.length-2],se[0],se[1],V):0;be=se[1].sub(se[0])._perp()._unit();let Ne=!0;for(let Ue=1,$e=0;Ue0?1:0,Qe=Je.dist(Pe);if($e+Qe>32768&&($e=0),V){Re=rt.sub(Pe)._perp()._unit();let It=S1(Je,Pe,rt,T1(be,Re),V);isNaN(It)&&(It=0);const bt=Pe.sub(Je)._unit();Je=Je.add(bt.mult(Ie))._round(),Pe=Pe.add(bt.mult(-It))._round(),Ie=It,be=Re}const _t=ae.vertexLength,Ct=se.length>4&&C1(Je,Pe,rt);let Ht=I1($e,We,Ne);if(Qh(this.layoutVertexArray,Je.x,Je.y,ot,At,0,0,Ht),Qh(this.layoutVertexArray,Je.x,Je.y,ot,At,0,1,Ht),$e+=Qe,Ht=I1($e,Ct,!Ne),We=Ct,Qh(this.layoutVertexArray,Pe.x,Pe.y,ot,At,0,0,Ht),Qh(this.layoutVertexArray,Pe.x,Pe.y,ot,At,0,1,Ht),ae.vertexLength+=4,this.indexArray.emplaceBack(_t+0,_t+1,_t+2),this.indexArray.emplaceBack(_t+1,_t+3,_t+2),ae.primitiveLength+=2,V){const It=Y+(Ue===1?se.length-2:Ue-2),bt=Ue===1?Y:It+1;if(this.indexArray.emplaceBack(_t+1,It,_t+3),this.indexArray.emplaceBack(It,bt,_t+3),ae.primitiveLength+=2,Se===void 0&&(Se=_t),!A1(rt,se[Ue],ie)){const xn=Ue===se.length-1?Se:ae.vertexLength;this.indexArray.emplaceBack(_t+2,_t+3,xn),this.indexArray.emplaceBack(_t+3,xn+1,xn),this.indexArray.emplaceBack(_t+3,bt,xn+1),ae.primitiveLength+=3}Ne=!Ne}if(A){const It=this.layoutVertexExtArray,bt=b.projectTilePoint(Je.x,Je.y,u),xn=b.projectTilePoint(Pe.x,Pe.y,u),zt=b.upVector(u,Je.x,Je.y),Lt=b.upVector(u,Pe.x,Pe.y);ed(It,bt,zt),ed(It,bt,zt),ed(It,xn,Lt),ed(It,xn,Lt)}}k&&(Y+=se.length-1)}}if(I&&I.polyCount.length>0){if(I.borders){I.vertexArrayOffset=this.centroidVertexArray.length;const K=I.borders,ie=this.featuresOnBorder.push(I)-1;for(let Y=0;Y<4;Y++)K[Y][0]!==Number.MAX_VALUE&&this.borders[Y].push(ie)}this.encodeCentroid(I.borders?void 0:I.centroid(),I)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,p,m,u)}sortBorders(){for(let e=0;e<4;e++)this.borders[e].sort((r,a)=>this.featuresOnBorder[r].borders[e][0]-this.featuresOnBorder[a].borders[e][0])}encodeCentroid(e,r,a=!0){let u,p;if(e)if(e.y!==0){const y=r.span()._mult(this.tileToMeter);u=(Math.max(e.x,1)<<3)+Math.min(7,Math.round(y.x/10)),p=(Math.max(e.y,1)<<3)+Math.min(7,Math.round(y.y/10))}else u=Math.ceil(7*(e.x+450)),p=0;else u=0,p=+a;let m=a?this.centroidVertexArray.length:r.vertexArrayOffset;for(const y of r.polyCount){a&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*y.edges+y.top);for(let w=0;wr[1].x&&e.x>r[1].x||n.yr[1].y&&e.y>r[1].y}function C1(n,e,r){if(n.x<0||n.x>=vt||e.x<0||e.x>=vt||r.x<0||r.x>=vt)return!1;const a=r.sub(e),u=a.perp(),p=n.sub(e);return(a.x*p.x+a.y*p.y)/Math.sqrt((a.x*a.x+a.y*a.y)*(p.x*p.x+p.y*p.y))>-.866&&u.x*p.x+u.y*p.y<0}function I1(n,e,r){const a=e?2|n:-3&n;return r?1|a:-2&a}function M1(){const n=Math.PI/32,e=Math.tan(n),r=Hh;return r*Math.sqrt(1+2*e*e)-r}function k1(n,e,r){const a=1<{for(const be of se)R.push({polygon:be,bounds:Se})},V=Math.ceil(Math.log2(A)),K=Math.ceil(Math.log2(I)),ie=V-K,Y=[];for(let se=0;se0?0:1);for(let se=0;seSe+1?ae.push({polygons:$e,bounds:Pe,depth:Se+1}):B($e,Pe)}if(Je.length){const Pe=[new Ve(be===0?Ue:Re.x,be===1?Ue:Re.y),We];Y.length>Se+1?ae.push({polygons:Je,bounds:Pe,depth:Se+1}):B(Je,Pe)}}return R}(n,e,Math.ceil((p-u)/11.25),Math.ceil((m-y)/11.25),1,(w,b,A)=>{if(w===0)return .5*(b+A);{const I=bi((r.y+b/vt)/a);return(qo(.5*(bi((r.y+A/vt)/a)+I))*a-r.y)*vt}})}ht(td,"FillExtrusionBucket",{omit:["layers","features"]}),ht(E1,"PartMetadata");const lI=new Q({"fill-extrusion-edge-radius":new O(Le["layout_fill-extrusion"]["fill-extrusion-edge-radius"])});var cI={paint:new Q({"fill-extrusion-opacity":new O(Le["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new G(Le["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new O(Le["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new O(Le["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new G(Le["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new G(Le["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new G(Le["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new O(Le["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),"fill-extrusion-ambient-occlusion-intensity":new O(Le["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-intensity"]),"fill-extrusion-ambient-occlusion-radius":new O(Le["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-radius"]),"fill-extrusion-rounded-roof":new O(Le["paint_fill-extrusion"]["fill-extrusion-rounded-roof"])}),layout:lI};function P1(n,e,r){var a=2*Math.PI*6378137/256/Math.pow(2,r);return[n*a-2*Math.PI*6378137/2,e*a-2*Math.PI*6378137/2]}class Tf{constructor(e,r,a){this.z=e,this.x=r,this.y=a,this.key=nd(0,e,e,r,a)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,r){const a=function(p,m,y){var w=P1(256*p,256*(m=Math.pow(2,y)-m-1),y),b=P1(256*(p+1),256*(m+1),y);return w[0]+","+w[1]+","+b[0]+","+b[1]}(this.x,this.y,this.z),u=function(p,m,y){let w,b="";for(let A=p;A>0;A--)w=1<this.canonical.z?new Ni(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Ni(e,this.wrap,e,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(e,r=!0){if(this.overscaledZ===e&&r)return this.key;if(e>this.canonical.z)return nd(this.wrap*+r,e,this.canonical.z,this.canonical.x,this.canonical.y);{const a=this.canonical.z-e;return nd(this.wrap*+r,e,e,this.canonical.x>>a,this.canonical.y>>a)}}isChildOf(e){if(e.wrap!==this.wrap)return!1;const r=this.canonical.z-e.canonical.z;return e.overscaledZ===0||e.overscaledZ>r&&e.canonical.y===this.canonical.y>>r}children(e){if(this.overscaledZ>=e)return[new Ni(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,a=2*this.canonical.x,u=2*this.canonical.y;return[new Ni(r,this.wrap,r,a,u),new Ni(r,this.wrap,r,a+1,u),new Ni(r,this.wrap,r,a,u+1),new Ni(r,this.wrap,r,a+1,u+1)]}isLessThan(e){return this.wrape.wrap)&&(this.overscaledZe.overscaledZ)&&(this.canonical.xe.canonical.x)&&this.canonical.yr.id),this.index=e.index,this.projection=e.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(r=>{this.gradients[r.id]={}}),this.layoutVertexArray=new Ce,this.layoutVertexArray2=new qe,this.indexArray=new mt,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,a,u){this.hasPattern=B_("line",this.layers,r);const p=this.layers[0].layout.get("line-sort-key"),m=[];for(const{feature:A,id:I,index:k,sourceLayerIndex:L}of e){const R=this.layers[0]._featureFilter.needGeometry,B=Ml(A,R);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),B,a))continue;const V=p?p.evaluate(B,{},a):void 0,K={id:I,properties:A.properties,type:A.type,sourceLayerIndex:L,index:k,geometry:R?B.geometry:Es(A,a,u),patterns:{},sortKey:V};m.push(K)}p&&m.sort((A,I)=>A.sortKey-I.sortKey);const{lineAtlas:y,featureIndex:w}=r,b=this.addConstantDashes(y);for(const A of m){const{geometry:I,index:k,sourceLayerIndex:L}=A;if(b&&this.addFeatureDashes(A,y),this.hasPattern){const R=F_("line",this.layers,A,this.zoom,r);this.patternFeatures.push(R)}else this.addFeature(A,I,k,a,y.positions,r.availableImages);w.insert(e[k].feature,I,k,L,this.index)}}addConstantDashes(e){let r=!1;for(const a of this.layers){const u=a.paint.get("line-dasharray").value,p=a.layout.get("line-cap").value;if(u.kind!=="constant"||p.kind!=="constant")r=!0;else{const m=p.value,y=u.value;if(!y)continue;e.addDash(y,m)}}return r}addFeatureDashes(e,r){const a=this.zoom;for(const u of this.layers){const p=u.paint.get("line-dasharray").value,m=u.layout.get("line-cap").value;if(p.kind==="constant"&&m.kind==="constant")continue;let y,w;if(p.kind==="constant"){if(y=p.value,!y)continue}else y=p.evaluate({zoom:a},e);w=m.kind==="constant"?m.value:m.evaluate({zoom:a},e),r.addDash(y,w),e.patterns[u.id]=r.getKey(y,w)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}addFeatures(e,r,a,u,p){for(const m of this.patternFeatures)this.addFeature(m,m.geometry,m.index,r,a,u)}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,pI)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hI),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(e){if(e.properties&&e.properties.hasOwnProperty("mapbox_clip_start")&&e.properties.hasOwnProperty("mapbox_clip_end"))return{start:+e.properties.mapbox_clip_start,end:+e.properties.mapbox_clip_end}}addFeature(e,r,a,u,p,m){const y=this.layers[0].layout,w=y.get("line-join").evaluate(e,{}),b=y.get("line-cap").evaluate(e,{}),A=y.get("line-miter-limit"),I=y.get("line-round-limit");this.lineClips=this.lineFeatureClips(e);for(const k of r)this.addLine(k,e,w,b,A,I);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,p,m,u)}addLine(e,r,a,u,p,m){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let K=0;K=2&&e[w-1].equals(e[w-2]);)w--;let b=0;for(;b0;if(Se&&K>b){const Ie=k.dist(L);if(Ie>2*A){const Ne=k.sub(k.sub(L)._mult(A/Ie)._round());this.updateDistance(L,Ne),this.addCurrentVertex(Ne,B,0,0,I),L=Ne}}const Re=L&&R;let We=Re?a:y?"butt":u;if(Re&&We==="round"&&(aep&&(We="bevel"),We==="bevel"&&(ae>2&&(We="flipbevel"),ae100)ie=V.mult(-1);else{const Ie=ae*B.add(V).mag()/B.sub(V).mag();ie._perp()._mult(Ie*(be?-1:1))}this.addCurrentVertex(k,ie,0,0,I),this.addCurrentVertex(k,ie.mult(-1),0,0,I)}else if(We==="bevel"||We==="fakeround"){const Ie=-Math.sqrt(ae*ae-1),Ne=be?Ie:0,Ue=be?0:Ie;if(L&&this.addCurrentVertex(k,B,Ne,Ue,I),We==="fakeround"){const $e=Math.round(180*se/Math.PI/20);for(let Je=1;Je<$e;Je++){let Pe=Je/$e;if(Pe!==.5){const pt=Pe-.5;Pe+=Pe*pt*(Pe-1)*((1.0904+Y*(Y*(3.55645-1.43519*Y)-3.2452))*pt*pt+(.848013+Y*(.215638*Y-1.06021)))}const rt=V.sub(B)._mult(Pe)._add(B)._unit()._mult(be?-1:1);this.addHalfVertex(k,rt.x,rt.y,!1,be,0,I)}}R&&this.addCurrentVertex(k,V,-Ne,-Ue,I)}else if(We==="butt")this.addCurrentVertex(k,ie,0,0,I);else if(We==="square"){const Ie=L?1:-1;L||this.addCurrentVertex(k,ie,Ie,Ie,I),this.addCurrentVertex(k,ie,0,0,I),L&&this.addCurrentVertex(k,ie,Ie,Ie,I)}else We==="round"&&(L&&(this.addCurrentVertex(k,B,0,0,I),this.addCurrentVertex(k,B,1,1,I,!0)),R&&(this.addCurrentVertex(k,V,-1,-1,I,!0),this.addCurrentVertex(k,V,0,0,I)));if(Se&&K2*A){const Ne=k.add(R.sub(k)._mult(A/Ie)._round());this.updateDistance(k,Ne),this.addCurrentVertex(Ne,V,0,0,I),k=Ne}}}}addCurrentVertex(e,r,a,u,p,m=!1){const y=r.y*u-r.x,w=-r.y-r.x*u;this.addHalfVertex(e,r.x+r.y*a,r.y-r.x*a,m,!1,a,p),this.addHalfVertex(e,y,w,m,!0,-u,p)}addHalfVertex({x:e,y:r},a,u,p,m,y,w){this.layoutVertexArray.emplaceBack((e<<1)+(p?1:0),(r<<1)+(m?1:0),Math.round(63*a)+128,Math.round(63*u)+128,1+(y===0?0:y<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);const b=w.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,b),w.primitiveLength++),m?this.e2=b:this.e1=b}updateScaledDistance(){if(this.lineClips){const e=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=e*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(e,r){this.distance+=e.dist(r),this.updateScaledDistance()}}ht(Sf,"LineBucket",{omit:["layers","patternFeatures"]});const gI=new Q({"line-cap":new G(Le.layout_line["line-cap"]),"line-join":new G(Le.layout_line["line-join"]),"line-miter-limit":new O(Le.layout_line["line-miter-limit"]),"line-round-limit":new O(Le.layout_line["line-round-limit"]),"line-sort-key":new G(Le.layout_line["line-sort-key"])});var D1={paint:new Q({"line-opacity":new G(Le.paint_line["line-opacity"]),"line-color":new G(Le.paint_line["line-color"]),"line-translate":new O(Le.paint_line["line-translate"]),"line-translate-anchor":new O(Le.paint_line["line-translate-anchor"]),"line-width":new G(Le.paint_line["line-width"]),"line-gap-width":new G(Le.paint_line["line-gap-width"]),"line-offset":new G(Le.paint_line["line-offset"]),"line-blur":new G(Le.paint_line["line-blur"]),"line-dasharray":new G(Le.paint_line["line-dasharray"]),"line-pattern":new G(Le.paint_line["line-pattern"]),"line-gradient":new J(Le.paint_line["line-gradient"]),"line-trim-offset":new O(Le.paint_line["line-trim-offset"])}),layout:gI};const O1=new class extends G{possiblyEvaluate(n,e){return e=new C(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,transition:e.transition}),super.possiblyEvaluate(n,e)}evaluate(n,e,r,a){return e=_n({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(n,e,r,a)}}(D1.paint.properties["line-width"].specification);function B1(n,e){return e>0?e+2*n:n}O1.useIntegerZoom=!0;const _I=_e([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),yI=_e([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),vI=_e([{name:"a_projected_pos",components:4,type:"Float32"}],4);_e([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const xI=_e([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),wI=_e([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const F1=_e([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),bI=_e([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);_e([{name:"triangle",components:3,type:"Uint16"}]),_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),_e([{type:"Float32",name:"offsetX"}]),_e([{type:"Int16",name:"x"},{type:"Int16",name:"y"}]);var mi=24;const vo=128;function U_(n,e){const{expression:r}=e;if(r.kind==="constant")return{kind:"constant",layoutSize:r.evaluate(new C(n+1))};if(r.kind==="source")return{kind:"source"};{const{zoomStops:a,interpolationType:u}=r;let p=0;for(;p{a.text=function(u,p,m){const y=p.layout.get("text-transform").evaluate(m,{});return y==="uppercase"?u=u.toLocaleUpperCase():y==="lowercase"&&(u=u.toLocaleLowerCase()),S.applyArabicShaping&&(u=S.applyArabicShaping(u)),u}(a.text,e,r)}),n}const rd={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂","←":"↑","→":"↓"};function SI(n){return n==="︶"||n==="﹈"||n==="︸"||n==="﹄"||n==="﹂"||n==="︾"||n==="︼"||n==="︺"||n==="︘"||n==="﹀"||n==="︐"||n==="︓"||n==="︔"||n==="`"||n===" ̄"||n==="︑"||n==="︒"}function AI(n){return n==="︵"||n==="﹇"||n==="︷"||n==="﹃"||n==="﹁"||n==="︽"||n==="︻"||n==="︹"||n==="︗"||n==="︿"}var N1=pn,U1=function(n,e,r,a,u){var p,m,y=8*u-a-1,w=(1<>1,A=-7,I=r?u-1:0,k=r?-1:1,L=n[e+I];for(I+=k,p=L&(1<<-A)-1,L>>=-A,A+=y;A>0;p=256*p+n[e+I],I+=k,A-=8);for(m=p&(1<<-A)-1,p>>=-A,A+=a;A>0;m=256*m+n[e+I],I+=k,A-=8);if(p===0)p=1-b;else{if(p===w)return m?NaN:1/0*(L?-1:1);m+=Math.pow(2,a),p-=b}return(L?-1:1)*m*Math.pow(2,p-a)},j1=function(n,e,r,a,u,p){var m,y,w,b=8*p-u-1,A=(1<>1,k=u===23?Math.pow(2,-24)-Math.pow(2,-77):0,L=a?0:p-1,R=a?1:-1,B=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(y=isNaN(e)?1:0,m=A):(m=Math.floor(Math.log(e)/Math.LN2),e*(w=Math.pow(2,-m))<1&&(m--,w*=2),(e+=m+I>=1?k/w:k*Math.pow(2,1-I))*w>=2&&(m++,w/=2),m+I>=A?(y=0,m=A):m+I>=1?(y=(e*w-1)*Math.pow(2,u),m+=I):(y=e*Math.pow(2,I-1)*Math.pow(2,u),m=0));u>=8;n[r+L]=255&y,L+=R,y/=256,u-=8);for(m=m<0;n[r+L]=255&m,L+=R,m/=256,b-=8);n[r+L-R]|=128*B};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function pn(n){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(n)?n:new Uint8Array(n||0),this.pos=0,this.type=0,this.length=this.buf.length}pn.Varint=0,pn.Fixed64=1,pn.Bytes=2,pn.Fixed32=5;var j_=4294967296,V1=1/j_,G1=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Ss(n){return n.type===pn.Bytes?n.readVarint()+n.pos:n.pos+1}function Zc(n,e,r){return r?4294967296*e+(n>>>0):4294967296*(e>>>0)+(n>>>0)}function $1(n,e,r){var a=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(a);for(var u=r.pos-1;u>=n;u--)r.buf[u+a]=r.buf[u]}function CI(n,e){for(var r=0;r>>8,n[r+2]=e>>>16,n[r+3]=e>>>24}function q1(n,e){return(n[e]|n[e+1]<<8|n[e+2]<<16)+(n[e+3]<<24)}pn.prototype={destroy:function(){this.buf=null},readFields:function(n,e,r){for(r=r||this.length;this.pos>3,p=this.pos;this.type=7&a,n(u,e,this),this.pos===p&&this.skip(a)}return e},readMessage:function(n,e){return this.readFields(n,e,this.readVarint()+this.pos)},readFixed32:function(){var n=Cf(this.buf,this.pos);return this.pos+=4,n},readSFixed32:function(){var n=q1(this.buf,this.pos);return this.pos+=4,n},readFixed64:function(){var n=Cf(this.buf,this.pos)+Cf(this.buf,this.pos+4)*j_;return this.pos+=8,n},readSFixed64:function(){var n=Cf(this.buf,this.pos)+q1(this.buf,this.pos+4)*j_;return this.pos+=8,n},readFloat:function(){var n=U1(this.buf,this.pos,!0,23,4);return this.pos+=4,n},readDouble:function(){var n=U1(this.buf,this.pos,!0,52,8);return this.pos+=8,n},readVarint:function(n){var e,r,a=this.buf;return e=127&(r=a[this.pos++]),r<128?e:(e|=(127&(r=a[this.pos++]))<<7,r<128?e:(e|=(127&(r=a[this.pos++]))<<14,r<128?e:(e|=(127&(r=a[this.pos++]))<<21,r<128?e:function(u,p,m){var y,w,b=m.buf;if(y=(112&(w=b[m.pos++]))>>4,w<128||(y|=(127&(w=b[m.pos++]))<<3,w<128)||(y|=(127&(w=b[m.pos++]))<<10,w<128)||(y|=(127&(w=b[m.pos++]))<<17,w<128)||(y|=(127&(w=b[m.pos++]))<<24,w<128)||(y|=(1&(w=b[m.pos++]))<<31,w<128))return Zc(u,y,p);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=a[this.pos]))<<28,n,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var n=this.readVarint();return n%2==1?(n+1)/-2:n/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var n=this.readVarint()+this.pos,e=this.pos;return this.pos=n,n-e>=12&&G1?function(r,a,u){return G1.decode(r.subarray(a,u))}(this.buf,e,n):function(r,a,u){for(var p="",m=a;m239?4:A>223?3:A>191?2:1;if(m+k>u)break;k===1?A<128&&(I=A):k===2?(192&(y=r[m+1]))==128&&(I=(31&A)<<6|63&y)<=127&&(I=null):k===3?(w=r[m+2],(192&(y=r[m+1]))==128&&(192&w)==128&&((I=(15&A)<<12|(63&y)<<6|63&w)<=2047||I>=55296&&I<=57343)&&(I=null)):k===4&&(w=r[m+2],b=r[m+3],(192&(y=r[m+1]))==128&&(192&w)==128&&(192&b)==128&&((I=(15&A)<<18|(63&y)<<12|(63&w)<<6|63&b)<=65535||I>=1114112)&&(I=null)),I===null?(I=65533,k=1):I>65535&&(I-=65536,p+=String.fromCharCode(I>>>10&1023|55296),I=56320|1023&I),p+=String.fromCharCode(I),m+=k}return p}(this.buf,e,n)},readBytes:function(){var n=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,n);return this.pos=n,e},readPackedVarint:function(n,e){if(this.type!==pn.Bytes)return n.push(this.readVarint(e));var r=Ss(this);for(n=n||[];this.pos127;);else if(e===pn.Bytes)this.pos=this.readVarint()+this.pos;else if(e===pn.Fixed32)this.pos+=4;else{if(e!==pn.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(n,e){this.writeVarint(n<<3|e)},realloc:function(n){for(var e=this.length||16;e268435455||n<0?function(e,r){var a,u;if(e>=0?(a=e%4294967296|0,u=e/4294967296|0):(u=~(-e/4294967296),4294967295^(a=~(-e%4294967296))?a=a+1|0:(a=0,u=u+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");r.realloc(10),function(p,m,y){y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,y.buf[y.pos]=127&(p>>>=7)}(a,0,r),function(p,m){var y=(7&p)<<4;m.buf[m.pos++]|=y|((p>>>=3)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p)))))}(u,r)}(n,this):(this.realloc(4),this.buf[this.pos++]=127&n|(n>127?128:0),n<=127||(this.buf[this.pos++]=127&(n>>>=7)|(n>127?128:0),n<=127||(this.buf[this.pos++]=127&(n>>>=7)|(n>127?128:0),n<=127||(this.buf[this.pos++]=n>>>7&127))))},writeSVarint:function(n){this.writeVarint(n<0?2*-n-1:2*n)},writeBoolean:function(n){this.writeVarint(!!n)},writeString:function(n){n=String(n),this.realloc(4*n.length),this.pos++;var e=this.pos;this.pos=function(a,u,p){for(var m,y,w=0;w55295&&m<57344){if(!y){m>56319||w+1===u.length?(a[p++]=239,a[p++]=191,a[p++]=189):y=m;continue}if(m<56320){a[p++]=239,a[p++]=191,a[p++]=189,y=m;continue}m=y-55296<<10|m-56320|65536,y=null}else y&&(a[p++]=239,a[p++]=191,a[p++]=189,y=null);m<128?a[p++]=m:(m<2048?a[p++]=m>>6|192:(m<65536?a[p++]=m>>12|224:(a[p++]=m>>18|240,a[p++]=m>>12&63|128),a[p++]=m>>6&63|128),a[p++]=63&m|128)}return p}(this.buf,n,this.pos);var r=this.pos-e;r>=128&&$1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(n){this.realloc(4),j1(this.buf,n,this.pos,!0,23,4),this.pos+=4},writeDouble:function(n){this.realloc(8),j1(this.buf,n,this.pos,!0,52,8),this.pos+=8},writeBytes:function(n){var e=n.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&$1(r,a,this),this.pos=r-1,this.writeVarint(a),this.pos+=a},writeMessage:function(n,e,r){this.writeTag(n,pn.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(n,e){e.length&&this.writeMessage(n,CI,e)},writePackedSVarint:function(n,e){e.length&&this.writeMessage(n,II,e)},writePackedBoolean:function(n,e){e.length&&this.writeMessage(n,PI,e)},writePackedFloat:function(n,e){e.length&&this.writeMessage(n,MI,e)},writePackedDouble:function(n,e){e.length&&this.writeMessage(n,kI,e)},writePackedFixed32:function(n,e){e.length&&this.writeMessage(n,zI,e)},writePackedSFixed32:function(n,e){e.length&&this.writeMessage(n,LI,e)},writePackedFixed64:function(n,e){e.length&&this.writeMessage(n,RI,e)},writePackedSFixed64:function(n,e){e.length&&this.writeMessage(n,DI,e)},writeBytesField:function(n,e){this.writeTag(n,pn.Bytes),this.writeBytes(e)},writeFixed32Field:function(n,e){this.writeTag(n,pn.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(n,e){this.writeTag(n,pn.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(n,e){this.writeTag(n,pn.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(n,e){this.writeTag(n,pn.Fixed64),this.writeSFixed64(e)},writeVarintField:function(n,e){this.writeTag(n,pn.Varint),this.writeVarint(e)},writeSVarintField:function(n,e){this.writeTag(n,pn.Varint),this.writeSVarint(e)},writeStringField:function(n,e){this.writeTag(n,pn.Bytes),this.writeString(e)},writeFloatField:function(n,e){this.writeTag(n,pn.Fixed32),this.writeFloat(e)},writeDoubleField:function(n,e){this.writeTag(n,pn.Fixed64),this.writeDouble(e)},writeBooleanField:function(n,e){this.writeVarintField(n,!!e)}};var If=le(N1);const V_=3;function OI(n,e,r){e.glyphs=[],n===1&&r.readMessage(BI,e)}function BI(n,e,r){if(n===3){const{id:a,bitmap:u,width:p,height:m,left:y,top:w,advance:b}=r.readMessage(FI,{});e.glyphs.push({id:a,bitmap:new Ts({width:p+2*V_,height:m+2*V_},u),metrics:{width:p,height:m,left:y,top:w,advance:b}})}else n===4?e.ascender=r.readSVarint():n===5&&(e.descender=r.readSVarint())}function FI(n,e,r){n===1?e.id=r.readVarint():n===2?e.bitmap=r.readBytes():n===3?e.width=r.readVarint():n===4?e.height=r.readVarint():n===5?e.left=r.readSVarint():n===6?e.top=r.readSVarint():n===7&&(e.advance=r.readVarint())}const Z1=V_;function G_(n){let e=0,r=0;for(const m of n)e+=m.w*m.h,r=Math.max(r,m.w);n.sort((m,y)=>y.h-m.h);const a=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let u=0,p=0;for(const m of n)for(let y=a.length-1;y>=0;y--){const w=a[y];if(!(m.w>w.w||m.h>w.h)){if(m.x=w.x,m.y=w.y,p=Math.max(p,m.y+m.h),u=Math.max(u,m.x+m.w),m.w===w.w&&m.h===w.h){const b=a.pop();ye.hasImage(a)),e.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const a in e.updatedImages)this.patchUpdatedImage(this.iconPositions[a],e.getImage(a),r),this.patchUpdatedImage(this.patternPositions[a],e.getImage(a),r)}patchUpdatedImage(e,r,a){if(!e||!r||e.version===r.version)return;e.version=r.version;const[u,p]=e.tl;a.update(r.data,void 0,{x:u,y:p})}}ht($_,"ImagePosition"),ht(W1,"ImageAtlas");const Cr={horizontal:1,vertical:2,horizontalOnly:3},H1=-17;class od{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(e,r){const a=new od;return a.scale=e||1,a.fontStack=r,a}static forImage(e){const r=new od;return r.imageName=e,r}}class Hc{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(e,r){const a=new Hc;for(let u=0;u=0&&a>=e&&Mf[this.text.charCodeAt(a)];a--)r--;this.text=this.text.substring(e,r),this.sectionIndex=this.sectionIndex.slice(e,r)}substring(e,r){const a=new Hc;return a.text=this.text.substring(e,r),a.sectionIndex=this.sectionIndex.slice(e,r),a.sections=this.sections,a}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,r)=>Math.max(e,this.sections[r].scale),0)}addTextSection(e,r){this.text+=e.text,this.sections.push(od.forText(e.scale,e.fontStack||r));const a=this.sections.length-1;for(let u=0;u=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function q_(n,e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=Hc.fromFeature(n,u);I===Cr.vertical&&B.verticalizePunctuation(k);let V=[];const K=function(se,Se,be,Re,We,Ie){if(!se)return[];const Ne=[],Ue=function(rt,pt,ot,At,Qe,_t){let Ct=0;for(let Ht=0;Ht=0;let Je=0;for(let rt=0;rt0&&bo>un&&(un=bo)}else{const ji=be[Jn.fontStack];if(!ji)continue;ji[In]&&(gn=ji[In]);const li=Se[Jn.fontStack];if(!li)continue;const bo=li.glyphs[In];if(!bo)continue;if(qn=bo.metrics,Zn=In!==8203?mi:0,_t){const tu=li.ascender!==void 0?Math.abs(li.ascender):0,md=li.descender!==void 0?Math.abs(li.descender):0,gd=(tu+md)*Kt;Cn-r/2;){if(m--,m<0)return!1;y-=n[m].dist(p),p=n[m]}y+=n[m].dist(n[m+1]),m++;const w=[];let b=0;for(;ya;)b-=w.shift().angleDelta;if(b>u)return!1;m++,y+=A.dist(I)}return!0}function nw(n){let e=0;for(let r=0;rb){const R=(b-w)/L,B=Zt(I.x,k.x,R),V=Zt(I.y,k.y,R),K=new As(B,V,0,k.angleTo(I),A);return!m||tw(n,K,y,m,e)?K:void 0}w+=L}}function GI(n,e,r,a,u,p,m,y,w){const b=iw(a,p,m),A=rw(a,u),I=A*m,k=n[0].x===0||n[0].x===w||n[0].y===0||n[0].y===w;return e-I=0&&te=0&&ae=0&&k+b<=A){const se=new As(te,ae,0,ie,R);se._round(),a&&!tw(n,se,p,a,u)||L.push(se)}}I+=K}return y||L.length||m||(L=ow(n,I/2,r,a,u,p,m,!0,w)),L}function sw(n,e,r,a,u){const p=[];for(let m=0;m=a&&I.x>=a||(A.x>=a?A=new Ve(a,A.y+(a-A.x)/(I.x-A.x)*(I.y-A.y))._round():I.x>=a&&(I=new Ve(a,A.y+(a-A.x)/(I.x-A.x)*(I.y-A.y))._round()),A.y>=u&&I.y>=u||(A.y>=u?A=new Ve(A.x+(u-A.y)/(I.y-A.y)*(I.x-A.x),u)._round():I.y>=u&&(I=new Ve(A.x+(u-A.y)/(I.y-A.y)*(I.x-A.x),u)._round()),w&&A.equals(w[w.length-1])||(w=[A],p.push(w)),w.push(I)))))}}return p}ht(As,"Anchor");const sd=1e20;function aw(n,e,r,a,u,p,m,y,w){for(let b=e;b-1);w++,p[w]=y,m[w]=b,m[w+1]=sd}for(let y=0,w=0;y{let y=this.entries[u];y||(y=this.entries[u]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let w=y.glyphs[p];if(w!==void 0)return void m(null,{stack:u,id:p,glyph:w});if(w=this._tinySDF(y,u,p),w)return y.glyphs[p]=w,void m(null,{stack:u,id:p,glyph:w});const b=Math.floor(p/256);if(256*b>65535)return void m(new Error("glyphs > 65535 not supported"));if(y.ranges[b])return void m(null,{stack:u,id:p,glyph:w});let A=y.requests[b];A||(A=y.requests[b]=[],Xc.loadGlyphRange(u,b,this.url,this.requestManager,(I,k)=>{if(k){y.ascender=k.ascender,y.descender=k.descender;for(const L in k.glyphs)this._doesCharSupportLocalGlyph(+L)||(y.glyphs[+L]=k.glyphs[+L]);y.ranges[b]=!0}for(const L of A)L(I,k);delete y.requests[b]})),A.push((I,k)=>{I?m(I):k&&m(null,{stack:u,id:p,glyph:k.glyphs[p]||null})})},(u,p)=>{if(u)r(u);else if(p){const m={};for(const{stack:y,id:w,glyph:b}of p)m[y]===void 0&&(m[y]={}),m[y].glyphs===void 0&&(m[y].glyphs={}),m[y].glyphs[w]=b&&{id:b.id,bitmap:b.bitmap.clone(),metrics:b.metrics},m[y].ascender=this.entries[y].ascender,m[y].descender=this.entries[y].descender;r(null,m)}})}_doesCharSupportLocalGlyph(e){return this.localGlyphMode!==W_.none&&(this.localGlyphMode===W_.all?!!this.localFontFamily:!!this.localFontFamily&&(st["CJK Unified Ideographs"](e)||st["Hangul Syllables"](e)||st.Hiragana(e)||st.Katakana(e)||st["CJK Symbols and Punctuation"](e)))}_tinySDF(e,r,a){const u=this.localFontFamily;if(!u||!this._doesCharSupportLocalGlyph(a))return;let p=e.tinySDF;if(!p){let B="400";/bold/i.test(r)?B="900":/medium/i.test(r)?B="500":/light/i.test(r)&&(B="200"),p=e.tinySDF=new Xc.TinySDF({fontFamily:u,fontWeight:B,fontSize:24*xo,buffer:3*xo,radius:8*xo}),p.fontWeight=B}if(this.localGlyphs[p.fontWeight][a])return this.localGlyphs[p.fontWeight][a];const m=String.fromCharCode(a),{data:y,width:w,height:b,glyphWidth:A,glyphHeight:I,glyphLeft:k,glyphTop:L,glyphAdvance:R}=p.draw(m);return this.localGlyphs[p.fontWeight][a]={id:a,bitmap:new Ts({width:w,height:b},y),metrics:{width:A/xo,height:I/xo,left:k/xo,top:L/xo-27,advance:R/xo,localGlyph:!0}}}}Xc.loadGlyphRange=function(n,e,r,a,u){const p=256*e,m=p+255,y=a.transformRequest(a.normalizeGlyphsURL(r).replace("{fontstack}",n).replace("{range}",`${p}-${m}`),ss.Glyphs);Gs(y,(w,b)=>{if(w)u(w);else if(b){const A={},I=function(k){return new If(k).readFields(OI,{})}(b);for(const k of I.glyphs)A[k.id]=k;u(null,{glyphs:A,ascender:I.ascender,descender:I.descender})}})},Xc.TinySDF=class{constructor({fontSize:n=24,buffer:e=3,radius:r=8,cutoff:a=.25,fontFamily:u="sans-serif",fontWeight:p="normal",fontStyle:m="normal"}={}){this.buffer=e,this.cutoff=a,this.radius=r;const y=this.size=n+4*e,w=this._createCanvas(y),b=this.ctx=w.getContext("2d",{willReadFrequently:!0});b.font=`${m} ${p} ${n}px ${u}`,b.textBaseline="alphabetic",b.textAlign="left",b.fillStyle="black",this.gridOuter=new Float64Array(y*y),this.gridInner=new Float64Array(y*y),this.f=new Float64Array(y),this.z=new Float64Array(y+1),this.v=new Uint16Array(y)}_createCanvas(n){const e=document.createElement("canvas");return e.width=e.height=n,e}draw(n){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:a,actualBoundingBoxLeft:u,actualBoundingBoxRight:p}=this.ctx.measureText(n),m=Math.ceil(r),y=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(p-u))),w=Math.min(this.size-this.buffer,m+Math.ceil(a)),b=y+2*this.buffer,A=w+2*this.buffer,I=Math.max(b*A,0),k=new Uint8ClampedArray(I),L={data:k,width:b,height:A,glyphWidth:y,glyphHeight:w,glyphTop:m,glyphLeft:0,glyphAdvance:e};if(y===0||w===0)return L;const{ctx:R,buffer:B,gridInner:V,gridOuter:K}=this;R.clearRect(B,B,y,w),R.fillText(n,B,B+m);const ie=R.getImageData(B,B,y,w);K.fill(sd,0,I),V.fill(0,0,I);for(let Y=0;Y0?Se*Se:0,V[se]=Se<0?Se*Se:0}}aw(K,0,0,b,A,b,this.f,this.v,this.z),aw(V,B,B,y,w,b,this.f,this.v,this.z);for(let Y=0;YIe+Ne[1]-Ne[0],R=I.reduce(L,0),B=k.reduce(L,0),V=y-R,K=w-B;let ie=0,Y=R,te=0,ae=B,se=0,Se=V,be=0,Re=K;if(p.content&&a){const Ie=p.content;ie=kf(I,0,Ie[0]),te=kf(k,0,Ie[1]),Y=kf(I,Ie[0],Ie[2]),ae=kf(k,Ie[1],Ie[3]),se=Ie[0]-ie,be=Ie[1]-te,Se=Ie[2]-Ie[0]-Y,Re=Ie[3]-Ie[1]-ae}const We=(Ie,Ne,Ue,$e)=>{const Je=Pf(Ie.stretch-ie,Y,b,n.left),Pe=zf(Ie.fixed-se,Se,Ie.stretch,R),rt=Pf(Ne.stretch-te,ae,A,n.top),pt=zf(Ne.fixed-be,Re,Ne.stretch,B),ot=Pf(Ue.stretch-ie,Y,b,n.left),At=zf(Ue.fixed-se,Se,Ue.stretch,R),Qe=Pf($e.stretch-te,ae,A,n.top),_t=zf($e.fixed-be,Re,$e.stretch,B),Ct=new Ve(Je,rt),Ht=new Ve(ot,rt),It=new Ve(ot,Qe),bt=new Ve(Je,Qe),xn=new Ve(Pe/m,pt/m),zt=new Ve(At/m,_t/m),Lt=e*Math.PI/180;if(Lt){const mn=Math.sin(Lt),un=Math.cos(Lt),Cn=[un,-mn,mn,un];Ct._matMult(Cn),Ht._matMult(Cn),bt._matMult(Cn),It._matMult(Cn)}const cn=Ie.stretch+Ie.fixed,fn=Ne.stretch+Ne.fixed;return{tl:Ct,tr:Ht,bl:bt,br:It,tex:{x:p.paddedRect.x+Kc+cn,y:p.paddedRect.y+Kc+fn,w:Ue.stretch+Ue.fixed-cn,h:$e.stretch+$e.fixed-fn},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:xn,pixelOffsetBR:zt,minFontScaleX:Se/m/b,minFontScaleY:Re/m/A,isSDF:r}};if(a&&(p.stretchX||p.stretchY)){const Ie=uw(I,V,R),Ne=uw(k,K,B);for(let Ue=0;Ue0)for(let a=(this.length>>1)-1;a>=0;a--)this._down(a)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const e=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:r,compare:a}=this,u=r[e];for(;e>0;){const p=e-1>>1,m=r[p];if(a(u,m)>=0)break;r[e]=m,e=p}r[e]=u}_down(e){const{data:r,compare:a}=this,u=this.length>>1,p=r[e];for(;e=0)break;r[e]=y,e=m}r[e]=p}}function ZI(n,e){return ne?1:0}function WI(n,e=1,r=!1){let a=1/0,u=1/0,p=-1/0,m=-1/0;const y=n[0];for(let L=0;Lp)&&(p=R.x),(!L||R.y>m)&&(m=R.y)}const w=Math.min(p-a,m-u);let b=w/2;const A=new qI([],HI);if(w===0)return new Ve(a,u);for(let L=a;LI.d||!I.d)&&(I=L,r&&console.log("found best %d after %d probes",Math.round(1e4*L.d)/1e4,k)),L.max-I.d<=e||(b=L.h/2,A.push(new Yc(L.p.x-b,L.p.y-b,b,n)),A.push(new Yc(L.p.x+b,L.p.y-b,b,n)),A.push(new Yc(L.p.x-b,L.p.y+b,b,n)),A.push(new Yc(L.p.x+b,L.p.y+b,b,n)),k+=4)}return r&&(console.log(`num probes: ${k}`),console.log(`best distance: ${I.d}`)),I.p}function HI(n,e){return e.max-n.max}class Yc{constructor(e,r,a,u){this.p=new Ve(e,r),this.h=a,this.d=function(p,m){let y=!1,w=1/0;for(let b=0;bp.y!=B.y>p.y&&p.x<(B.x-R.x)*(p.y-R.y)/(B.y-R.y)+R.x&&(y=!y),w=Math.min(w,o1(p,R,B))}}return(y?1:-1)*Math.sqrt(w)}(this.p,u),this.max=this.d+this.h*Math.SQRT2}}const Jc=7,H_=Number.POSITIVE_INFINITY,XI=Math.sqrt(2);function hw(n,[e,r]){let a=0,u=0;if(r===H_){e<0&&(e=0);const p=e/XI;switch(n){case"top-right":case"top-left":u=p-Jc;break;case"bottom-right":case"bottom-left":u=-p+Jc;break;case"bottom":u=-e+Jc;break;case"top":u=e-Jc}switch(n){case"top-right":case"bottom-right":a=-p;break;case"top-left":case"bottom-left":a=p;break;case"left":a=e;break;case"right":a=-e}}else{switch(e=Math.abs(e),r=Math.abs(r),n){case"top-right":case"top-left":case"top":u=r-Jc;break;case"bottom-right":case"bottom-left":case"bottom":u=-r+Jc}switch(n){case"top-right":case"bottom-right":case"right":a=-e;break;case"top-left":case"bottom-left":case"left":a=e}}return[a,u]}function KI(n,e,r,a,u,p,m,y,w,b){n.createArrays(),n.tilePixelRatio=vt/(512*n.overscaling),n.compareText={},n.iconsNeedLinear=!1;const A=n.layers[0].layout,I=n.layers[0]._unevaluatedLayout._values,k={};if(n.textSizeData.kind==="composite"){const{minZoom:B,maxZoom:V}=n.textSizeData;k.compositeTextSizes=[I["text-size"].possiblyEvaluate(new C(B),y),I["text-size"].possiblyEvaluate(new C(V),y)]}if(n.iconSizeData.kind==="composite"){const{minZoom:B,maxZoom:V}=n.iconSizeData;k.compositeIconSizes=[I["icon-size"].possiblyEvaluate(new C(B),y),I["icon-size"].possiblyEvaluate(new C(V),y)]}k.layoutTextSize=I["text-size"].possiblyEvaluate(new C(w+1),y),k.layoutIconSize=I["icon-size"].possiblyEvaluate(new C(w+1),y),k.textMaxSize=I["text-size"].possiblyEvaluate(new C(18),y);const L=A.get("text-rotation-alignment")==="map"&&A.get("symbol-placement")!=="point",R=A.get("text-size");for(const B of n.features){const V=A.get("text-font").evaluate(B,{},y).join(","),K=R.evaluate(B,{},y),ie=k.layoutTextSize.evaluate(B,{},y),Y=(k.layoutIconSize.evaluate(B,{},y),{horizontal:{},vertical:void 0}),te=B.text;let ae,se=[0,0];if(te){const Re=te.toString(),We=A.get("text-letter-spacing").evaluate(B,{},y)*mi,Ie=A.get("text-line-height").evaluate(B,{},y)*mi,Ne=i_(Re)?We:0,Ue=A.get("text-anchor").evaluate(B,{},y),$e=A.get("text-variable-anchor");if(!$e){const ot=A.get("text-radial-offset").evaluate(B,{},y);se=ot?hw(Ue,[ot*mi,H_]):A.get("text-offset").evaluate(B,{},y).map(At=>At*mi)}let Je=L?"center":A.get("text-justify").evaluate(B,{},y);const Pe=A.get("symbol-placement")==="point",rt=Pe?A.get("text-max-width").evaluate(B,{},y)*mi:1/0,pt=ot=>{n.allowVerticalPlacement&&Ph(Re)&&(Y.vertical=q_(te,e,r,u,V,rt,Ie,Ue,ot,Ne,se,Cr.vertical,!0,ie,K))};if(!L&&$e){const ot=Je==="auto"?$e.map(Qe=>X_(Qe)):[Je];let At=!1;for(let Qe=0;Qe=0||!Ph(Re)){const ot=q_(te,e,r,u,V,rt,Ie,Ue,Je,Ne,se,Cr.horizontal,!1,ie,K);ot&&(Y.horizontal[Je]=ot)}pt(Pe?"left":Je)}}let Se=!1;if(B.icon&&B.icon.name){const Re=a[B.icon.name];Re&&(ae=jI(u[B.icon.name],A.get("icon-offset").evaluate(B,{},y),A.get("icon-anchor").evaluate(B,{},y)),Se=Re.sdf,n.sdfIcons===void 0?n.sdfIcons=Re.sdf:n.sdfIcons!==Re.sdf&&vn("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(Re.pixelRatio!==n.pixelRatio||A.get("icon-rotate").constantOr(1)!==0)&&(n.iconsNeedLinear=!0))}const be=pw(Y.horizontal)||Y.vertical;n.iconsInText||(n.iconsInText=!!be&&be.iconsInText),(be||ae)&&YI(n,B,Y,ae,a,k,ie,0,se,Se,m,y,b)}p&&n.generateCollisionDebugBuffers(w,n.collisionBoxArray)}function X_(n){switch(n){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function YI(n,e,r,a,u,p,m,y,w,b,A,I,k){let L=p.textMaxSize.evaluate(e,{},I);L===void 0&&(L=m);const R=n.layers[0].layout,B=R.get("icon-offset").evaluate(e,{},I),V=pw(r.horizontal)||r.vertical,K=k.name==="globe",ie=mi,Y=m/ie,te=n.tilePixelRatio*L/ie,ae=(Ue=n.overscaling,n.zoom>18&&Ue>2&&(Ue>>=1),Math.max(vt/(512*Ue),1)*R.get("symbol-spacing")),se=R.get("text-padding")*n.tilePixelRatio,Se=R.get("icon-padding")*n.tilePixelRatio,be=St(R.get("text-max-angle")),Re=R.get("text-rotation-alignment")==="map"&&R.get("symbol-placement")!=="point",We=R.get("icon-rotation-alignment")==="map"&&R.get("symbol-placement")!=="point",Ie=R.get("symbol-placement"),Ne=ae/2;var Ue;const $e=R.get("icon-text-fit");let Je;a&&$e!=="none"&&(n.allowVerticalPlacement&&r.vertical&&(Je=ew(a,r.vertical,$e,R.get("icon-text-fit-padding"),B,Y)),V&&(a=ew(a,V,$e,R.get("icon-text-fit-padding"),B,Y)));const Pe=(rt,pt,ot)=>{if(pt.x<0||pt.x>=vt||pt.y<0||pt.y>=vt)return;let At=null;if(K){const{x:Qe,y:_t,z:Ct}=k.projectTilePoint(pt.x,pt.y,ot);At={anchor:new As(Qe,_t,Ct,0,void 0),up:k.upVector(ot,pt.x,pt.y)}}(function(Qe,_t,Ct,Ht,It,bt,xn,zt,Lt,cn,fn,mn,un,Cn,zn,Gn,hn,Jn,$n,In,Kt,qn,gn,Ui,Zn){const gi=Qe.addToLineVertexArray(_t,Ht);let ai,ji,li,bo,tu,md,gd,Zw=0,Ww=0,Hw=0,Xw=0,uy=-1,hy=-1;const Xo={};let Kw=s_("");const Rl=Ct?Ct.anchor:_t;let dy=0,py=0;if(Lt._unevaluatedLayout.getValue("text-radial-offset")===void 0?[dy,py]=Lt.layout.get("text-offset").evaluate(Kt,{},Zn).map(hr=>hr*mi):(dy=Lt.layout.get("text-radial-offset").evaluate(Kt,{},Zn)*mi,py=H_),Qe.allowVerticalPlacement&&It.vertical){const hr=It.vertical;if(zn)md=K_(hr),zt&&(gd=K_(zt));else{const dr=Lt.layout.get("text-rotate").evaluate(Kt,{},Zn)+90;li=Lf(cn,Rl,_t,fn,mn,un,hr,Cn,dr,Gn),zt&&(bo=Lf(cn,Rl,_t,fn,mn,un,zt,Jn,dr))}}if(bt){const hr=Lt.layout.get("icon-rotate").evaluate(Kt,{},Zn),dr=Lt.layout.get("icon-text-fit")!=="none",_d=cw(bt,hr,gn,dr),my=zt?cw(zt,hr,gn,dr):void 0;ji=Lf(cn,Rl,_t,fn,mn,un,bt,Jn,hr),Zw=4*_d.length;const Yw=Qe.iconSizeData;let Dl=null;Yw.kind==="source"?(Dl=[vo*Lt.layout.get("icon-size").evaluate(Kt,{},Zn)],Dl[0]>pa&&vn(`${Qe.layerIds[0]}: Value for "icon-size" is >= ${ad}. Reduce your "icon-size".`)):Yw.kind==="composite"&&(Dl=[vo*qn.compositeIconSizes[0].evaluate(Kt,{},Zn),vo*qn.compositeIconSizes[1].evaluate(Kt,{},Zn)],(Dl[0]>pa||Dl[1]>pa)&&vn(`${Qe.layerIds[0]}: Value for "icon-size" is >= ${ad}. Reduce your "icon-size".`)),Qe.addSymbols(Qe.icon,_d,Dl,In,$n,Kt,!1,Ct,_t,gi.lineStartIndex,gi.lineLength,-1,Ui,Zn),uy=Qe.icon.placedSymbolArray.length-1,my&&(Ww=4*my.length,Qe.addSymbols(Qe.icon,my,Dl,In,$n,Kt,Cr.vertical,Ct,_t,gi.lineStartIndex,gi.lineLength,-1,Ui,Zn),hy=Qe.icon.placedSymbolArray.length-1)}for(const hr in It.horizontal){const dr=It.horizontal[hr];ai||(Kw=s_(dr.text),zn?tu=K_(dr):ai=Lf(cn,Rl,_t,fn,mn,un,dr,Cn,Lt.layout.get("text-rotate").evaluate(Kt,{},Zn),Gn));const _d=dr.positionedLines.length===1;if(Hw+=dw(Qe,Ct,_t,dr,xn,Lt,zn,Kt,Gn,gi,It.vertical?Cr.horizontal:Cr.horizontalOnly,_d?Object.keys(It.horizontal):[hr],Xo,uy,qn,Ui,Zn),_d)break}It.vertical&&(Xw+=dw(Qe,Ct,_t,It.vertical,xn,Lt,zn,Kt,Gn,gi,Cr.vertical,["vertical"],Xo,hy,qn,Ui,Zn));let va=-1;const fy=(hr,dr)=>hr?Math.max(hr,dr):dr;va=fy(tu,va),va=fy(md,va),va=fy(gd,va);const SM=va>-1?1:0;Qe.glyphOffsetArray.length>=ma.MAX_GLYPHS&&vn("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Kt.sortKey!==void 0&&Qe.addToSortKeyRanges(Qe.symbolInstances.length,Kt.sortKey),Qe.symbolInstances.emplaceBack(Rl.x,Rl.y,Rl.z,_t.x,_t.y,Xo.right>=0?Xo.right:-1,Xo.center>=0?Xo.center:-1,Xo.left>=0?Xo.left:-1,Xo.vertical>=0?Xo.vertical:-1,uy,hy,Kw,ai!==void 0?ai:Qe.collisionBoxArray.length,ai!==void 0?ai+1:Qe.collisionBoxArray.length,li!==void 0?li:Qe.collisionBoxArray.length,li!==void 0?li+1:Qe.collisionBoxArray.length,ji!==void 0?ji:Qe.collisionBoxArray.length,ji!==void 0?ji+1:Qe.collisionBoxArray.length,bo||Qe.collisionBoxArray.length,bo?bo+1:Qe.collisionBoxArray.length,fn,Hw,Xw,Zw,Ww,SM,0,dy,py,va)})(n,pt,At,rt,r,a,u,Je,n.layers[0],n.collisionBoxArray,e.index,e.sourceLayerIndex,n.index,se,Re,w,0,Se,We,B,e,p,b,A,I)};if(Ie==="line")for(const rt of sw(e.geometry,0,0,vt,vt)){const pt=GI(rt,ae,be,r.vertical||V,a,ie,te,n.overscaling,vt);for(const ot of pt)V&&JI(n,V.text,Ne,ot)||Pe(rt,ot,I)}else if(Ie==="line-center"){for(const rt of e.geometry)if(rt.length>1){const pt=VI(rt,be,r.vertical||V,a,ie,te);pt&&Pe(rt,pt,I)}}else if(e.type==="Polygon")for(const rt of O_(e.geometry,0)){const pt=WI(rt,16);Pe(rt[0],new As(pt.x,pt.y,0,0,void 0),I)}else if(e.type==="LineString")for(const rt of e.geometry)Pe(rt,new As(rt[0].x,rt[0].y,0,0,void 0),I);else if(e.type==="Point")for(const rt of e.geometry)for(const pt of rt)Pe([pt],new As(pt.x,pt.y,0,0,void 0),I)}const ad=255,pa=ad*vo;function dw(n,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V){const K=function(te,ae,se,Se,be,Re,We,Ie){const Ne=[];if(ae.positionedLines.length===0)return Ne;const Ue=Se.layout.get("text-rotate").evaluate(Re,{})*Math.PI/180,$e=function(ot){const At=ot[0],Qe=ot[1],_t=At*Qe;return _t>0?[At,-Qe]:_t<0?[-At,Qe]:At===0?[Qe,At]:[Qe,-At]}(se);let Je=Math.abs(ae.top-ae.bottom);for(const ot of ae.positionedLines)Je-=ot.lineOffset;const Pe=ae.positionedLines.length,rt=Je/Pe;let pt=ae.top-se[1];for(let ot=0;otpa&&vn(`${n.layerIds[0]}: Value for "text-size" is >= ${ad}. Reduce your "text-size".`)):ie.kind==="composite"&&(Y=[vo*R.compositeTextSizes[0].evaluate(y,{},V),vo*R.compositeTextSizes[1].evaluate(y,{},V)],(Y[0]>pa||Y[1]>pa)&&vn(`${n.layerIds[0]}: Value for "text-size" is >= ${ad}. Reduce your "text-size".`)),n.addSymbols(n.text,K,Y,w,m,y,A,e,r,b.lineStartIndex,b.lineLength,L,B,V);for(const te of I)k[te]=n.text.placedSymbolArray.length-1;return 4*K.length}function pw(n){for(const e in n)return n[e];return null}function Lf(n,e,r,a,u,p,m,y,w,b){let A=m.top,I=m.bottom,k=m.left,L=m.right;const R=m.collisionPadding;if(R&&(k-=R[0],A-=R[1],L+=R[2],I+=R[3]),w){const B=new Ve(k,A),V=new Ve(L,A),K=new Ve(k,I),ie=new Ve(L,I),Y=St(w);let te=new Ve(0,0);b&&(te=new Ve(b[0],b[1])),B._rotateAround(Y,te),V._rotateAround(Y,te),K._rotateAround(Y,te),ie._rotateAround(Y,te),k=Math.min(B.x,V.x,K.x,ie.x),L=Math.max(B.x,V.x,K.x,ie.x),A=Math.min(B.y,V.y,K.y,ie.y),I=Math.max(B.y,V.y,K.y,ie.y)}return n.emplaceBack(e.x,e.y,e.z,r.x,r.y,k,A,L,I,y,a,u,p),n.length-1}function K_(n){n.collisionPadding&&(n.top-=n.collisionPadding[1],n.bottom+=n.collisionPadding[3]);const e=n.bottom-n.top;return e>0?Math.max(10,e):null}function JI(n,e,r,a){const u=n.compareText;if(e in u){const p=u[e];for(let m=p.length-1;m>=0;m--)if(a.dist(p[m])Y&&(te(se,$e,be,Re,Ne,Ue),te($e,Se,Ne,Ue,We,Ie))}te(I,k,a,p,u,p),te(k,L,u,p,u,m),te(L,R,u,m,a,m),te(R,I,a,m,a,p),B-=Y,V-=Y,K+=Y,ie+=Y;const ae=1/Math.max(K-B,ie-V);return{scale:ae,x:B*ae,y:V*ae,x2:K*ae,y2:ie*ae,projection:e}}const QI=go(new Float32Array(16));class fa{constructor(e){this.spec=e,this.name=e.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7]}project(e,r){return{x:0,y:0,z:0}}unproject(e,r){return new ln(0,0)}projectTilePoint(e,r,a){return{x:e,y:r,z:0}}locationPoint(e,r,a=!0){return e._coordinatePoint(e.locationCoordinate(r),a)}pixelsPerMeter(e,r){return yo(1,e)*r}pixelSpaceConversion(e,r,a){return 1}farthestPixelDistance(e){return fw(e,e.pixelsPerMeter)}pointCoordinate(e,r,a,u){const p=e.horizonLineFromTop(!1),m=new Ve(r,Math.max(p,a));return e.rayIntersectionCoordinate(e.pointRayIntersection(m,u))}pointCoordinate3D(e,r,a){const u=new Ve(r,a);if(e.elevation)return e.elevation.pointCoordinate(u);{const p=this.pointCoordinate(e,u.x,u.y,0);return[p.x,p.y,p.z]}}isPointAboveHorizon(e,r){if(e.elevation)return!this.pointCoordinate3D(e,r.x,r.y);const a=e.horizonLineFromTop();return r.y0?r<-Qc+a&&(r=-Qc+a):r>Qc-a&&(r=Qc-a);const m=p/Math.pow(Df(r),u);let y=m*Math.sin(u*e),w=p-m*Math.cos(u*e);return y=.5*(y/Math.PI+.5),w=.5*(w/Math.PI+.5),{x:y,y:this.southernCenter?w:1-w,z:0}}unproject(e,r){e=(2*e-.5)*Math.PI,this.southernCenter&&(r=1-r),r=(2*(1-r)-.5)*Math.PI;const{n:a,f:u}=this,p=u-r,m=Math.sign(p),y=Math.sign(a)*Math.sqrt(e*e+p*p);let w=Math.atan2(e,Math.abs(p))*m;p*a<0&&(w-=Math.PI*Math.sign(e)*m);const b=Ke(Vt(w/a)+this.center[0],-180,180),A=Ke(Vt(2*Math.atan(Math.pow(u/y,1/a))-Qc),-Ei,Ei);return new ln(b,this.southernCenter?-A:A)}}class mw extends fa{constructor(e){super(e),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null}project(e,r){return{x:$o(e),y:qo(r),z:0}}unproject(e,r){const a=Ar(e),u=bi(r);return new ln(a,u)}}const gw=St(Ei);class rM extends fa{project(e,r){const a=(r=St(r))*r,u=a*a;return{x:.5*((e=St(e))*(.8707-.131979*a+u*(u*(.003971*a-.001529*u)-.013791))/Math.PI+.5),y:1-.5*(r*(1.007226+a*(.015085+u*(.028874*a-.044475-.005916*u)))/Math.PI+1),z:0}}unproject(e,r){e=(2*e-.5)*Math.PI;let a=r=(2*(1-r)-1)*Math.PI,u=25,p=0,m=a*a;do{m=a*a;const b=m*m;p=(a*(1.007226+m*(.015085+b*(.028874*m-.044475-.005916*b)))-r)/(1.007226+m*(.045255+b*(.259866*m-.311325-.005916*11*b))),a=Ke(a-p,-gw,gw)}while(Math.abs(p)>1e-6&&--u>0);m=a*a;const y=Ke(Vt(e/(.8707+m*(m*(m*m*m*(.003971-.001529*m)-.013791)-.131979))),-180,180),w=Vt(a);return new ln(y,w)}}const _w=St(Ei);class oM extends fa{project(e,r){r=St(r),e=St(e);const a=Math.cos(r),u=2/Math.PI,p=Math.acos(a*Math.cos(e/2)),m=Math.sin(p)/p,y=.5*(e*u+2*a*Math.sin(e/2)/m)||0,w=.5*(r+Math.sin(r)/m)||0;return{x:.5*(y/Math.PI+.5),y:1-.5*(w/Math.PI+1),z:0}}unproject(e,r){let a=e=(2*e-.5)*Math.PI,u=r=(2*(1-r)-1)*Math.PI,p=25;const m=1e-6;let y=0,w=0;do{const b=Math.cos(u),A=Math.sin(u),I=2*A*b,k=A*A,L=b*b,R=Math.cos(a/2),B=Math.sin(a/2),V=2*R*B,K=B*B,ie=1-L*R*R,Y=ie?1/ie:0,te=ie?Math.acos(b*R)*Math.sqrt(1/ie):0,ae=.5*(2*te*b*B+2*a/Math.PI)-e,se=.5*(te*A+u)-r,Se=.5*Y*(L*K+te*b*R*k)+1/Math.PI,be=Y*(V*I/4-te*A*B),Re=.125*Y*(I*B-te*A*L*V),We=.5*Y*(k*R+te*K*b)+.5,Ie=be*Re-We*Se;y=(se*be-ae*We)/Ie,w=(ae*Re-se*Se)/Ie,a=Ke(a-y,-Math.PI,Math.PI),u=Ke(u-w,-_w,_w)}while((Math.abs(y)>m||Math.abs(w)>m)&&--p>0);return new ln(Vt(a),Vt(u))}}class yw extends fa{constructor(e){super(e),this.center=e.center||[0,0],this.parallels=e.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(St(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0}project(e,r){const{scale:a,cosPhi:u}=this;return{x:St(e)*u*a+.5,y:-Math.sin(St(r))/u*a+.5,z:0}}unproject(e,r){const{scale:a,cosPhi:u}=this,p=-(r-.5)/a,m=Ke(Vt((e-.5)/a)/u,-180,180),y=Math.asin(Ke(p*u,-1,1)),w=Ke(Vt(y),-Ei,Ei);return new ln(m,w)}}class sM extends mw{constructor(e){super(e),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug"],this.range=[3,5]}projectTilePoint(e,r,a){const u=Zh(e,r,a);return On(u,u,Wh(Go(a))),{x:u[0],y:u[1],z:u[2]}}locationPoint(e,r){const a=Fc(r.lat,r.lng),u=Bi([],a),p=e.elevation?e.elevation.getAtPointOrZero(e.locationCoordinate(r),e._centerAltitude):e._centerAltitude;Vh(a,a,u,yo(1,0)*vt*p);const m=go(new Float64Array(16));return Tl(m,e.pixelMatrix,e.globeMatrix),On(a,a,m),new Ve(a[0],a[1])}pixelsPerMeter(e,r){return yo(1,0)*r}pixelSpaceConversion(e,r,a){const u=yo(1,e)*r,p=Zt(yo(1,45)*r,u,a);return this.pixelsPerMeter(e,r)/p}createTileMatrix(e,r,a){const u=x_(Go(a.canonical));return Tl(new Float64Array(16),e.globeMatrix,u)}createInversionMatrix(e,r){const{center:a}=e,u=Wh(Go(r));return cf(u,u,St(a.lng)),u_(u,u,St(a.lat)),Sl(u,u,[e._pixelsPerMercatorPixel,e._pixelsPerMercatorPixel,1]),Float32Array.from(u)}pointCoordinate(e,r,a,u){return qx(e,r,a,!0)||new Uc(0,0)}pointCoordinate3D(e,r,a){const u=this.pointCoordinate(e,r,a,0);return[u.x,u.y,u.z]}isPointAboveHorizon(e,r){return!qx(e,r.x,r.y,!1)}farthestPixelDistance(e){const r=function(u,p){const m=u.cameraToCenterDistance,y=u._centerAltitude*p,w=u._camera,b=u._camera.forward(),A=bs([],Sr([],b,-m),[0,0,y]),I=u.worldSize/(2*Math.PI),k=[0,0,-I],L=u.width/u.height,R=Math.tan(u.fovAboveCenter),B=Sr([],w.up(),R),V=Sr([],w.right(),R*L),K=Bi([],bs([],bs([],b,B),V)),ie=[];let Y;if(new f_(A,K).closestPointOnSphere(k,I,ie)){const te=bs([],ie,k),ae=_o([],te,A);Y=Math.cos(u.fovAboveCenter)*Nh(ae)}else{const te=_o([],A,k),ae=_o([],k,A);Bi(ae,ae);const se=Nh(te)-I;Y=Math.sqrt(se*(se+2*I));const Se=Math.acos(Y/(I+se))-Math.acos(qr(b,ae));Y*=Math.cos(Se)}return 1.01*Y}(e,this.pixelsPerMeter(e.center.lat,e.worldSize)),a=Nc(e.zoom);if(a>0){const u=fw(e,yo(1,e.center.lat)*e.worldSize),p=e.worldSize/(2*Math.PI),m=Math.max(e.width,e.height)/e.worldSize*Math.PI;return Zt(r,u+p*(1-Math.cos(m)),Math.pow(a,10))}return r}upVector(e,r,a){return Zh(r,a,e,1)}upVectorScale(e){return{metersToTile:uf(df(Go(e)))}}}function vw(n){const e=n.parallels,r=!!e&&Math.abs(e[0]+e[1])<.01;switch(n.name){case"mercator":return new mw(n);case"equirectangular":return new nM(n);case"naturalEarth":return new rM(n);case"equalEarth":return new tM(n);case"winkelTripel":return new oM(n);case"albers":return r?new yw(n):new eM(n);case"lambertConformalConic":return r?new yw(n):new iM(n);case"globe":return new sM(n)}throw new Error(`Invalid projection name: ${n.name}`)}const aM=bf.types,lM=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function Of(n,e,r,a,u,p,m,y,w,b,A,I,k){const L=y?Math.min(pa,Math.round(y[0])):0,R=y?Math.min(pa,Math.round(y[1])):0;n.emplaceBack(e,r,Math.round(32*a),Math.round(32*u),p,m,(L<<1)+(w?1:0),R,16*b,16*A,256*I,256*k)}function Bf(n,e,r,a,u,p,m){n.emplaceBack(e,r,a,u,p,m)}function Ff(n,e,r,a,u){n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u)}function cM(n){for(const e of n.sections)if(o_(e.text))return!0;return!1}class Y_{constructor(e){this.layoutVertexArray=new Ge,this.indexArray=new mt,this.programConfigurations=e,this.segments=new jn,this.dynamicLayoutVertexArray=new qe,this.opacityVertexArray=new gt,this.placedSymbolArray=new Un,this.globeExtVertexArray=new Xe}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,r,a,u){this.isEmpty()||(a&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,_I.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,vI.members,!0),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,lM,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,yI.members,!0)),this.opacityVertexBuffer.itemSize=1),(a||u)&&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(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}}ht(Y_,"SymbolBuffers");class J_{constructor(e,r,a){this.layoutVertexArray=new e,this.layoutAttributes=r,this.indexArray=new a,this.segments=new jn,this.collisionVertexArray=new Ut,this.collisionVertexArrayExt=new Ot}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,xI.members,!0),this.collisionVertexBufferExt=e.createVertexBuffer(this.collisionVertexArrayExt,wI.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}ht(J_,"CollisionBuffers");class ma{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(m=>m.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=go([]),this.placementViewportMatrix=go([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=U_(this.zoom,r["text-size"]),this.iconSizeData=U_(this.zoom,r["icon-size"]);const a=this.layers[0].layout,u=a.get("symbol-sort-key"),p=a.get("symbol-z-order");this.canOverlap=a.get("text-allow-overlap")||a.get("icon-allow-overlap")||a.get("text-ignore-placement")||a.get("icon-ignore-placement"),this.sortFeaturesByKey=p!=="viewport-y"&&u.constantOr(1)!==void 0,this.sortFeaturesByY=(p==="viewport-y"||p==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=a.get("text-writing-mode").map(m=>Cr[m]),this.stateDependentLayerIds=this.layers.filter(m=>m.isStateDependent()).map(m=>m.id),this.sourceID=e.sourceID,this.projection=e.projection}createArrays(){this.text=new Y_(new El(this.layers,this.zoom,e=>/^text/.test(e))),this.icon=new Y_(new El(this.layers,this.zoom,e=>/^icon/.test(e))),this.glyphOffsetArray=new Oi,this.lineVertexArray=new Lc,this.symbolInstances=new wn}calculateGlyphDependencies(e,r,a,u,p){for(let m=0;m0)&&(w.value.kind!=="constant"||w.value.value.length>0),k=A.value.kind!=="constant"||!!A.value.value||Object.keys(A.parameters).length>0,L=m.get("symbol-sort-key");if(this.features=[],!I&&!k)return;const R=r.iconDependencies,B=r.glyphDependencies,V=r.availableImages,K=new C(this.zoom);for(const{feature:ie,id:Y,index:te,sourceLayerIndex:ae}of e){const se=p._featureFilter.needGeometry,Se=Ml(ie,se);if(!p._featureFilter.filter(K,Se,a))continue;if(se||(Se.geometry=Es(ie,a,u)),y&&ie.type!==1&&a.z<=5){const Ie=Se.geometry,Ne=.98078528056,Ue=($e,Je)=>qr(Zh($e.x,$e.y,a,1),Zh(Je.x,Je.y,a,1))=0;for(const Ue of be.sections)if(Ue.image)R[Ue.image.name]=!0;else{const $e=Ph(be.toString()),Je=Ue.fontStack||Ie,Pe=B[Je]=B[Je]||{};this.calculateGlyphDependencies(Ue.text,Pe,Ne,this.allowVerticalPlacement,$e)}}}m.get("symbol-placement")==="line"&&(this.features=function(ie){const Y={},te={},ae=[];let se=0;function Se(Ie){ae.push(ie[Ie]),se++}function be(Ie,Ne,Ue){const $e=te[Ie];return delete te[Ie],te[Ne]=$e,ae[$e].geometry[0].pop(),ae[$e].geometry[0]=ae[$e].geometry[0].concat(Ue[0]),$e}function Re(Ie,Ne,Ue){const $e=Y[Ne];return delete Y[Ne],Y[Ie]=$e,ae[$e].geometry[0].shift(),ae[$e].geometry[0]=Ue[0].concat(ae[$e].geometry[0]),$e}function We(Ie,Ne,Ue){const $e=Ue?Ne[0][Ne[0].length-1]:Ne[0][0];return`${Ie}:${$e.x}:${$e.y}`}for(let Ie=0;IeIe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((ie,Y)=>ie.sortKey-Y.sortKey)}update(e,r,a,u){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,r,this.layers,a,u),this.icon.programConfigurations.updatePaintArrays(e,r,this.layers,a,u))}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=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}getProjection(){return this.projectionInstance||(this.projectionInstance=vw(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(e,r){const a=this.lineVertexArray.length;if(e.segment!==void 0)for(const{x:u,y:p}of r)this.lineVertexArray.emplaceBack(u,p);return{lineStartIndex:a,lineLength:this.lineVertexArray.length-a}}addSymbols(e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=e.indexArray,V=e.layoutVertexArray,K=e.globeExtVertexArray,ie=e.segments.prepareSegment(4*r.length,V,B,this.canOverlap?m.sortKey:void 0),Y=this.glyphOffsetArray.length,te=ie.vertexLength,ae=this.allowVerticalPlacement&&y===Cr.vertical?Math.PI/2:0,se=m.text&&m.text.sections;for(let be=0;be=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:u),m=Af(this.textSizeData,e,p)/mi;return this.tilePixelRatio*m}getSymbolInstanceIconSize(e,r,a){const u=this.icon.placedSymbolArray.get(a),p=Af(this.iconSizeData,e,u);return this.tilePixelRatio*p}_commitDebugCollisionVertexUpdate(e,r,a){e.emplaceBack(r,-a,-a),e.emplaceBack(r,a,-a),e.emplaceBack(r,a,a),e.emplaceBack(r,-a,a)}_updateTextDebugCollisionBoxes(e,r,a,u,p,m){for(let y=u;y0}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,r){const a=e.placedSymbolArray.get(r),u=a.vertexStartIndex+4*a.numGlyphs;for(let p=a.vertexStartIndex;pu[y]-u[w]||p[w]-p[y]),m}addToSortKeyRanges(e,r){const a=this.sortKeyRanges[this.sortKeyRanges.length-1];a&&a.sortKey===r?a.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:r,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(const r of this.symbolInstanceIndexes){const a=this.symbolInstances.get(r);this.featureSortOrder.push(a.featureIndex);const{rightJustifiedTextSymbolIndex:u,centerJustifiedTextSymbolIndex:p,leftJustifiedTextSymbolIndex:m,verticalPlacedTextSymbolIndex:y,placedIconSymbolIndex:w,verticalPlacedIconSymbolIndex:b}=a;u>=0&&this.addIndicesForPlacedSymbol(this.text,u),p>=0&&p!==u&&this.addIndicesForPlacedSymbol(this.text,p),m>=0&&m!==p&&m!==u&&this.addIndicesForPlacedSymbol(this.text,m),y>=0&&this.addIndicesForPlacedSymbol(this.text,y),w>=0&&this.addIndicesForPlacedSymbol(this.icon,w),b>=0&&this.addIndicesForPlacedSymbol(this.icon,b)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}ht(ma,"SymbolBucket",{omit:["layers","collisionBoxArray","features","compareText"]}),ma.MAX_GLYPHS=65535,ma.addDynamicAttributes=Ff;const uM=new Q({"symbol-placement":new O(Le.layout_symbol["symbol-placement"]),"symbol-spacing":new O(Le.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new O(Le.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new G(Le.layout_symbol["symbol-sort-key"]),"symbol-z-order":new O(Le.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new O(Le.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new O(Le.layout_symbol["icon-ignore-placement"]),"icon-optional":new O(Le.layout_symbol["icon-optional"]),"icon-rotation-alignment":new O(Le.layout_symbol["icon-rotation-alignment"]),"icon-size":new G(Le.layout_symbol["icon-size"]),"icon-text-fit":new O(Le.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new O(Le.layout_symbol["icon-text-fit-padding"]),"icon-image":new G(Le.layout_symbol["icon-image"]),"icon-rotate":new G(Le.layout_symbol["icon-rotate"]),"icon-padding":new O(Le.layout_symbol["icon-padding"]),"icon-keep-upright":new O(Le.layout_symbol["icon-keep-upright"]),"icon-offset":new G(Le.layout_symbol["icon-offset"]),"icon-anchor":new G(Le.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new O(Le.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new O(Le.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new O(Le.layout_symbol["text-rotation-alignment"]),"text-field":new G(Le.layout_symbol["text-field"]),"text-font":new G(Le.layout_symbol["text-font"]),"text-size":new G(Le.layout_symbol["text-size"]),"text-max-width":new G(Le.layout_symbol["text-max-width"]),"text-line-height":new G(Le.layout_symbol["text-line-height"]),"text-letter-spacing":new G(Le.layout_symbol["text-letter-spacing"]),"text-justify":new G(Le.layout_symbol["text-justify"]),"text-radial-offset":new G(Le.layout_symbol["text-radial-offset"]),"text-variable-anchor":new O(Le.layout_symbol["text-variable-anchor"]),"text-anchor":new G(Le.layout_symbol["text-anchor"]),"text-max-angle":new O(Le.layout_symbol["text-max-angle"]),"text-writing-mode":new O(Le.layout_symbol["text-writing-mode"]),"text-rotate":new G(Le.layout_symbol["text-rotate"]),"text-padding":new O(Le.layout_symbol["text-padding"]),"text-keep-upright":new O(Le.layout_symbol["text-keep-upright"]),"text-transform":new G(Le.layout_symbol["text-transform"]),"text-offset":new G(Le.layout_symbol["text-offset"]),"text-allow-overlap":new O(Le.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new O(Le.layout_symbol["text-ignore-placement"]),"text-optional":new O(Le.layout_symbol["text-optional"])});var Q_={paint:new Q({"icon-opacity":new G(Le.paint_symbol["icon-opacity"]),"icon-color":new G(Le.paint_symbol["icon-color"]),"icon-halo-color":new G(Le.paint_symbol["icon-halo-color"]),"icon-halo-width":new G(Le.paint_symbol["icon-halo-width"]),"icon-halo-blur":new G(Le.paint_symbol["icon-halo-blur"]),"icon-translate":new O(Le.paint_symbol["icon-translate"]),"icon-translate-anchor":new O(Le.paint_symbol["icon-translate-anchor"]),"text-opacity":new G(Le.paint_symbol["text-opacity"]),"text-color":new G(Le.paint_symbol["text-color"],{runtimeType:Xi,getOverride:n=>n.textColor,hasOverride:n=>!!n.textColor}),"text-halo-color":new G(Le.paint_symbol["text-halo-color"]),"text-halo-width":new G(Le.paint_symbol["text-halo-width"]),"text-halo-blur":new G(Le.paint_symbol["text-halo-blur"]),"text-translate":new O(Le.paint_symbol["text-translate"]),"text-translate-anchor":new O(Le.paint_symbol["text-translate-anchor"])}),layout:uM};class xw{constructor(e){this.type=e.property.overrides?e.property.overrides.runtimeType:qs,this.defaultValue=e}evaluate(e){if(e.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(e.formattedSection))return r.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){this.defaultValue.isConstant()||e(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}ht(xw,"FormatSectionOverride",{omit:["defaultValue"]});class Nf extends mo{constructor(e){super(e,Q_)}recalculate(e,r){super.recalculate(e,r),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const a=this.layout.get("text-writing-mode");if(a){const u=[];for(const p of a)u.indexOf(p)<0&&u.push(p);this.layout._values["text-writing-mode"]=u}else this.layout._values["text-writing-mode"]=this.layout.get("symbol-placement")==="point"?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(e,r,a,u){const p=this.layout.get(e).evaluate(r,{},a,u),m=this._unevaluatedLayout._values[e];return m.isDataDriven()||ia(m.value)||!p?p:function(y,w){return w.replace(/{([^{}]+)}/g,(b,A)=>A in y?String(y[A]):"")}(r.properties,p)}createBucket(e){return new ma(e)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const e of Q_.paint.overridableProperties){if(!Nf.hasPaintOverride(this.layout,e))continue;const r=this.paint.get(e),a=new xw(r),u=new Sc(a,r.property.specification);let p=null;p=r.value.kind==="constant"||r.value.kind==="source"?new xh("source",u):new fl("composite",u,r.value.zoomStops,r.value._interpolationType),this.paint._values[e]=new Z(r.property,p,r.parameters)}}_handleOverridablePaintPropertyUpdate(e,r,a){return!(!this.layout||r.isDataDriven()||a.isDataDriven())&&Nf.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,r){const a=e.get("text-field"),u=Q_.paint.properties[r];let p=!1;const m=y=>{for(const w of y)if(u.overrides&&u.overrides.hasOverride(w))return void(p=!0)};if(a.value.kind==="constant"&&a.value.value instanceof Di)m(a.value.value.sections);else if(a.value.kind==="source"){const y=b=>{p||(b instanceof hs&&Pn(b.value)===Ya?m(b.value.sections):b instanceof No?m(b.sections):b.eachChild(y))},w=a.value;w._styleExpression&&y(w._styleExpression.expression)}return p}getProgramConfiguration(e){return new ua(this,e)}}var hM={paint:new Q({"background-color":new O(Le.paint_background["background-color"]),"background-pattern":new O(Le.paint_background["background-pattern"]),"background-opacity":new O(Le.paint_background["background-opacity"])})},dM={paint:new Q({"raster-opacity":new O(Le.paint_raster["raster-opacity"]),"raster-hue-rotate":new O(Le.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new O(Le.paint_raster["raster-brightness-min"]),"raster-brightness-max":new O(Le.paint_raster["raster-brightness-max"]),"raster-saturation":new O(Le.paint_raster["raster-saturation"]),"raster-contrast":new O(Le.paint_raster["raster-contrast"]),"raster-resampling":new O(Le.paint_raster["raster-resampling"]),"raster-fade-duration":new O(Le.paint_raster["raster-fade-duration"])})};class pM extends mo{constructor(e){super(e,{}),this.implementation=e}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}isLayerDraped(){return this.implementation.renderToTile!==void 0}shouldRedrape(){return!!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){}onAdd(e){this.implementation.onAdd&&this.implementation.onAdd(e,e.painter.context.gl)}onRemove(e){this.implementation.onRemove&&this.implementation.onRemove(e,e.painter.context.gl)}}var fM={paint:new Q({"sky-type":new O(Le.paint_sky["sky-type"]),"sky-atmosphere-sun":new O(Le.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new O(Le.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new O(Le.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new O(Le.paint_sky["sky-gradient-radius"]),"sky-gradient":new J(Le.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new O(Le.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new O(Le.paint_sky["sky-atmosphere-color"]),"sky-opacity":new O(Le.paint_sky["sky-opacity"])})};function ey(n,e,r){const a=[0,0,1],u=Nx([]);return jx(u,u,r?-St(n)+Math.PI:St(n)),Ux(u,u,-St(e)),Dx(a,a,u),Bi(a,a)}const mM={circle:class extends mo{constructor(n){super(n,AC)}createBucket(n){return new A_(n)}queryRadius(n){const e=n;return jc("circle-radius",this,e)+jc("circle-stroke-width",this,e)+mf(this.paint.get("circle-translate"))}queryIntersectsFeature(n,e,r,a,u,p,m,y){const w=c1(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),b=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r);return u1(n,a,p,m,y,this.paint.get("circle-pitch-alignment")==="map",this.paint.get("circle-pitch-scale")==="map",w,b)}getProgramIds(){return["circle"]}getProgramConfiguration(n){return new ua(this,n)}},heatmap:class extends mo{createBucket(n){return new d1(n)}constructor(n){super(n,kC),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(n){n==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=k_({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(n){return jc("heatmap-radius",this,n)}queryIntersectsFeature(n,e,r,a,u,p,m,y){const w=this.paint.get("heatmap-radius").evaluate(e,r);return u1(n,a,p,m,y,!0,!0,new Ve(0,0),w)}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(n){return new ua(this,n)}},hillshade:class extends mo{constructor(n){super(n,PC)}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"}getProgramIds(){return["hillshade","hillshadePrepare"]}},fill:class extends mo{constructor(n){super(n,WC)}getProgramIds(){const n=this.paint.get("fill-pattern"),e=n&&n.constantOr(1),r=[e?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&r.push(e&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),r}getProgramConfiguration(n){return new ua(this,n)}recalculate(n,e){super.recalculate(n,e);const r=this.paint._values["fill-outline-color"];r.value.kind==="constant"&&r.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(n){return new xf(n)}queryRadius(){return mf(this.paint.get("fill-translate"))}queryIntersectsFeature(n,e,r,a,u,p){return!n.queryGeometry.isAboveHorizon&&r1(l1(n.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),a)}isTileClipped(){return!0}},"fill-extrusion":class extends mo{constructor(n){super(n,cI)}createBucket(n){return new td(n)}queryRadius(){return mf(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(n){return new ua(this,n)}queryIntersectsFeature(n,e,r,a,u,p,m,y,w){const b=c1(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),A=this.paint.get("fill-extrusion-height").evaluate(e,r),I=this.paint.get("fill-extrusion-base").evaluate(e,r),k=[0,0],L=y&&p.elevation,R=p.elevation?p.elevation.exaggeration():1,B=n.tile.getBucket(this);if(L&&B instanceof td){const te=B.centroidVertexArray,ae=w+1;aete.polygon).flat());const V=L?y:null,[K,ie]=function(te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e){return te.projection.name==="globe"?function(Je,Pe,rt,pt,ot,At,Qe,_t,Ct,Ht,It){const bt=[],xn=[],zt=Je.projection.upVectorScale(It,Je.center.lat,Je.worldSize).metersToTile,Lt=[0,0,0,1],cn=[0,0,0,1],fn=(un,Cn,zn,Gn)=>{un[0]=Cn,un[1]=zn,un[2]=Gn,un[3]=1},mn=M1();rt>0&&(rt+=mn),pt+=mn;for(const un of Pe){const Cn=[],zn=[];for(const Gn of un){const hn=Gn.x+ot.x,Jn=Gn.y+ot.y,$n=Je.projection.projectTilePoint(hn,Jn,It),In=Je.projection.upVector(It,Gn.x,Gn.y);let Kt=rt,qn=pt;if(Qe){const gn=R1(hn,Jn,rt,pt,Qe,_t,Ct,Ht);Kt+=gn.base,qn+=gn.top}rt!==0?fn(Lt,$n.x+In[0]*zt*Kt,$n.y+In[1]*zt*Kt,$n.z+In[2]*zt*Kt):fn(Lt,$n.x,$n.y,$n.z),fn(cn,$n.x+In[0]*zt*qn,$n.y+In[1]*zt*qn,$n.z+In[2]*zt*qn),On(Lt,Lt,At),On(cn,cn,At),Cn.push(new $c(Lt[0],Lt[1],Lt[2])),zn.push(new $c(cn[0],cn[1],cn[2]))}bt.push(Cn),xn.push(zn)}return[bt,xn]}(te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e):We?function(Je,Pe,rt,pt,ot,At,Qe,_t,Ct){const Ht=[],It=[],bt=[0,0,0,1];for(const xn of Je){const zt=[],Lt=[];for(const cn of xn){const fn=cn.x+pt.x,mn=cn.y+pt.y,un=R1(fn,mn,Pe,rt,At,Qe,_t,Ct);bt[0]=fn,bt[1]=mn,bt[2]=un.base,bt[3]=1,Al(bt,bt,ot),bt[3]=Math.max(bt[3],1e-5);const Cn=new $c(bt[0]/bt[3],bt[1]/bt[3],bt[2]/bt[3]);bt[0]=fn,bt[1]=mn,bt[2]=un.top,bt[3]=1,Al(bt,bt,ot),bt[3]=Math.max(bt[3],1e-5);const zn=new $c(bt[0]/bt[3],bt[1]/bt[3],bt[2]/bt[3]);zt.push(Cn),Lt.push(zn)}Ht.push(zt),It.push(Lt)}return[Ht,It]}(ae,se,Se,be,Re,We,Ie,Ne,Ue):function(Je,Pe,rt,pt,ot){const At=[],Qe=[],_t=ot[8]*Pe,Ct=ot[9]*Pe,Ht=ot[10]*Pe,It=ot[11]*Pe,bt=ot[8]*rt,xn=ot[9]*rt,zt=ot[10]*rt,Lt=ot[11]*rt;for(const cn of Je){const fn=[],mn=[];for(const un of cn){const Cn=un.x+pt.x,zn=un.y+pt.y,Gn=ot[0]*Cn+ot[4]*zn+ot[12],hn=ot[1]*Cn+ot[5]*zn+ot[13],Jn=ot[2]*Cn+ot[6]*zn+ot[14],$n=ot[3]*Cn+ot[7]*zn+ot[15],In=Gn+_t,Kt=hn+Ct,qn=Jn+Ht,gn=Math.max($n+It,1e-5),Ui=Gn+bt,Zn=hn+xn,gi=Jn+zt,ai=Math.max($n+Lt,1e-5);fn.push(new $c(In/gn,Kt/gn,qn/gn)),mn.push(new $c(Ui/ai,Zn/ai,gi/ai))}At.push(fn),Qe.push(mn)}return[At,Qe]}(ae,se,Se,be,Re)}(p,a,I,A,b,m,V,k,R,p.center.lat,n.tileID.canonical),Y=n.queryGeometry;return function(te,ae,se){let Se=1/0;r1(se,ae)&&(Se=L1(se,ae[0]));for(let be=0;be=3){for(let R=0;R{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){this._channel=void 0,this._callback=()=>{}}}class _M{constructor(){this.tasks={},this.taskQueue=[],Br(["process"],this),this.invoker=new gM(this.process),this.nextId=0}add(e,r){const a=this.nextId++,u=function({type:p,isSymbolTile:m,zoom:y}){return y=y||0,p==="message"?0:p!=="maybePrepare"||m?p!=="parseTile"||m?p==="parseTile"&&m?300-y:p==="maybePrepare"&&m?400-y:500:200-y:100-y}(r);if(u===0){to();try{e()}finally{}return{cancel:()=>{}}}return this.tasks[a]={fn:e,metadata:r,priority:u,id:a},this.taskQueue.push(a),this.invoker.trigger(),{cancel:()=>{delete this.tasks[a]}}}process(){to();try{if(this.taskQueue=this.taskQueue.filter(a=>!!this.tasks[a]),!this.taskQueue.length)return;const e=this.pick();if(e===null)return;const r=this.tasks[e];if(delete this.tasks[e],this.taskQueue.length&&this.invoker.trigger(),!r)return;r.fn()}finally{}}pick(){let e=null,r=1/0;for(let u=0;u>=1)>1;){const b=r+u>>1,A=a+p>>1;1&e?(u=r,p=a,r=m,a=y):(r=u,a=p,u=m,p=y),m=b,y=A}const w=4*n;ga[w+0]=r,ga[w+1]=a,ga[w+2]=u,ga[w+3]=p}const Wo=new Uint16Array(2178),_a=new Uint8Array(1089),Uf=new Uint16Array(1089);function Ew(n){return n===0?-.03125:n===32?.03125:0}var Tw=_e([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const Sw={type:2,extent:vt,loadGeometry:()=>[[new Ve(0,0),new Ve(vt+1,0),new Ve(vt+1,vt+1),new Ve(0,vt+1),new Ve(0,0)]]};class ty{constructor(e,r,a,u,p){this.tileID=e,this.uid=Wi(),this.uses=0,this.tileSize=r,this.tileZoom=a,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=p,this.expiredRequestCount=0,this.state="loading",u&&u.transform&&(this.projection=u.transform.projection)}registerFadeDuration(e){const r=e+this.timeAdded;rp.getLayer(b)).filter(Boolean);if(w.length!==0){y.layers=w,y.stateDependentLayerIds&&(y.stateDependentLayers=y.stateDependentLayerIds.map(b=>w.filter(A=>A.id===b)[0]));for(const b of w)m[b.id]=y}}return m}(e.buckets,r.style),this.hasSymbolBuckets=!1;for(const u in this.buckets){const p=this.buckets[u];if(p instanceof ma){if(this.hasSymbolBuckets=!0,!a)break;p.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const u in this.buckets){const p=this.buckets[u];if(p instanceof ma&&p.hasRTLText){this.hasRTLText=!0,S.isLoading()||S.isLoaded()||v()!=="deferred"||E();break}}this.queryPadding=0;for(const u in this.buckets){const p=this.buckets[u];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(u).queryRadius(p))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage),e.lineAtlas&&(this.lineAtlas=e.lineAtlas)}else this.collisionBoxArray=new an}unloadVectorData(){if(this.hasData()){for(const e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(e){return this.buckets[e.id]}upload(e){for(const a in this.buckets){const u=this.buckets[a];u.uploadPending()&&u.upload(e)}const r=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new dd(e,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new dd(e,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new dd(e,this.lineAtlas.image,r.ALPHA),this.lineAtlas.uploaded=!0)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,r,a,u,p,m,y,w){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:u,pixelPosMatrix:y,transform:m,params:p,tileTransform:this.tileTransform},e,r,a):{}}querySourceFeatures(e,r){const a=this.latestFeatureIndex;if(!a||!a.rawTileData)return;const u=a.loadVTLayers(),p=r?r.sourceLayer:"",m=u._geojsonTileLayer||u[p];if(!m)return;const y=Mc(r&&r.filter),{z:w,x:b,y:A}=this.tileID.canonical,I={z:w,x:b,y:A};for(let k=0;ka)u=!1;else if(r)if(this.expirationTime=0;V--){const K=4*V,ie=ga[K+0],Y=ga[K+1],te=ga[K+2],ae=ga[K+3],se=ie+te>>1,Se=Y+ae>>1,be=se+Se-Y,Re=Se+ie-se,We=Y*Zo+ie,Ie=ae*Zo+te,Ne=Se*Zo+se,Ue=Math.hypot((Wo[2*We+0]+Wo[2*Ie+0])/2-Wo[2*Ne+0],(Wo[2*We+1]+Wo[2*Ie+1])/2-Wo[2*Ne+1])>=16;_a[Ne]=_a[Ne]||(Ue?1:0),V<1022&&(_a[Ne]=_a[Ne]||_a[(Y+Re>>1)*Zo+(ie+be>>1)]||_a[(ae+Re>>1)*Zo+(te+be>>1)])}const I=new Be,k=new mt;let L=0;function R(V,K){const ie=K*Zo+V;return Uf[ie]===0&&(I.emplaceBack(Wo[2*ie+0],Wo[2*ie+1],V*vt/Hr,K*vt/Hr),Uf[ie]=++L),Uf[ie]-1}function B(V,K,ie,Y,te,ae){const se=V+ie>>1,Se=K+Y>>1;if(Math.abs(V-te)+Math.abs(K-ae)>1&&_a[Se*Zo+se])B(te,ae,V,K,se,Se),B(ie,Y,te,ae,se,Se);else{const be=R(V,K),Re=R(ie,Y),We=R(te,ae);k.emplaceBack(be,Re,We)}}return B(0,0,Hr,Hr,Hr,0),B(Hr,Hr,0,0,0,Hr),{vertices:I,indices:k}}(this.tileID.canonical,r);u=m.vertices,p=m.indices}else{u=new Be,p=new mt;for(const{x:y,y:w}of a)u.emplaceBack(y,w,0,0);const m=D_(u.int16,void 0,4);for(let y=0;y0&&(y=c_(new Float64Array(16),r.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(e,u,r,p,y,m),this._makeGlobeTileDebugTextBuffer(e,u,r,p,y,m)}_globePoint(e,r,a,u,p,m,y){let w=Zh(e,r,a);if(m){const b=1<.5?L=-1:k<-.5&&(L=1);let R=(e/vt+a.x)/b+L,B=(r/vt+a.y)/b;R=(R-A)*u._pixelsPerMercatorPixel+A,B=(B-I)*u._pixelsPerMercatorPixel+I;const V=[R*u.worldSize,B*u.worldSize,0];On(V,V,m),w=Il(w,V,y)}return On(w,w,p)}_makeGlobeTileDebugBorderBuffer(e,r,a,u,p,m){const y=new Ze,w=new lr,b=new we,A=(k,L,R,B,V)=>{const K=(R-k)/(V-1),ie=(B-L)/(V-1),Y=y.length;for(let te=0;teI*L+R;for(let L=0;Le[m])return null}else{const y=1/a[m];let w=(n[m]-r[m])*y,b=(e[m]-r[m])*y;if(w>b){const A=w;w=b,b=A}if(w>u&&(u=w),bp)return null}return u}function Iw(n,e,r,a,u,p,m,y,w,b,A){const I=a-n,k=u-e,L=p-r,R=m-n,B=y-e,V=w-r,K=A[1]*V-A[2]*B,ie=A[2]*R-A[0]*V,Y=A[0]*B-A[1]*R,te=I*K+k*ie+L*Y;if(Math.abs(te)<1e-15)return null;const ae=1/te,se=b[0]-n,Se=b[1]-e,be=b[2]-r,Re=(se*K+Se*ie+be*Y)*ae;if(Re<0||Re>1)return null;const We=Se*L-be*k,Ie=be*I-se*L,Ne=se*k-Se*I,Ue=(A[0]*We+A[1]*Ie+A[2]*Ne)*ae;return Ue<0||Re+Ue>1?null:(R*We+B*Ie+V*Ne)*ae}function Mw(n,e,r){return(n-e)/(r-e)}function kw(n,e,r,a,u,p,m,y,w){const b=1<{const ie=V?1:0,Y=(L+1)*B-ie,te=R*B,ae=(R+1)*B-ie;K[0]=L*B,K[1]=te,K[2]=Y,K[3]=ae};let I=new Aw(w);const k=[];for(let L=0;L=1;w/=2){const L=y[y.length-1];I=new Aw(w);for(let R=0;R0;){const{idx:R,t:B,nodex:V,nodey:K,depth:ie}=L.pop();if(this.leaves[R]){kw(V,K,ie,e,r,a,u,I,k);const te=1<=Pe[2])return B}continue}let Y=0;for(let te=0;te=b[A[be]]&&(A.splice(be,0,te),Se=!0);Se||(A[Y]=te),Y++}}for(let te=0;te=this.dim+1||r<-1||r>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(e+1)}static pack(e,r){const a=[0,0,0,0],u=jf.getUnpackVector(r);let p=Math.floor((e+u[3])/u[2]);return a[2]=p%256,p=Math.floor(p/256),a[1]=p%256,p=Math.floor(p/256),a[0]=p,a}getPixels(){return new ur({width:this.stride,height:this.stride},this.pixels)}backfillBorder(e,r,a){if(this.dim!==e.dim)throw new Error("dem dimension mismatch");let u=r*this.dim,p=r*this.dim+this.dim,m=a*this.dim,y=a*this.dim+this.dim;switch(r){case-1:u=p-1;break;case 1:p=u+1}switch(a){case-1:m=y-1;break;case 1:y=m+1}const w=-r*this.dim,b=-a*this.dim;for(let A=m;A{this.remove(e,p)},a)),this.data[u].push(p),this.order.push(u),this.order.length>this.max){const m=this._getAndRemoveByKey(this.order[0]);m&&this.onRemove(m)}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){const r=this.data[e].shift();return r.timeout&&clearTimeout(r.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),r.value}getByKey(e){const r=this.data[e];return r?r[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,r){if(!this.has(e))return this;const a=e.wrapped().key,u=r===void 0?0:this.data[a].indexOf(r),p=this.data[a][u];return this.data[a].splice(u,1),p.timeout&&clearTimeout(p.timeout),this.data[a].length===0&&delete this.data[a],this.onRemove(p.value),this.order.splice(this.order.indexOf(a),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(e){const r=[];for(const a in this.data)for(const u of this.data[a])e(u.value)||r.push(u);for(const a of r)this.remove(a.value.tileID,a)}}class eu{constructor(e,r,a){this.func=e,this.mask=r,this.range=a}}eu.ReadOnly=!1,eu.ReadWrite=!0,eu.disabled=new eu(519,eu.ReadOnly,[0,1]);const ny=7680;class iy{constructor(e,r,a,u,p,m){this.test=e,this.ref=r,this.mask=a,this.fail=u,this.depthFail=p,this.pass=m}}iy.disabled=new iy({func:519,mask:0},0,0,ny,ny,ny);class Ho{constructor(e,r,a){this.blendFunction=e,this.blendColor=r,this.mask=a}}Ho.Replace=[1,0],Ho.disabled=new Ho(Ho.Replace,Dn.transparent,[!1,!1,!1,!1]),Ho.unblended=new Ho(Ho.Replace,Dn.transparent,[!0,!0,!0,!0]),Ho.alphaBlended=new Ho([1,771],Dn.transparent,[!0,!0,!0,!0]);const ry=1029,oy=2305;class wo{constructor(e,r,a){this.enable=e,this.mode=r,this.frontFace=a}}wo.disabled=new wo(!1,ry,oy),wo.backCCW=new wo(!0,ry,oy),wo.backCW=new wo(!0,ry,2304),wo.frontCW=new wo(!0,1028,2304),wo.frontCCW=new wo(!0,1028,oy);class Ll extends Ka{constructor(e,r,a){super(),this.id=e,this._onlySymbols=a,r.on("data",u=>{u.dataType==="source"&&u.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&u.dataType==="source"&&u.sourceDataType==="content"&&(this.reload(),this.transform&&this.update(this.transform))}),r.on("error",()=>{this._sourceErrored=!0}),this._source=r,this._tiles={},this._cache=new bM(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=r.minTileCacheSize,this._maxTileCacheSize=r.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new vM,this._isRaster=this._source.type==="raster"||this._source.type==="raster-dem"||this._source.type==="custom"&&this._source._dataType==="raster"}onAdd(e){this.map=e,this._minTileCacheSize=this._minTileCacheSize===void 0&&e?e._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=this._maxTileCacheSize===void 0&&e?e._maxTileCacheSize:this._maxTileCacheSize}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const e in this._tiles){const r=this._tiles[e];if(r.state!=="loaded"&&r.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(e,r){return e.isSymbolTile=this._onlySymbols,this._source.loadTile(e,r)}_unloadTile(e){if(this._source.unloadTile)return this._source.unloadTile(e,()=>{})}_abortTile(e){if(this._source.abortTile)return this._source.abortTile(e,()=>{})}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const r in this._tiles){const a=this._tiles[r];a.upload(e),a.prepare(this.map.style.imageManager)}}getIds(){return dn(this._tiles).map(e=>e.tileID).sort(Rw).map(e=>e.key)}getRenderableIds(e){const r=[];for(const a in this._tiles)this._isIdRenderable(+a,e)&&r.push(this._tiles[a]);return e?r.sort((a,u)=>{const p=a.tileID,m=u.tileID,y=new Ve(p.canonical.x,p.canonical.y)._rotate(this.transform.angle),w=new Ve(m.canonical.x,m.canonical.y)._rotate(this.transform.angle);return p.overscaledZ-m.overscaledZ||w.y-y.y||w.x-y.x}).map(a=>a.tileID.key):r.map(a=>a.tileID).sort(Rw).map(a=>a.key)}hasRenderableParent(e){const r=this.findLoadedParent(e,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(e,r){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(r||!this._tiles[e].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const e in this._tiles)this._tiles[e].state!=="errored"&&this._reloadTile(+e,"reloading")}}_reloadTile(e,r){const a=this._tiles[e];a&&(a.state!=="loading"&&(a.state=r),this._loadTile(a,this._tileLoaded.bind(this,a,e,r)))}_tileLoaded(e,r,a,u){if(u)if(e.state="errored",u.status!==404)this._source.fire(new io(u,{tile:e}));else if(this._source.type==="raster-dem"&&this.usedForTerrain&&this.map.painter.terrain){const p=this.map.painter.terrain;this.update(this.transform,p.getScaledDemTileSize(),!0),p.resetTileLookupCache(this.id)}else this.update(this.transform);else e.timeAdded=no.now(),a==="expired"&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),this._source.type==="raster-dem"&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),this._source.fire(new cs("data",{dataType:"source",tile:e,coord:e.tileID,sourceCacheId:this.id}))}_backfillDEM(e){const r=this.getRenderableIds();for(let u=0;u1||(Math.abs(m)>1&&(Math.abs(m+w)===1?m+=w:Math.abs(m-w)===1&&(m-=w)),p.dem&&u.dem&&(u.dem.backfillBorder(p.dem,m,y),u.neighboringTiles&&u.neighboringTiles[b]&&(u.neighboringTiles[b].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,r,a,u){for(const p in this._tiles){let m=this._tiles[p];if(u[p]||!m.hasData()||m.tileID.overscaledZ<=r||m.tileID.overscaledZ>a)continue;let y=m.tileID;for(;m&&m.tileID.overscaledZ>r+1;){const b=m.tileID.scaledTo(m.tileID.overscaledZ-1);m=this._tiles[b.key],m&&m.hasData()&&(y=b)}let w=y;for(;w.overscaledZ>r;)if(w=w.scaledTo(w.overscaledZ-1),e[w.key]){u[y.key]=y;break}}}findLoadedParent(e,r){if(e.key in this._loadedParentTiles){const a=this._loadedParentTiles[e.key];return a&&a.tileID.overscaledZ>=r?a:null}for(let a=e.overscaledZ-1;a>=r;a--){const u=e.scaledTo(a),p=this._getLoadedTile(u);if(p)return p}}_getLoadedTile(e){const r=this._tiles[e.key];return r&&r.hasData()?r:this._cache.getByKey(this._source.reparseOverscaled?e.wrapped().key:e.canonical.key)}updateCacheSize(e,r){r=r||this._source.tileSize;const a=Math.ceil(e.width/r)+1,u=Math.ceil(e.height/r)+1,p=Math.floor(a*u*5),m=typeof this._minTileCacheSize=="number"?Math.max(this._minTileCacheSize,p):p,y=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,m):m;this._cache.setMaxSize(y)}handleWrapJump(e){const r=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,r){const a={};for(const u in this._tiles){const p=this._tiles[u];p.tileID=p.tileID.unwrapTo(p.tileID.wrap+r),a[p.tileID.key]=p}this._tiles=a;for(const u in this._timers)clearTimeout(this._timers[u]),delete this._timers[u];for(const u in this._tiles)this._setTileReloadTimer(+u,this._tiles[u])}}update(e,r,a){if(this.transform=e,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!a)return;let u;this.updateCacheSize(e,r),this.transform.projection.name!=="globe"&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?u=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(y=>new Ni(y.canonical.z,y.wrap,y.canonical.z,y.canonical.x,y.canonical.y)):(u=e.coveringTiles({tileSize:r||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!a,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(u=u.filter(y=>this._source.hasTile(y)))):u=[];const p=this._updateRetainedTiles(u);if(Dw(this._source.type)&&u.length!==0){const y={},w={},b=Object.keys(p);for(const I of b){const k=p[I],L=this._tiles[I];if(!L||L.fadeEndTime&&L.fadeEndTime<=no.now())continue;const R=this.findLoadedParent(k,Math.max(k.overscaledZ-Ll.maxOverzooming,this._source.minzoom));R&&(this._addTile(R.tileID),y[R.tileID.key]=R.tileID),w[I]=k}const A=u[u.length-1].overscaledZ;for(const I in this._tiles){const k=this._tiles[I];if(p[I]||!k.hasData())continue;let L=k.tileID;for(;L.overscaledZ>A;){L=L.scaledTo(L.overscaledZ-1);const R=this._tiles[L.key];if(R&&R.hasData()&&w[L.key]){p[I]=k.tileID;break}}}for(const I in y)p[I]||(this._coveredTiles[I]=!0,p[I]=y[I])}for(const y in p)this._tiles[y].clearFadeHold();const m=function(y,w){const b=[];for(const A in y)A in w||b.push(A);return b}(this._tiles,p);for(const y of m){const w=this._tiles[y];w.hasSymbolBuckets&&!w.holdingForFade()?w.setHoldDuration(this.map._fadeDuration):w.hasSymbolBuckets&&!w.symbolFadeFinished()||this._removeTile(+y)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(+e)}_updateRetainedTiles(e){const r={};if(e.length===0)return r;const a={},u=e.reduce((b,A)=>Math.min(b,A.overscaledZ),1/0),p=e[0].overscaledZ,m=Math.max(p-Ll.maxOverzooming,this._source.minzoom),y=Math.max(p+Ll.maxUnderzooming,this._source.minzoom),w={};for(const b of e){const A=this._addTile(b);r[b.key]=b,A.hasData()||u=this._source.maxzoom){const k=b.children(this._source.maxzoom)[0],L=this.getTile(k);if(L&&L.hasData()){r[k.key]=k;continue}}else{const k=b.children(this._source.maxzoom);if(r[k[0].key]&&r[k[1].key]&&r[k[2].key]&&r[k[3].key])continue}let I=A.wasRequested();for(let k=b.overscaledZ-1;k>=m;--k){const L=b.scaledTo(k);if(a[L.key]||(a[L.key]=!0,A=this.getTile(L),!A&&I&&(A=this._addTile(L)),A&&(r[L.key]=L,I=A.wasRequested(),A.hasData())))break}}return r}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const r=[];let a,u=this._tiles[e].tileID;for(;u.overscaledZ>0;){if(u.key in this._loadedParentTiles){a=this._loadedParentTiles[u.key];break}r.push(u.key);const p=u.scaledTo(u.overscaledZ-1);if(a=this._getLoadedTile(p),a)break;u=p}for(const p of r)this._loadedParentTiles[p]=a}}_addTile(e){let r=this._tiles[e.key];if(r)return r;r=this._cache.getAndRemove(e),r&&(this._setTileReloadTimer(e.key,r),r.tileID=e,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,r)));const a=!!r;if(!a){const u=this.map?this.map.painter:null;r=new ty(e,this._source.tileSize*e.overscaleFactor(),this.transform.tileZoom,u,this._isRaster),this._loadTile(r,this._tileLoaded.bind(this,r,e.key,r.state))}return r?(r.uses++,this._tiles[e.key]=r,a||this._source.fire(new cs("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null}_setTileReloadTimer(e,r){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const a=r.getExpiryTimeout();a&&(this._timers[e]=setTimeout(()=>{this._reloadTile(e,"expired"),delete this._timers[e]},a))}_removeTile(e){const r=this._tiles[e];r&&(r.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),r.uses>0||(r.hasData()&&r.state!=="reloading"?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(+e);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id)}tilesIn(e,r,a){const u=[],p=this.transform;if(!p)return u;const m=p.projection.name==="globe",y=$o(p.center.lng);for(const w in this._tiles){const b=this._tiles[w];if(a&&b.clearQueryDebugViz(),b.holdingForFade())continue;let A;if(m){const I=b.tileID.canonical;if(I.z===0){const k=[Math.abs(Ke(y,...pd(I,-1))-y),Math.abs(Ke(y,...pd(I,1))-y)];A=[0,2*k.indexOf(Math.min(...k))-1]}else{const k=[Math.abs(Ke(y,...pd(I,-1))-y),Math.abs(Ke(y,...pd(I,0))-y),Math.abs(Ke(y,...pd(I,1))-y)];A=[k.indexOf(Math.min(...k))-1]}}else A=[0];for(const I of A){const k=e.containsTile(b,p,r,I);k&&u.push(k)}}return u}getVisibleCoordinates(e){const r=this.getRenderableIds(e).map(a=>this._tiles[a].tileID);for(const a of r)a.projMatrix=this.transform.calculateProjMatrix(a.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(Dw(this._source.type))for(const e in this._tiles){const r=this._tiles[e];if(r.fadeEndTime!==void 0&&r.fadeEndTime>=no.now())return!0}return!1}setFeatureState(e,r,a){this._state.updateState(e=e||"_geojsonTileLayer",r,a)}removeFeatureState(e,r,a){this._state.removeFeatureState(e=e||"_geojsonTileLayer",r,a)}getFeatureState(e,r){return this._state.getState(e=e||"_geojsonTileLayer",r)}setDependencies(e,r,a){const u=this._tiles[e];u&&u.setDependencies(r,a)}reloadTilesForDependencies(e,r){for(const a in this._tiles)this._tiles[a].hasDependency(e,r)&&this._reloadTile(+a,"reloading");this._cache.filter(a=>!a.hasDependency(e,r))}_preloadTiles(e,r){if(!this._sourceLoaded){const y=()=>{this._sourceLoaded&&(this._source.off("data",y),this._preloadTiles(e,r))};return void this._source.on("data",y)}const a=new Map,u=Array.isArray(e)?e:[e],p=this.map.painter.terrain,m=this.usedForTerrain&&p?p.getScaledDemTileSize():this._source.tileSize;for(const y of u){const w=y.coveringTiles({tileSize:m,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const b of w)a.set(b.key,b);this.usedForTerrain&&y.updateElevation(!1)}Bt(Array.from(a.values()),(y,w)=>{const b=new ty(y,this._source.tileSize*y.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(b,A=>{this._source.type==="raster-dem"&&b.dem&&this._backfillDEM(b),w(A,b)})},r)}}function Rw(n,e){const r=Math.abs(2*n.wrap)-+(n.wrap<0),a=Math.abs(2*e.wrap)-+(e.wrap<0);return n.overscaledZ-e.overscaledZ||a-r||e.canonical.y-n.canonical.y||e.canonical.x-n.canonical.x}function Dw(n){return n==="raster"||n==="image"||n==="video"||n==="custom"}function pd(n,e){const r=1<=0&&I[3]>=0&&w.insert(y,I[0],I[1],I[2],I[3])}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new N_(new If(this.rawTileData)).layers,this.sourceLayerCoder=new ww(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={};for(const e in this.vtLayers)this.vtFeatures[e]=[]}return this.vtLayers}query(e,r,a,u){this.loadVTLayers();const p=e.params||{},m=Mc(p.filter),y=e.tileResult,w=e.transform,b=y.bufferedTilespaceBounds,A=this.grid.query(b.min.x,b.min.y,b.max.x,b.max.y,(R,B,V,K)=>a1(y.bufferedTilespaceGeometry,R,B,V,K));A.sort(EM);let I=null;w.elevation&&A.length>0&&(I=Vf.create(w.elevation,this.tileID));const k={};let L;for(let R=0;R(K||(K=Es(ie,this.tileID.canonical,e.tileTransform)),Y.queryIntersectsFeature(y,ie,te,K,this.z,e.transform,e.pixelPosMatrix,I,ae)))}return k}loadMatchingFeature(e,r,a,u,p,m,y,w,b){const{featureIndex:A,bucketIndex:I,sourceLayerIndex:k,layoutVertexArrayOffset:L}=r,R=this.bucketLayerIDs[I];if(u&&!function(ie,Y){for(let te=0;te=0)return!0;return!1}(u,R))return;const B=this.sourceLayerCoder.decode(k),V=this.vtLayers[B].feature(A);if(a.needGeometry){const ie=Ml(V,!0);if(!a.filter(new C(this.tileID.overscaledZ),ie,this.tileID.canonical))return}else if(!a.filter(new C(this.tileID.overscaledZ),V))return;const K=this.getId(V,B);for(let ie=0;ie{const y=e instanceof H?e.get(m):null;return y&&y.evaluate?y.evaluate(r,a,u):y})}function EM(n,e){return e-n}ht(Ow,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});class Fw{constructor(e,r){this.width=e,this.height=r,this.nextRow=0,this.image=new Ts({width:e,height:r}),this.positions={},this.uploaded=!1}getDash(e,r){const a=this.getKey(e,r);return this.positions[a]}trim(){const e=this.width,r=this.height=pi(this.nextRow);this.image.resize({width:e,height:r})}getKey(e,r){return e.join(",")+r}getDashRanges(e,r,a){const u=[];let p=e.length%2==1?-e[e.length-1]*a:0,m=e[0]*a,y=!0;u.push({left:p,right:m,isDash:y,zeroLength:e[0]===0});let w=e[0];for(let b=1;b1&&(w=e[++y]);const A=Math.abs(b-w.left),I=Math.abs(b-w.right),k=Math.min(A,I);let L;const R=p/a*(u+1);if(w.isDash){const B=u-Math.abs(R);L=Math.sqrt(k*k+B*B)}else L=u-Math.sqrt(k*k+R*R);this.image.data[m+b]=Math.max(0,Math.min(255,L+128))}}}addRegularDash(e,r){for(let w=e.length-1;w>=0;--w){const b=e[w],A=e[w+1];b.zeroLength?e.splice(w,1):A&&A.isDash===b.isDash&&(A.left=b.left,e.splice(w,1))}const a=e[0],u=e[e.length-1];a.isDash===u.isDash&&(a.left=u.left-this.width,u.right=a.right+this.width);const p=this.width*this.nextRow;let m=0,y=e[m];for(let w=0;w1&&(y=e[++m]);const b=Math.abs(w-y.left),A=Math.abs(w-y.right),I=Math.min(b,A);this.image.data[p+w]=Math.max(0,Math.min(255,(y.isDash?I:-I)+r+128))}}addDash(e,r){const a=this.getKey(e,r);if(this.positions[a])return this.positions[a];const u=r==="round",p=u?7:0,m=2*p+1;if(this.nextRow+m>this.height)return vn("LineAtlas out of space"),null;e.length===0&&e.push(1);let y=0;for(let A=0;A=Ne.maxzoom||Ne.visibility!=="none"&&(sy(Ie,this.zoom,a),(w[Ne.id]=Ne.createBucket({index:y.bucketLayerIDs.length,layers:Ie,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Re,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:a})).populate(We,A,this.tileID.canonical,this.tileTransform),y.bucketLayerIDs.push(Ie.map(Ue=>Ue.id)))}}let k,L,R,B;b.trim();const V={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},K=()=>{if(k)return p(k);if(L&&R&&B){const ae=new Uw(L),se=new W1(R,B);for(const Se in w){const be=w[Se];be instanceof ma?(sy(be.layers,this.zoom,a),KI(be,L,ae.positions,R,se.iconPositions,this.showCollisionBoxes,a,this.tileID.canonical,this.tileZoom,this.projection)):be.hasPattern&&(be instanceof Sf||be instanceof xf||be instanceof td)&&(sy(be.layers,this.zoom,a),be.addFeatures(A,this.tileID.canonical,se.patternPositions,a,this.tileTransform))}this.status="done",p(null,{buckets:dn(w).filter(Se=>!Se.isEmpty()),featureIndex:y,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ae.image,lineAtlas:b,imageAtlas:se,glyphMap:this.returnDependencies?L:null,iconMap:this.returnDependencies?R:null,glyphPositions:this.returnDependencies?ae.positions:null})}},ie=Mt(A.glyphDependencies,ae=>Object.keys(ae).map(Number));Object.keys(ie).length?u.send("getGlyphs",{uid:this.uid,stacks:ie},(ae,se)=>{k||(k=ae,L=se,K())},void 0,!1,V):L={};const Y=Object.keys(A.iconDependencies);Y.length?u.send("getImages",{icons:Y,source:this.source,tileID:this.tileID,type:"icons"},(ae,se)=>{k||(k=ae,R=se,K())},void 0,!1,V):R={};const te=Object.keys(A.patternDependencies);te.length?u.send("getImages",{icons:te,source:this.source,tileID:this.tileID,type:"patterns"},(ae,se)=>{k||(k=ae,B=se,K())},void 0,!1,V):B={},K()}}function sy(n,e,r){const a=new C(e);for(const u of n)u.recalculate(a,r)}class jw{constructor(e){this.entries={},this.scheduler=e}request(e,r,a,u){const p=this.entries[e]=this.entries[e]||{callbacks:[]};if(p.result){const[m,y]=p.result;return this.scheduler?this.scheduler.add(()=>{u(m,y)},r):u(m,y),()=>{}}return p.callbacks.push(u),p.cancel||(p.cancel=a((m,y)=>{p.result=[m,y];for(const w of p.callbacks)this.scheduler?this.scheduler.add(()=>{w(m,y)},r):w(m,y);setTimeout(()=>delete this.entries[e],3e3)})),()=>{p.result||(p.callbacks=p.callbacks.filter(m=>m!==u),p.callbacks.length||(p.cancel(),delete this.entries[e]))}}}function Vw(n,e,r){const a=JSON.stringify(n.request);return n.data&&(this.deduped.entries[a]={result:[null,n.data]}),this.deduped.request(a,{type:"parseTile",isSymbolTile:n.isSymbolTile,zoom:n.tileZoom},u=>{const p=Gs(n.request,(m,y,w,b)=>{m?u(m):y&&u(null,{vectorTile:r?void 0:new N_(new If(y)),rawData:y,cacheControl:w,expires:b})});return()=>{p.cancel(),u()}},e)}const Gw=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class ay{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[r,a]=new Uint8Array(e,0,2);if(r!==219)throw new Error("Data does not appear to be in a KDBush format.");const u=a>>4;if(u!==1)throw new Error(`Got v${u} data when expected v1.`);const p=Gw[15&a];if(!p)throw new Error("Unrecognized array type.");const[m]=new Uint16Array(e,2,1),[y]=new Uint32Array(e,4,1);return new ay(y,m,p,e)}constructor(e,r=64,a=Float64Array,u){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=a,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const p=Gw.indexOf(this.ArrayType),m=2*e*this.ArrayType.BYTES_PER_ELEMENT,y=e*this.IndexArrayType.BYTES_PER_ELEMENT,w=(8-y%8)%8;if(p<0)throw new Error(`Unexpected typed array class: ${a}.`);u&&u instanceof ArrayBuffer?(this.data=u,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+m+y+w),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+p]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=e)}add(e,r){const a=this._pos>>1;return this.ids[a]=a,this.coords[this._pos++]=e,this.coords[this._pos++]=r,a}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return ly(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,r,a,u){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:p,coords:m,nodeSize:y}=this,w=[0,p.length-1,0],b=[];for(;w.length;){const A=w.pop()||0,I=w.pop()||0,k=w.pop()||0;if(I-k<=y){for(let V=k;V<=I;V++){const K=m[2*V],ie=m[2*V+1];K>=e&&K<=a&&ie>=r&&ie<=u&&b.push(p[V])}continue}const L=k+I>>1,R=m[2*L],B=m[2*L+1];R>=e&&R<=a&&B>=r&&B<=u&&b.push(p[L]),(A===0?e<=R:r<=B)&&(w.push(k),w.push(L-1),w.push(1-A)),(A===0?a>=R:u>=B)&&(w.push(L+1),w.push(I),w.push(1-A))}return b}within(e,r,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:u,coords:p,nodeSize:m}=this,y=[0,u.length-1,0],w=[],b=a*a;for(;y.length;){const A=y.pop()||0,I=y.pop()||0,k=y.pop()||0;if(I-k<=m){for(let V=k;V<=I;V++)qw(p[2*V],p[2*V+1],e,r)<=b&&w.push(u[V]);continue}const L=k+I>>1,R=p[2*L],B=p[2*L+1];qw(R,B,e,r)<=b&&w.push(u[L]),(A===0?e-a<=R:r-a<=B)&&(y.push(k),y.push(L-1),y.push(1-A)),(A===0?e+a>=R:r+a>=B)&&(y.push(L+1),y.push(I),y.push(1-A))}return w}}function ly(n,e,r,a,u,p){if(u-a<=r)return;const m=a+u>>1;$w(n,e,m,a,u,p),ly(n,e,r,a,m-1,1-p),ly(n,e,r,m+1,u,1-p)}function $w(n,e,r,a,u,p){for(;u>a;){if(u-a>600){const b=u-a+1,A=r-a+1,I=Math.log(b),k=.5*Math.exp(2*I/3),L=.5*Math.sqrt(I*k*(b-k)/b)*(A-b/2<0?-1:1);$w(n,e,r,Math.max(a,Math.floor(r-A*k/b+L)),Math.min(u,Math.floor(r+(b-A)*k/b+L)),p)}const m=e[2*r+p];let y=a,w=u;for(fd(n,e,a,r),e[2*u+p]>m&&fd(n,e,a,u);ym;)w--}e[2*a+p]===m?fd(n,e,a,w):(w++,fd(n,e,w,u)),w<=r&&(a=w+1),r<=w&&(u=w-1)}}function fd(n,e,r,a){cy(n,r,a),cy(e,2*r,2*a),cy(e,2*r+1,2*a+1)}function cy(n,e,r){const a=n[e];n[e]=n[r],n[r]=a}function qw(n,e,r,a){const u=n-r,p=e-a;return u*u+p*p}s.ARRAY_TYPE=cr,s.AUTH_ERR_MSG=ce,s.Aabb=Fi,s.Actor=class{constructor(n,e,r){this.target=n,this.parent=e,this.mapId=r,this.callbacks={},this.cancelCallbacks={},Br(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=to()?n:M,this.scheduler=new _M}send(n,e,r,a,u=!1,p){const m=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(r.metadata=p,this.callbacks[m]=r);const y=Us(this.globalScope)?void 0:[];return this.target.postMessage({id:m,type:n,hasCallback:!!r,targetMapId:a,mustQueue:u,sourceMapId:this.mapId,data:aa(e,y)},y),{cancel:()=>{r&&delete this.callbacks[m],this.target.postMessage({id:m,type:"",targetMapId:a,sourceMapId:this.mapId})}}}receive(n){const e=n.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(e.type===""){const a=this.cancelCallbacks[r];delete this.cancelCallbacks[r],a&&a.cancel()}else if(e.mustQueue||to()){const a=this.callbacks[r];this.cancelCallbacks[r]=this.scheduler.add(()=>this.processTask(r,e),a&&a.metadata||{type:"message"})}else this.processTask(r,e)}processTask(n,e){if(e.type===""){const r=this.callbacks[n];delete this.callbacks[n],r&&(e.error?r(_s(e.error)):r(null,_s(e.data)))}else{const r=Us(this.globalScope)?void 0:[],a=e.hasCallback?(p,m)=>{delete this.cancelCallbacks[n],this.target.postMessage({id:n,type:"",sourceMapId:this.mapId,error:p?aa(p):null,data:aa(m,r)},r)}:p=>{},u=_s(e.data);if(this.parent[e.type])this.parent[e.type](e.sourceMapId,u,a);else if(this.parent.getWorkerSource){const p=e.type.split(".");this.parent.getWorkerSource(e.sourceMapId,p[0],u.source)[p[1]](u,a)}else a(new Error(`Could not find function ${e.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},s.CanonicalTileID=Tf,s.Color=Dn,s.ColorMode=Ho,s.CullFaceMode=wo,s.DEMData=jf,s.DataConstantProperty=O,s.DedupedRequest=jw,s.DepthMode=eu,s.EXTENT=vt,s.Elevation=class{isDataAvailableAtPoint(n){const e=this._source();if(this.isUsingMockSource()||!e||n.y<0||n.y>1)return!1;const r=e.getSource().maxzoom,a=1<1)return e;const u=a.getSource().maxzoom,p=1<{const p=this.getAtTileOffset(n,u.x,u.y),m=a.upVector(n.canonical,u.x,u.y);return Sr(m,m,p*a.upVectorScale(n.canonical,e,r).metersToTile),m}}getForTilePoints(n,e,r,a){if(this.isUsingMockSource())return!1;const u=Vf.create(this,n,a);return!!u&&(e.forEach(p=>{p[2]=this.exaggeration()*u.getElevationAt(p[0],p[1],r)}),!0)}getMinMaxForTile(n){if(this.isUsingMockSource())return null;const e=this.findDEMTileFor(n);if(!e||!e.dem)return null;const r=e.dem.tree,a=e.tileID,u=1<{let k=b===p-1?b-2:b===0?b:b-1;return k+=I?24575:0,[k,A]};for(let b=0;bthis._skuTokenExpiresAt}transformRequest(n,e){return this._transformRequestFn&&this._transformRequestFn(n,e)||{url:n}}normalizeStyleURL(n,e){if(!ge(n))return n;const r=nt(n);return r.path=`/styles/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeGlyphsURL(n,e){if(!ge(n))return n;const r=nt(n);return r.path=`/fonts/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeSourceURL(n,e,r,a){if(!ge(n))return n;const u=nt(n);return u.path=`/v4/${u.authority}.json`,u.params.push("secure"),r&&u.params.push(`language=${r}`),a&&u.params.push(`worldview=${a}`),this._makeAPIURL(u,this._customAccessToken||e)}normalizeSpriteURL(n,e,r,a){const u=nt(n);return ge(n)?(u.path=`/styles/v1${u.path}/sprite${e}${r}`,this._makeAPIURL(u,this._customAccessToken||a)):(u.path+=`${e}${r}`,Ye(u))}normalizeTileURL(n,e,r){if(this._isSkuTokenExpired()&&this._createSkuToken(),n&&!ge(n))return n;const a=nt(n);a.path=a.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${e||r&&a.authority!=="raster"&&r===512?"@2x":""}${oe.supported?".webp":"$1"}`),a.authority==="raster"?a.path=`/${X.RASTER_URL_PREFIX}${a.path}`:(a.path=a.path.replace(/^.+\/v4\//,"/"),a.path=`/${X.TILE_URL_VERSION}${a.path}`);const u=this._customAccessToken||function(p){for(const m of p){const y=m.match(/^access_token=(.*)$/);if(y)return y[1]}return null}(a.params)||X.ACCESS_TOKEN;return X.REQUIRE_ACCESS_TOKEN&&u&&this._skuToken&&a.params.push(`sku=${this._skuToken}`),this._makeAPIURL(a,u)}canonicalizeTileURL(n,e){const r=nt(n);if(!r.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!r.path.match(/\.[\w]+$/))return n;let a="mapbox://";r.path.match(/^\/raster\/v1\//)?a+=`raster/${r.path.replace(`/${X.RASTER_URL_PREFIX}/`,"")}`:a+=`tiles/${r.path.replace(`/${X.TILE_URL_VERSION}/`,"")}`;let u=r.params;return e&&(u=u.filter(p=>!p.match(/^access_token=/))),u.length&&(a+=`?${u.join("&")}`),a}canonicalizeTileset(n,e){const r=!!e&&ge(e),a=[];for(const u of n.tiles||[])xe(u)?a.push(this.canonicalizeTileURL(u,r)):a.push(u);return a}_makeAPIURL(n,e){const r="See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes",a=nt(X.API_URL);if(n.protocol=a.protocol,n.authority=a.authority,n.protocol==="http"){const u=n.params.indexOf("secure");u>=0&&n.params.splice(u,1)}if(a.path!=="/"&&(n.path=`${a.path}${n.path}`),!X.REQUIRE_ACCESS_TOKEN)return Ye(n);if(e=e||X.ACCESS_TOKEN,!this._silenceAuthErrors){if(!e)throw new Error(`An API access token is required to use Mapbox GL. ${r}`);if(e[0]==="s")throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${r}`)}return n.params=n.params.filter(u=>u.indexOf("access_token")===-1),n.params.push(`access_token=${e||""}`),Ye(n)}},s.ResourceType=ss,s.SegmentVector=jn,s.SourceCache=Ll,s.StencilMode=iy,s.StructArrayLayout1ui2=lr,s.StructArrayLayout2f1f2i16=wt,s.StructArrayLayout2i4=Ze,s.StructArrayLayout2ui4=si,s.StructArrayLayout3f12=Ot,s.StructArrayLayout3ui6=mt,s.StructArrayLayout4i8=Be,s.StructArrayLayout5f20=sn,s.Texture=dd,s.Tile=ty,s.Transitionable=D,s.Uniform1f=af,s.Uniform1i=class extends xs{constructor(n){super(n),this.current=0}set(n,e,r){this.fetchUniformLocation(n,e)&&this.current!==r&&(this.current=r,this.gl.uniform1i(this.location,r))}},s.Uniform2f=class extends xs{constructor(n){super(n),this.current=[0,0]}set(n,e,r){this.fetchUniformLocation(n,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1])))}},s.Uniform3f=class extends xs{constructor(n){super(n),this.current=[0,0,0]}set(n,e,r){this.fetchUniformLocation(n,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2])))}},s.Uniform4f=Sx,s.UniformColor=Ax,s.UniformMatrix2f=class extends xs{constructor(n){super(n),this.current=tC}set(n,e,r){if(this.fetchUniformLocation(n,e)){for(let a=0;a<4;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix2fv(this.location,!1,r);break}}}},s.UniformMatrix3f=class extends xs{constructor(n){super(n),this.current=eC}set(n,e,r){if(this.fetchUniformLocation(n,e)){for(let a=0;a<9;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix3fv(this.location,!1,r);break}}}},s.UniformMatrix4f=class extends xs{constructor(n){super(n),this.current=QA}set(n,e,r){if(this.fetchUniformLocation(n,e)){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let a=1;a<16;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}}},s.UnwrappedTileID=z1,s.ValidationError=ct,s.VectorTileFeature=bf,s.VectorTileWorkerSource=class extends Ka{constructor(n,e,r,a,u){super(),this.actor=n,this.layerIndex=e,this.availableImages=r,this.loadVectorData=u||Vw,this.loading={},this.loaded={},this.deduped=new jw(n.scheduler),this.isSpriteLoaded=a,this.scheduler=n.scheduler}loadTile(n,e){const r=n.uid,a=n&&n.request,u=a&&a.collectResourceTiming,p=this.loading[r]=new TM(n);p.abort=this.loadVectorData(n,(m,y)=>{const w=!this.loading[r];if(delete this.loading[r],w||m||!y)return p.status="done",w||(this.loaded[r]=p),e(m);const b=y.rawData,A={};y.expires&&(A.expires=y.expires),y.cacheControl&&(A.cacheControl=y.cacheControl),p.vectorTile=y.vectorTile||new N_(new If(b));const I=()=>{p.parse(p.vectorTile,this.layerIndex,this.availableImages,this.actor,(k,L)=>{if(k||!L)return e(k);const R={};if(u){const B=ju(a);B.length>0&&(R.resourceTiming=JSON.parse(JSON.stringify(B)))}e(null,_n({rawTileData:b.slice(0)},L,A,R))})};this.isSpriteLoaded?I():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(I,{type:"parseTile",isSymbolTile:n.isSymbolTile,zoom:n.tileZoom}):I()}),this.loaded=this.loaded||{},this.loaded[r]=p})}reloadTile(n,e){const r=this.loaded,a=n.uid,u=this;if(r&&r[a]){const p=r[a];p.showCollisionBoxes=n.showCollisionBoxes,p.enableTerrain=!!n.enableTerrain,p.projection=n.projection,p.tileTransform=zl(n.tileID.canonical,n.projection);const m=(y,w)=>{const b=p.reloadCallback;b&&(delete p.reloadCallback,p.parse(p.vectorTile,u.layerIndex,this.availableImages,u.actor,b)),e(y,w)};p.status==="parsing"?p.reloadCallback=m:p.status==="done"&&(p.vectorTile?p.parse(p.vectorTile,this.layerIndex,this.availableImages,this.actor,m):m())}}abortTile(n,e){const r=n.uid,a=this.loading[r];a&&(a.abort&&a.abort(),delete this.loading[r]),e()}removeTile(n,e){const r=this.loaded,a=n.uid;r&&r[a]&&delete r[a],e()}},s.WritingMode=Cr,s.ZoomDependentExpression=fl,s.add=bs,s.addDynamicAttributes=Ff,s.adjoint=function(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=e[4],y=e[5],w=e[6],b=e[7],A=e[8];return n[0]=m*A-y*b,n[1]=u*b-a*A,n[2]=a*y-u*m,n[3]=y*w-p*A,n[4]=r*A-u*w,n[5]=u*p-r*y,n[6]=p*b-m*w,n[7]=a*w-r*b,n[8]=r*m-a*p,n},s.asyncAll=Bt,s.bezier=wr,s.bindAll=Br,s.boundsAttributes=Tw,s.bufferConvexPolygon=function(n,e){const r=[];for(let a=0;aic&&(n.getActor().send("enforceCacheSizeLimit",nc),Ha=0)},s.calculateGlobeLabelMatrix=function(n,e){const{x:r,y:a}=n.point,u=Xx(r,a,n.worldSize/n._pixelsPerMercatorPixel,0,0);return Tl(u,u,x_(Go(e)))},s.calculateGlobeMatrix=function(n){const{x:e,y:r}=n.point,{lng:a,lat:u}=n._center;return Xx(e,r,n.worldSize,a,u)},s.calculateGlobeMercatorMatrix=function(n){const e=n.pixelsPerMeter,r=e/yo(1,n.center.lat),a=go(new Float64Array(16));return Fh(a,a,[n.point.x,n.point.y,0]),Sl(a,a,[r,r,e]),Float32Array.from(a)},s.circumferenceAtLatitude=b_,s.clamp=Ke,s.clearTileCache=function(n){if(!Wa())return;const e=M.caches.delete(js);n&&e.catch(n).then(()=>n())},s.clipLine=sw,s.clone=function(n){var e=new cr(16);return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],e},s.clone$1=Ai,s.collisionCircleLayout=bI,s.config=X,s.conjugate=function(n,e){return n[0]=-e[0],n[1]=-e[1],n[2]=-e[2],n[3]=e[3],n},s.create=function(){var n=new cr(16);return cr!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n},s.create$1=Mx,s.createExpression=ra,s.createLayout=_e,s.createStyleLayer=function(n){return n.type==="custom"?new pM(n):new mM[n.type](n)},s.cross=p_,s.degToRad=St,s.distance=function(n,e){return Math.hypot(e[0]-n[0],e[1]-n[1],e[2]-n[2])},s.div=function(n,e,r){return n[0]=e[0]/r[0],n[1]=e[1]/r[1],n[2]=e[2]/r[2],n},s.dot=qr,s.earthRadius=Hh,s.ease=Or,s.easeCubicInOut=Li,s.ecefToLatLng=function([n,e,r]){const a=Math.hypot(n,e,r),u=Math.atan2(n,r),p=.5*Math.PI-Math.acos(-e/a);return new ln(Vt(u),Vt(p))},s.emitValidationErrors=ef,s.endsWith=yn,s.enforceCacheSizeLimit=function(n){os(),ir&&ir.then(e=>{e.keys().then(r=>{for(let a=0;ap&&(a+=(n[u]-p)*(n[u]-p)),e[u]0){const R=180/a;kx(L,L,[R/b+1,0,0,0,R/A+1,0,-.5*R/I,.5*R/k,1])}return L[2]=w,L[5]=n.x,L[8]=n.y,L},s.getImage=ee,s.getJSON=function(n,e){return ls(_n(n,{type:"json"}),e)},s.getLatitudinalLod=function(n){const e=Ei-5;n=Ke(n,-e,e)/e*90;const r=Math.pow(Math.abs(Math.sin(St(n))),3);return Math.round(r*(qh.length-1))},s.getMapSessionAPI=ii,s.getPerformanceMeasurement=ju,s.getProjection=vw,s.getRTLTextPluginStatus=v,s.getReferrer=as,s.getTilePoint=function(n,{x:e,y:r},a=0){return new Ve(((e-a)*n.scale-n.x)*vt,(r*n.scale-n.y)*vt)},s.getTileVec3=function(n,e,r=0){return Oc(((e.x-r)*n.scale-n.x)*vt,(e.y*n.scale-n.y)*vt,Qx(e.z,e.y))},s.getVideo=function(n,e){const r=M.document.createElement("video");r.muted=!0,r.onloadstart=function(){e(null,r)};for(let a=0;a{}}},s.globeCenterToScreenPoint=function(n){const e=[0,0,0],r=go(new Float64Array(16));return Tl(r,n.pixelMatrix,n.globeMatrix),On(e,e,r),new Ve(e[0],e[1])},s.globeDenormalizeECEF=x_,s.globeECEFOrigin=function(n,e){const r=[0,0,0];return On(r,r,Wh(Go(e.canonical))),On(r,r,n),r},s.globeMetersToEcef=uf,s.globeNormalizeECEF=Wh,s.globePixelsToTileUnits=function(n,e){return vt/(512*Math.pow(2,n))*df(Go(e))},s.globePoleMatrixForTile=function(n,e,r){const a=go(new Float64Array(16)),u=(e/(1<0;return a===0&&!u&&!m&&p},s.identity=go,s.identity$1=Nx,s.invert=c_,s.isFullscreen=function(){return!!M.document.fullscreenElement||!!M.document.webkitFullscreenElement},s.isLngLatBehindGlobe=w_,s.isMapAuthenticated=function(n){return Ci.has(n)},s.isMapboxURL=ge,s.isSafariWithAntialiasingBug=function(n){const e=n.navigator?n.navigator.userAgent:null;return!!Us(n)&&e&&(e.match("Version/15.4")||e.match("Version/15.5")||e.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},s.latFromMercatorY=bi,s.latLngToECEF=Fc,s.len=uC,s.length=Nh,s.length$1=function(n){return Math.hypot(n[0],n[1],n[2],n[3])},s.lngFromMercatorX=Ar,s.loadVectorTile=Vw,s.makeRequest=ls,s.mapValue=function(n,e,r,a,u){return Ke((n-e)/(r-e)*(u-a)+a,a,u)},s.mercatorScale=e1,s.mercatorXfromLng=$o,s.mercatorYfromLat=qo,s.mercatorZfromAltitude=yo,s.mul=lC,s.mul$1=cC,s.multiply=Tl,s.multiply$1=kx,s.multiply$2=Rx,s.nextPowerOfTwo=pi,s.normalize=Bi,s.normalize$1=hC,s.normalize$2=Bx,s.number=Zt,s.ortho=function(n,e,r,a,u,p,m){var y=1/(e-r),w=1/(a-u),b=1/(p-m);return n[0]=-2*y,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*w,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*b,n[11]=0,n[12]=(e+r)*y,n[13]=(u+a)*w,n[14]=(m+p)*b,n[15]=1,n},s.pbf=N1,s.perspective=function(n,e,r,a,u){var p,m=1/Math.tan(e/2);return n[0]=m/r,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=m,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,u!=null&&u!==1/0?(n[10]=(u+a)*(p=1/(a-u)),n[14]=2*u*a*p):(n[10]=-1,n[14]=-2*a),n},s.pick=function(n,e){const r={};for(let a=0;a0&&r[0]<=n.width&&r[1]>0&&r[1]<=n.height&&!w_(n,new ln(n.center.lat,90)),a[0]>0&&a[0]<=n.width&&a[1]>0&&a[1]<=n.height&&!w_(n,new ln(n.center.lat,-90))]},s.polygonContainsPoint=kl,s.polygonIntersectsBox=a1,s.polygonIntersectsPolygon=i1,s.polygonizeBounds=function(n,e,r=0,a=!0){const u=new Ve(r,r),p=n.sub(u),m=e.add(u),y=[p,new Ve(m.x,p.y),m,new Ve(p.x,m.y)];return a&&y.push(p.clone()),y},s.posAttributes=$h,s.postMapLoadEvent=Fn,s.postPerformanceEvent=Yn,s.postTurnstileEvent=$t,s.potpack=G_,s.prevPowerOfTwo=function(n){return n<=1?1:Math.pow(2,Math.floor(Math.log(n)/Math.LN2))},s.radToDeg=Vt,s.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],s.registerForPluginStateChange=function(n){return n({pluginStatus:d,pluginURL:o}),_.on("pluginStateChange",n),n},s.removeAuthState=function(n){Ci.delete(n)},s.renderColorRamp=k_,s.resample=t1,s.rotateX=u_,s.rotateX$1=Ux,s.rotateY=cf,s.rotateY$1=jx,s.rotateZ=function(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[0],m=e[1],y=e[2],w=e[3],b=e[4],A=e[5],I=e[6],k=e[7];return e!==n&&(n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[0]=p*u+b*a,n[1]=m*u+A*a,n[2]=y*u+I*a,n[3]=w*u+k*a,n[4]=b*u-p*a,n[5]=A*u-m*a,n[6]=I*u-y*a,n[7]=k*u-w*a,n},s.rotateZ$1=function(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w+u*y,n[1]=u*w-a*y,n[2]=p*w+m*y,n[3]=m*w-p*y,n},s.scale=Sl,s.scale$1=Ox,s.scale$2=Sr,s.scaleAndAdd=Vh,s.set=function(n,e,r,a){return n[0]=e,n[1]=r,n[2]=a,n},s.setCacheLimits=function(n,e){nc=n,ic=e},s.setColumn=function(n,e,r){n[4*e+0]=r[0],n[4*e+1]=r[1],n[4*e+2]=r[2],n[4*e+3]=r[3]},s.setRTLTextPlugin=function(n,e,r=!1){if(d===Lh||d===Rh||d===Dh)throw new Error("setRTLTextPlugin cannot be called multiple times.");o=no.resolveURL(n),d=Lh,la=e,f(),r||E()},s.smoothstep=Tt,s.spec=Le,s.squaredLength=function(n){var e=n[0],r=n[1],a=n[2];return e*e+r*r+a*a},s.storeAuthState=function(n,e){e?Ci.add(n):Ci.delete(n)},s.sub=_o,s.subtract=d_,s.symbolSize=EI,s.tileAABB=function(n,e,r,a,u,p,m,y,w){if(w.name==="globe")return gC(n,e,new Tf(r,a,u));const b=zl({z:r,x:a,y:u},w);return new Fi([(p+b.x/b.scale)*e,e*(b.y/b.scale),m],[(p+b.x2/b.scale)*e,e*(b.y2/b.scale),y])},s.tileCornersToBounds=hf,s.tileTransform=zl,s.transformMat3=function(n,e,r){var a=e[0],u=e[1],p=e[2];return n[0]=a*r[0]+u*r[3]+p*r[6],n[1]=a*r[1]+u*r[4]+p*r[7],n[2]=a*r[2]+u*r[5]+p*r[8],n},s.transformMat4=On,s.transformMat4$1=Al,s.transformQuat=Dx,s.transitionTileAABBinECEF=Zx,s.translate=Fh,s.transpose=function(n,e){if(n===e){var r=e[1],a=e[2],u=e[5];n[1]=e[3],n[2]=e[6],n[3]=r,n[5]=e[7],n[6]=a,n[7]=u}else n[0]=e[0],n[1]=e[3],n[2]=e[6],n[3]=e[1],n[4]=e[4],n[5]=e[7],n[6]=e[2],n[7]=e[5],n[8]=e[8];return n},s.triggerPluginCompletionEvent=c,s.uniqueId=Wi,s.updateGlobeVertexNormal=function(n,e,r,a,u){const p=5*e+2;n.float32[p+0]=r,n.float32[p+1]=a,n.float32[p+2]=u},s.validateCustomStyleLayer=function(n){const e=[],r=n.id;return r===void 0&&e.push({message:`layers.${r}: missing required property "id"`}),n.render===void 0&&e.push({message:`layers.${r}: missing required method "render"`}),n.renderingMode&&n.renderingMode!=="2d"&&n.renderingMode!=="3d"&&e.push({message:`layers.${r}: property "renderingMode" must be either "2d" or "3d"`}),e},s.validateFilter=n=>ar(vl(n)),s.validateFog=n=>ar(Yp(n)),s.validateLayer=n=>ar(Wp(n)),s.validateLight=n=>ar(Kp(n)),s.validateSource=n=>ar(Xp(n)),s.validateStyle=Qp,s.validateTerrain=n=>ar(Ih(n)),s.values=dn,s.vectorTile=wf,s.version=F,s.warnOnce=vn,s.window=M,s.wrap=xt}),x(["./shared"],function(s){function M(ne){if(typeof ne=="number"||typeof ne=="boolean"||typeof ne=="string"||ne==null)return JSON.stringify(ne);if(Array.isArray(ne)){let U="[";for(const ee of ne)U+=`${M(ee)},`;return`${U}]`}let N="{";for(const U of Object.keys(ne).sort())N+=`${U}:${M(ne[U])},`;return`${N}}`}function F(ne){let N="";for(const U of s.refProperties)N+=`/${M(ne[U])}`;return N}class q{constructor(N){this.keyCache={},N&&this.replace(N)}replace(N){this._layerConfigs={},this._layers={},this.update(N,[])}update(N,U){for(const ce of N)this._layerConfigs[ce.id]=ce,(this._layers[ce.id]=s.createStyleLayer(ce)).compileFilter(),this.keyCache[ce.id]&&delete this.keyCache[ce.id];for(const ce of U)delete this.keyCache[ce],delete this._layerConfigs[ce],delete this._layers[ce];this.familiesBySource={};const ee=function(ce,ge){const xe={};for(let me=0;methis._layers[nt.id]),xe=ge[0];if(xe.visibility==="none")continue;const ve=xe.source||"";let me=this.familiesBySource[ve];me||(me=this.familiesBySource[ve]={});const Me=xe.sourceLayer||"_geojsonTileLayer";let et=me[Me];et||(et=me[Me]=[]),et.push(ge)}}}class X{loadTile(N,U){const{uid:ee,encoding:ce,rawImageData:ge,padding:xe,buildQuadTree:ve}=N,me=s.window.ImageBitmap&&ge instanceof s.window.ImageBitmap?this.getImageData(ge,xe):ge;U(null,new s.DEMData(ee,me,ce,xe<1,ve))}getImageData(N,U){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(N.width,N.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=N.width,this.offscreenCanvas.height=N.height,this.offscreenCanvasContext.drawImage(N,0,0,N.width,N.height);const ee=this.offscreenCanvasContext.getImageData(-U,-U,N.width+2*U,N.height+2*U);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),ee}}function oe(ne,N){if(ne.length!==0){Ae(ne[0],N);for(var U=1;U=Math.abs(ve)?U-me+ve:ve-me+U,U=me}U+ee>=0!=!!N&&ne.reverse()}var fe=s.getDefaultExportFromCjs(function ne(N,U){var ee,ce=N&&N.type;if(ce==="FeatureCollection")for(ee=0;ee>31}function zi(ne,N){for(var U=ne.loadGeometry(),ee=ne.type,ce=0,ge=0,xe=U.length,ve=0;vene},Ke=Math.fround||(Tt=new Float32Array(1),ne=>(Tt[0]=+ne,Tt[0]));var Tt;const xt=3,Bt=5,dn=6;class _n{constructor(N){this.options=Object.assign(Object.create(Or),N),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(N){const{log:U,minZoom:ee,maxZoom:ce}=this.options;U&&console.time("total time");const ge=`prepare ${N.length} points`;U&&console.time(ge),this.points=N;const xe=[];for(let me=0;me=ee;me--){const Me=+Date.now();ve=this.trees[me]=this._createTree(this._cluster(ve,me)),U&&console.log("z%d: %d clusters in %dms",me,ve.numItems,+Date.now()-Me)}return U&&console.timeEnd("total time"),this}getClusters(N,U){let ee=((N[0]+180)%360+360)%360-180;const ce=Math.max(-90,Math.min(90,N[1]));let ge=N[2]===180?180:((N[2]+180)%360+360)%360-180;const xe=Math.max(-90,Math.min(90,N[3]));if(N[2]-N[0]>=360)ee=-180,ge=180;else if(ee>ge){const nt=this.getClusters([ee,ce,180,xe],U),Ye=this.getClusters([-180,ce,ge,xe],U);return nt.concat(Ye)}const ve=this.trees[this._limitZoom(U)],me=ve.range(ti(ee),pi(xe),ti(ge),pi(ce)),Me=ve.data,et=[];for(const nt of me){const Ye=this.stride*nt;et.push(Me[Ye+Bt]>1?ei(Me,Ye,this.clusterProps):this.points[Me[Ye+xt]])}return et}getChildren(N){const U=this._getOriginId(N),ee=this._getOriginZoom(N),ce="No cluster with the specified id.",ge=this.trees[ee];if(!ge)throw new Error(ce);const xe=ge.data;if(U*this.stride>=xe.length)throw new Error(ce);const ve=this.options.radius/(this.options.extent*Math.pow(2,ee-1)),me=ge.within(xe[U*this.stride],xe[U*this.stride+1],ve),Me=[];for(const et of me){const nt=et*this.stride;xe[nt+4]===N&&Me.push(xe[nt+Bt]>1?ei(xe,nt,this.clusterProps):this.points[xe[nt+xt]])}if(Me.length===0)throw new Error(ce);return Me}getLeaves(N,U,ee){const ce=[];return this._appendLeaves(ce,N,U=U||10,ee=ee||0,0),ce}getTile(N,U,ee){const ce=this.trees[this._limitZoom(N)],ge=Math.pow(2,N),{extent:xe,radius:ve}=this.options,me=ve/xe,Me=(ee-me)/ge,et=(ee+1+me)/ge,nt={features:[]};return this._addTileFeatures(ce.range((U-me)/ge,Me,(U+1+me)/ge,et),ce.data,U,ee,ge,nt),U===0&&this._addTileFeatures(ce.range(1-me/ge,Me,1,et),ce.data,ge,ee,ge,nt),U===ge-1&&this._addTileFeatures(ce.range(0,Me,me/ge,et),ce.data,-1,ee,ge,nt),nt.features.length?nt:null}getClusterExpansionZoom(N){let U=this._getOriginZoom(N)-1;for(;U<=this.options.maxZoom;){const ee=this.getChildren(N);if(U++,ee.length!==1)break;N=ee[0].properties.cluster_id}return U}_appendLeaves(N,U,ee,ce,ge){const xe=this.getChildren(U);for(const ve of xe){const me=ve.properties;if(me&&me.cluster?ge+me.point_count<=ce?ge+=me.point_count:ge=this._appendLeaves(N,me.cluster_id,ee,ce,ge):ge1;let et,nt,Ye;if(Me)et=Wi(U,me,this.clusterProps),nt=U[me],Ye=U[me+1];else{const Pt=this.points[U[me+xt]];et=Pt.properties;const[Dt,$t]=Pt.geometry.coordinates;nt=ti(Dt),Ye=pi($t)}const kt={type:1,geometry:[[Math.round(this.options.extent*(nt*ge-ee)),Math.round(this.options.extent*(Ye*ge-ce))]],tags:et};let Rt;Rt=Me||this.options.generateId?U[me+xt]:this.points[U[me+xt]].id,Rt!==void 0&&(kt.id=Rt),xe.features.push(kt)}}_limitZoom(N){return Math.max(this.options.minZoom,Math.min(Math.floor(+N),this.options.maxZoom+1))}_cluster(N,U){const{radius:ee,extent:ce,reduce:ge,minPoints:xe}=this.options,ve=ee/(ce*Math.pow(2,U)),me=N.data,Me=[],et=this.stride;for(let nt=0;ntU&&(Dt+=me[An+Bt])}if(Dt>Pt&&Dt>=xe){let $t,An=Ye*Pt,Fn=kt*Pt,vi=-1;const Yn=((nt/et|0)<<5)+(U+1)+this.points.length;for(const Fr of Rt){const ii=Fr*et;if(me[ii+2]<=U)continue;me[ii+2]=U;const Ci=me[ii+Bt];An+=me[ii]*Ci,Fn+=me[ii+1]*Ci,me[ii+4]=Yn,ge&&($t||($t=this._map(me,nt,!0),vi=this.clusterProps.length,this.clusterProps.push($t)),ge($t,this._map(me,ii)))}me[nt+4]=Yn,Me.push(An/Dt,Fn/Dt,1/0,Yn,-1,Dt),ge&&Me.push(vi)}else{for(let $t=0;$t1)for(const $t of Rt){const An=$t*et;if(!(me[An+2]<=U)){me[An+2]=U;for(let Fn=0;Fn>5}_getOriginZoom(N){return(N-this.points.length)%32}_map(N,U,ee){if(N[U+Bt]>1){const xe=this.clusterProps[N[U+dn]];return ee?Object.assign({},xe):xe}const ce=this.points[N[U+xt]].properties,ge=this.options.map(ce);return ee&&ge===ce?Object.assign({},ge):ge}}function ei(ne,N,U){return{type:"Feature",id:ne[N+xt],properties:Wi(ne,N,U),geometry:{type:"Point",coordinates:[(ee=ne[N],360*(ee-.5)),rs(ne[N+1])]}};var ee}function Wi(ne,N,U){const ee=ne[N+Bt],ce=ee>=1e4?`${Math.round(ee/1e3)}k`:ee>=1e3?Math.round(ee/100)/10+"k":ee,ge=ne[N+dn],xe=ge===-1?{}:Object.assign({},U[ge]);return Object.assign(xe,{cluster:!0,cluster_id:ne[N+xt],point_count:ee,point_count_abbreviated:ce})}function ti(ne){return ne/360+.5}function pi(ne){const N=Math.sin(ne*Math.PI/180),U=.5-.25*Math.log((1+N)/(1-N))/Math.PI;return U<0?0:U>1?1:U}function rs(ne){const N=(180-360*ne)*Math.PI/180;return 360*Math.atan(Math.exp(N))/Math.PI-90}function Br(ne,N,U,ee){for(var ce,ge=ee,xe=U-N>>1,ve=U-N,me=ne[N],Me=ne[N+1],et=ne[U],nt=ne[U+1],Ye=N+3;Yege)ce=Ye,ge=kt;else if(kt===ge){var Rt=Math.abs(Ye-xe);Rtee&&(ce-N>3&&Br(ne,N,ce,ee),ne[ce+2]=ge,U-ce>3&&Br(ne,ce,U,ee))}function yn(ne,N,U,ee,ce,ge){var xe=ce-U,ve=ge-ee;if(xe!==0||ve!==0){var me=((ne-U)*xe+(N-ee)*ve)/(xe*xe+ve*ve);me>1?(U=ce,ee=ge):me>0&&(U+=xe*me,ee+=ve*me)}return(xe=ne-U)*xe+(ve=N-ee)*ve}function Mt(ne,N,U,ee){var ce={id:ne===void 0?null:ne,type:N,geometry:U,tags:ee,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(ge){var xe=ge.geometry,ve=ge.type;if(ve==="Point"||ve==="MultiPoint"||ve==="LineString")Ro(ge,xe);else if(ve==="Polygon"||ve==="MultiLineString")for(var me=0;me0&&(xe+=ee?(ce*Me-me*ge)/2:Math.sqrt(Math.pow(me-ce,2)+Math.pow(Me-ge,2))),ce=me,ge=Me}var et=N.length-3;N[2]=1,Br(N,0,et,U),N[et+2]=1,N.size=Math.abs(xe),N.start=0,N.end=N.size}function nr(ne,N,U,ee){for(var ce=0;ce1?1:U}function Hi(ne,N,U,ee,ce,ge,xe,ve){if(ee/=N,ge>=(U/=N)&&xe=ee)return null;for(var me=[],Me=0;Me=U&&Rt=ee)){var Pt=[];if(Ye==="Point"||Ye==="MultiPoint")qa(nt,Pt,U,ee,ce);else if(Ye==="LineString")Us(nt,Pt,U,ee,ce,!1,ve.lineMetrics);else if(Ye==="MultiLineString")Oo(nt,Pt,U,ee,ce,!1);else if(Ye==="Polygon")Oo(nt,Pt,U,ee,ce,!0);else if(Ye==="MultiPolygon")for(var Dt=0;Dt=U&&xe<=ee&&(N.push(ne[ge]),N.push(ne[ge+1]),N.push(ne[ge+2]))}}function Us(ne,N,U,ee,ce,ge,xe){for(var ve,me,Me=Za(ne),et=ce===0?nc:ic,nt=ne.start,Ye=0;YeU&&(me=et(Me,kt,Rt,Dt,$t,U),xe&&(Me.start=nt+ve*me)):An>ee?Fn=U&&(me=et(Me,kt,Rt,Dt,$t,U),vi=!0),Fn>ee&&An<=ee&&(me=et(Me,kt,Rt,Dt,$t,ee),vi=!0),!ge&&vi&&(xe&&(Me.end=nt+ve*me),N.push(Me),Me=Za(ne)),xe&&(nt+=ve)}var Yn=ne.length-3;kt=ne[Yn],Rt=ne[Yn+1],Pt=ne[Yn+2],(An=ce===0?kt:Rt)>=U&&An<=ee&&js(Me,kt,Rt,Pt),Yn=Me.length-3,ge&&Yn>=3&&(Me[Yn]!==Me[0]||Me[Yn+1]!==Me[1])&&js(Me,Me[0],Me[1],Me[2]),Me.length&&N.push(Me)}function Za(ne){var N=[];return N.size=ne.size,N.start=ne.start,N.end=ne.end,N}function Oo(ne,N,U,ee,ce,ge){for(var xe=0;xexe.maxX&&(xe.maxX=et),nt>xe.maxY&&(xe.maxY=nt)}return xe}function Ha(ne,N,U,ee){var ce=N.geometry,ge=N.type,xe=[];if(ge==="Point"||ge==="MultiPoint")for(var ve=0;ve0&&N.size<(ce?xe:ee))U.numPoints+=N.length/3;else{for(var ve=[],me=0;mexe)&&(U.numSimplified++,ve.push(N[me]),ve.push(N[me+1])),U.numPoints++;ce&&function(Me,et){for(var nt=0,Ye=0,kt=Me.length,Rt=kt-2;Ye0===et)for(Ye=0,kt=Me.length;Ye24)throw new Error("maxZoom should be in the 0-24 range");if(N.promoteId&&N.generateId)throw new Error("promoteId and generateId cannot be used together.");var ee=function(ce,ge){var xe=[];if(ce.type==="FeatureCollection")for(var ve=0;ve1&&console.time("creation"),Ye=this.tiles[nt]=Vs(ne,N,U,ee,me),this.tileCoords.push({z:N,x:U,y:ee}),Me)){Me>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",N,U,ee,Ye.numFeatures,Ye.numPoints,Ye.numSimplified),console.timeEnd("creation"));var kt="z"+N;this.stats[kt]=(this.stats[kt]||0)+1,this.total++}if(Ye.source=ne,ce){if(N===me.maxZoom||N===ce)continue;var Rt=1<1&&console.time("clipping");var Pt,Dt,$t,An,Fn,vi,Yn=.5*me.buffer/me.extent,Fr=.5-Yn,ii=.5+Yn,Ci=1+Yn;Pt=Dt=$t=An=null,Fn=Hi(ne,et,U-Yn,U+ii,0,Ye.minX,Ye.maxX,me),vi=Hi(ne,et,U+Fr,U+Ci,0,Ye.minX,Ye.maxX,me),ne=null,Fn&&(Pt=Hi(Fn,et,ee-Yn,ee+ii,1,Ye.minY,Ye.maxY,me),Dt=Hi(Fn,et,ee+Fr,ee+Ci,1,Ye.minY,Ye.maxY,me),Fn=null),vi&&($t=Hi(vi,et,ee-Yn,ee+ii,1,Ye.minY,Ye.maxY,me),An=Hi(vi,et,ee+Fr,ee+Ci,1,Ye.minY,Ye.maxY,me),vi=null),Me>1&&console.timeEnd("clipping"),ve.push(Pt||[],N+1,2*U,2*ee),ve.push(Dt||[],N+1,2*U,2*ee+1),ve.push($t||[],N+1,2*U+1,2*ee),ve.push(An||[],N+1,2*U+1,2*ee+1)}}},Fo.prototype.getTile=function(ne,N,U){var ee=this.options,ce=ee.extent,ge=ee.debug;if(ne<0||ne>24)return null;var xe=1<1&&console.log("drilling down to z%d-%d-%d",ne,N,U);for(var me,Me=ne,et=N,nt=U;!me&&Me>0;)Me--,et=Math.floor(et/2),nt=Math.floor(nt/2),me=this.tiles[as(Me,et,nt)];return me&&me.source?(ge>1&&console.log("found parent tile z%d-%d-%d",Me,et,nt),ge>1&&console.time("drilling down"),this.splitTile(me.source,Me,et,nt,ne,N,U),ge>1&&console.timeEnd("drilling down"),this.tiles[ve]?Wa(this.tiles[ve],ce):null):null};class Gs extends s.VectorTileWorkerSource{constructor(N,U,ee,ce,ge){super(N,U,ee,ce,ls),ge&&(this.loadGeoJSON=ge)}loadData(N,U){const ee=N&&N.request,ce=ee&&ee.collectResourceTiming;this.loadGeoJSON(N,(ge,xe)=>{if(ge||!xe)return U(ge);if(typeof xe!="object")return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`));{fe(xe,!0);try{if(N.filter){const me=s.createExpression(N.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(me.result==="error")throw new Error(me.value.map(et=>`${et.key}: ${et.message}`).join(", "));xe={type:"FeatureCollection",features:xe.features.filter(et=>me.value.evaluate({zoom:0},et))}}this._geoJSONIndex=N.cluster?new _n(function({superclusterOptions:me,clusterProperties:Me}){if(!Me||!me)return me;const et={},nt={},Ye={accumulated:null,zoom:0},kt={properties:null},Rt=Object.keys(Me);for(const Pt of Rt){const[Dt,$t]=Me[Pt],An=s.createExpression($t),Fn=s.createExpression(typeof Dt=="string"?[Dt,["accumulated"],["get",Pt]]:Dt);et[Pt]=An.value,nt[Pt]=Fn.value}return me.map=Pt=>{kt.properties=Pt;const Dt={};for(const $t of Rt)Dt[$t]=et[$t].evaluate(Ye,kt);return Dt},me.reduce=(Pt,Dt)=>{kt.properties=Dt;for(const $t of Rt)Ye.accumulated=Pt[$t],Pt[$t]=nt[$t].evaluate(Ye,kt)},me}(N)).load(xe.features):function(me,Me){return new Fo(me,Me)}(xe,N.geojsonVtOptions)}catch(me){return U(me)}this.loaded={};const ve={};if(ce){const me=s.getPerformanceMeasurement(ee);me&&(ve.resourceTiming={},ve.resourceTiming[N.source]=JSON.parse(JSON.stringify(me)))}U(null,ve)}})}reloadTile(N,U){const ee=this.loaded;return ee&&ee[N.uid]?super.reloadTile(N,U):this.loadTile(N,U)}loadGeoJSON(N,U){if(N.request)s.getJSON(N.request,U);else{if(typeof N.data!="string")return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`));try{return U(null,JSON.parse(N.data))}catch{return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(N,U){try{U(null,this._geoJSONIndex.getClusterExpansionZoom(N.clusterId))}catch(ee){U(ee)}}getClusterChildren(N,U){try{U(null,this._geoJSONIndex.getChildren(N.clusterId))}catch(ee){U(ee)}}getClusterLeaves(N,U){try{U(null,this._geoJSONIndex.getLeaves(N.clusterId,N.limit,N.offset))}catch(ee){U(ee)}}}class rc{constructor(N){this.self=N,this.actor=new s.Actor(N,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=s.getProjection({name:"mercator"}),this.workerSourceTypes={vector:s.VectorTileWorkerSource,geojson:Gs},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(U,ee)=>{if(this.workerSourceTypes[U])throw new Error(`Worker source with name "${U}" already registered.`);this.workerSourceTypes[U]=ee},this.self.registerRTLTextPlugin=U=>{if(s.plugin.isParsed())throw new Error("RTL text plugin already registered.");s.plugin.applyArabicShaping=U.applyArabicShaping,s.plugin.processBidirectionalText=U.processBidirectionalText,s.plugin.processStyledBidirectionalText=U.processStyledBidirectionalText}}clearCaches(N,U,ee){delete this.layerIndexes[N],delete this.availableImages[N],delete this.workerSources[N],delete this.demWorkerSources[N],ee()}checkIfReady(N,U,ee){ee()}setReferrer(N,U){this.referrer=U}spriteLoaded(N,U){this.isSpriteLoaded[N]=U;for(const ee in this.workerSources[N]){const ce=this.workerSources[N][ee];for(const ge in ce)ce[ge]instanceof s.VectorTileWorkerSource&&(ce[ge].isSpriteLoaded=U,ce[ge].fire(new s.Event("isSpriteLoaded")))}}setImages(N,U,ee){this.availableImages[N]=U;for(const ce in this.workerSources[N]){const ge=this.workerSources[N][ce];for(const xe in ge)ge[xe].availableImages=U}ee()}enableTerrain(N,U,ee){this.terrain=U,ee()}setProjection(N,U){this.projections[N]=s.getProjection(U)}setLayers(N,U,ee){this.getLayerIndex(N).replace(U),ee()}updateLayers(N,U,ee){this.getLayerIndex(N).update(U.layers,U.removedIds),ee()}loadTile(N,U,ee){const ce=this.enableTerrain?s.extend({enableTerrain:this.terrain},U):U;ce.projection=this.projections[N]||this.defaultProjection,this.getWorkerSource(N,U.type,U.source).loadTile(ce,ee)}loadDEMTile(N,U,ee){const ce=this.enableTerrain?s.extend({buildQuadTree:this.terrain},U):U;this.getDEMWorkerSource(N,U.source).loadTile(ce,ee)}reloadTile(N,U,ee){const ce=this.enableTerrain?s.extend({enableTerrain:this.terrain},U):U;ce.projection=this.projections[N]||this.defaultProjection,this.getWorkerSource(N,U.type,U.source).reloadTile(ce,ee)}abortTile(N,U,ee){this.getWorkerSource(N,U.type,U.source).abortTile(U,ee)}removeTile(N,U,ee){this.getWorkerSource(N,U.type,U.source).removeTile(U,ee)}removeSource(N,U,ee){if(!this.workerSources[N]||!this.workerSources[N][U.type]||!this.workerSources[N][U.type][U.source])return;const ce=this.workerSources[N][U.type][U.source];delete this.workerSources[N][U.type][U.source],ce.removeSource!==void 0?ce.removeSource(U,ee):ee()}loadWorkerSource(N,U,ee){try{this.self.importScripts(U.url),ee()}catch(ce){ee(ce.toString())}}syncRTLPluginState(N,U,ee){try{s.plugin.setState(U);const ce=s.plugin.getPluginURL();if(s.plugin.isLoaded()&&!s.plugin.isParsed()&&ce!=null){this.self.importScripts(ce);const ge=s.plugin.isParsed();ee(ge?void 0:new Error(`RTL Text Plugin failed to import scripts from ${ce}`),ge)}}catch(ce){ee(ce.toString())}}getAvailableImages(N){let U=this.availableImages[N];return U||(U=[]),U}getLayerIndex(N){let U=this.layerIndexes[N];return U||(U=this.layerIndexes[N]=new q),U}getWorkerSource(N,U,ee){if(this.workerSources[N]||(this.workerSources[N]={}),this.workerSources[N][U]||(this.workerSources[N][U]={}),!this.workerSources[N][U][ee]){const ce={send:(ge,xe,ve,me,Me,et)=>{this.actor.send(ge,xe,ve,N,Me,et)},scheduler:this.actor.scheduler};this.workerSources[N][U][ee]=new this.workerSourceTypes[U](ce,this.getLayerIndex(N),this.getAvailableImages(N),this.isSpriteLoaded[N])}return this.workerSources[N][U][ee]}getDEMWorkerSource(N,U){return this.demWorkerSources[N]||(this.demWorkerSources[N]={}),this.demWorkerSources[N][U]||(this.demWorkerSources[N][U]=new X),this.demWorkerSources[N][U]}enforceCacheSizeLimit(N,U){s.enforceCacheSizeLimit(U)}getWorkerPerformanceMetrics(N,U,ee){ee(void 0,void 0)}}return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope&&(self.worker=new rc(self)),rc}),x(["./shared"],function(s){function M(d,o){if(Array.isArray(d)){if(!Array.isArray(o)||d.length!==o.length)return!1;for(let c=0;c"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var f,_,v=new Blob([""],{type:"text/javascript"}),E=URL.createObjectURL(v);try{_=new Worker(E),f=!0}catch{f=!1}return _&&_.terminate(),URL.revokeObjectURL(E),f}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var f=document.createElement("canvas");f.width=f.height=1;var _=f.getContext("2d");if(!_)return!1;var v=_.getImageData(0,0,1,1);return v&&v.width===f.width}()?(X[c=o&&o.failIfMajorPerformanceCaveat]===void 0&&(X[c]=function(f){var _,v=function(E){var S=document.createElement("canvas"),C=Object.create(q.webGLContextAttributes);return C.failIfMajorPerformanceCaveat=E,S.getContext("webgl",C)||S.getContext("experimental-webgl",C)}(f);if(!v)return!1;try{_=v.createShader(v.VERTEX_SHADER)}catch{return!1}return!(!_||v.isContextLost())&&(v.shaderSource(_,"void main() {}"),v.compileShader(_),v.getShaderParameter(_,v.COMPILE_STATUS)===!0)}(c)),X[c]?document.documentMode?"insufficient ECMAScript 6 support":void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var c}(d)}var X={};function oe(d,o,c){const f=s.window.document.createElement(d);return o!==void 0&&(f.className=o),c&&c.appendChild(f),f}function Ae(d,o,c){const f=s.window.document.createElementNS("http://www.w3.org/2000/svg",d);for(const _ of Object.keys(o))f.setAttributeNS(null,_,o[_]);return c&&c.appendChild(f),f}q.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0};const fe=s.window.document&&s.window.document.documentElement.style,ke=fe&&fe.userSelect!==void 0?"userSelect":"WebkitUserSelect";let ze;function ue(){fe&&ke&&(ze=fe[ke],fe[ke]="none")}function re(){fe&&ke&&(fe[ke]=ze)}function le(d){d.preventDefault(),d.stopPropagation(),s.window.removeEventListener("click",le,!0)}function De(){s.window.addEventListener("click",le,!0),s.window.setTimeout(()=>{s.window.removeEventListener("click",le,!0)},0)}function je(d,o){const c=d.getBoundingClientRect();return ut(d,c,o)}function tt(d,o){const c=d.getBoundingClientRect(),f=[];for(let _=0;_=0?0:d.button}function ut(d,o,c){const f=d.offsetWidth===o.width?1:d.offsetWidth/o.width;return new s.Point((c.clientX-o.left)*f,(c.clientY-o.top)*f)}function Ve(d,o){var c=o[0],f=o[1],_=o[2],v=o[3],E=c*v-_*f;return E?(d[0]=v*(E=1/E),d[1]=-f*E,d[2]=-_*E,d[3]=c*E,d):null}function jt(d){const{userImage:o}=d;return!!(o&&o.render&&o.render())&&(d.data.replace(new Uint8Array(o.data.buffer)),!0)}class di extends s.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(o){if(this.loaded!==o&&(this.loaded=o,o)){for(const{ids:c,callback:f}of this.requestors)this._notify(c,f);this.requestors=[]}}hasImage(o){return!!this.getImage(o)}getImage(o){return this.images[o]}addImage(o,c){this._validate(o,c)&&(this.images[o]=c)}_validate(o,c){let f=!0;return this._validateStretch(c.stretchX,c.data&&c.data.width)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "stretchX" value`))),f=!1),this._validateStretch(c.stretchY,c.data&&c.data.height)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "stretchY" value`))),f=!1),this._validateContent(c.content,c)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "content" value`))),f=!1),f}_validateStretch(o,c){if(!o)return!0;let f=0;for(const _ of o){if(_[0]{this.ready=!0})}broadcast(o,c,f){s.asyncAll(this.actors,(_,v)=>{_.send(o,c,v)},f=f||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(o=>{o.remove()}),this.actors=[],this.workerPool.release(this.id)}}function Bt(d,o,c){return o*(s.EXTENT/(d.tileSize*Math.pow(2,c-d.tileID.overscaledZ)))}xt.Actor=s.Actor;class dn{constructor(o,c,f,_){this.screenBounds=o,this.cameraPoint=c,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=f,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,_)}static createFromScreenPoints(o,c){let f,_;if(o instanceof s.Point||typeof o[0]=="number"){const v=s.Point.convert(o);f=[v],_=c.isPointAboveHorizon(v)}else{const v=s.Point.convert(o[0]),E=s.Point.convert(o[1]);f=[v,E],_=s.polygonizeBounds(v,E).every(S=>c.isPointAboveHorizon(S))}return new dn(f,c.getCameraPoint(),_,c)}isPointQuery(){return this.screenBounds.length===1}bufferedScreenGeometry(o){return s.polygonizeBounds(this.screenBounds[0],this.screenBounds.length===1?this.screenBounds[0]:this.screenBounds[1],o)}bufferedCameraGeometry(o){const c=this.screenBounds[0],f=this.screenBounds.length===1?this.screenBounds[0].add(new s.Point(1,1)):this.screenBounds[1],_=s.polygonizeBounds(c,f,0,!1);return this.cameraPoint.y>f.y&&(this.cameraPoint.x>c.x&&this.cameraPoint.x=f.x?_[2]=this.cameraPoint:this.cameraPoint.x<=c.x&&(_[3]=this.cameraPoint)),s.bufferConvexPolygon(_,o)}bufferedCameraGeometryGlobe(o){const c=this.screenBounds[0],f=this.screenBounds.length===1?this.screenBounds[0].add(new s.Point(1,1)):this.screenBounds[1],_=s.polygonizeBounds(c,f,o),v=this.cameraPoint.clone();switch(3*((v.y>c.y)+(v.y>f.y))+((v.x>c.x)+(v.x>f.x))){case 0:_[0]=v,_[4]=v.clone();break;case 1:_.splice(1,0,v);break;case 2:_[1]=v;break;case 3:_.splice(4,0,v);break;case 5:_.splice(2,0,v);break;case 6:_[3]=v;break;case 7:_.splice(3,0,v);break;case 8:_[2]=v}return _}containsTile(o,c,f,_=0){const v=o.queryPadding/c._pixelsPerMercatorPixel+1,E=f?this._bufferedCameraMercator(v,c):this._bufferedScreenMercator(v,c);let S=o.tileID.wrap+(E.unwrapped?_:0);const C=E.polygon.map(H=>s.getTilePoint(o.tileTransform,H,S));if(!s.polygonIntersectsBox(C,0,0,s.EXTENT,s.EXTENT))return;S=o.tileID.wrap+(this.screenGeometryMercator.unwrapped?_:0);const z=this.screenGeometryMercator.polygon.map(H=>s.getTileVec3(o.tileTransform,H,S)),P=z.map(H=>new s.Point(H[0],H[1])),D=c.getFreeCameraOptions().position||new s.MercatorCoordinate(0,0,0),j=s.getTileVec3(o.tileTransform,D,S),$=z.map(H=>{const O=s.sub(H,H,j);return s.normalize(O,O),new s.Ray(j,O)}),W=Bt(o,1,c.zoom)*c._pixelsPerMercatorPixel;return{queryGeometry:this,tilespaceGeometry:P,tilespaceRays:$,bufferedTilespaceGeometry:C,bufferedTilespaceBounds:(Z=s.getBounds(C),Z.min.x=s.clamp(Z.min.x,0,s.EXTENT),Z.min.y=s.clamp(Z.min.y,0,s.EXTENT),Z.max.x=s.clamp(Z.max.x,0,s.EXTENT),Z.max.y=s.clamp(Z.max.y,0,s.EXTENT),Z),tile:o,tileID:o.tileID,pixelToTileUnitsFactor:W};var Z}_bufferedScreenMercator(o,c){const f=Wi(o);if(this._screenRaycastCache[f])return this._screenRaycastCache[f];{let _;return _=c.projection.name==="globe"?this._projectAndResample(this.bufferedScreenGeometry(o),c):{polygon:this.bufferedScreenGeometry(o).map(v=>c.pointCoordinate3D(v)),unwrapped:!0},this._screenRaycastCache[f]=_,_}}_bufferedCameraMercator(o,c){const f=Wi(o);if(this._cameraRaycastCache[f])return this._cameraRaycastCache[f];{let _;return _=c.projection.name==="globe"?this._projectAndResample(this.bufferedCameraGeometryGlobe(o),c):{polygon:this.bufferedCameraGeometry(o).map(v=>c.pointCoordinate3D(v)),unwrapped:!0},this._cameraRaycastCache[f]=_,_}}_projectAndResample(o,c){const f=function(v,E){const S=s.multiply([],E.pixelMatrix,E.globeMatrix),C=[0,-s.GLOBE_RADIUS,0,1],z=[0,s.GLOBE_RADIUS,0,1],P=[0,0,0,1];s.transformMat4$1(C,C,S),s.transformMat4$1(z,z,S),s.transformMat4$1(P,P,S);const D=new s.Point(C[0]/C[3],C[1]/C[3]),j=new s.Point(z[0]/z[3],z[1]/z[3]),$=s.polygonContainsPoint(v,D)&&C[3]1?_n(v.slice(0,H),E):[],J=Hnew s.Point(ei(de.x),de.y)),J=J.map(de=>new s.Point(ei(de.x),de.y));const Q=[...G];Q.length===0&&Q.push(J[J.length-1]);const he=s.number(Q[Q.length-1].y,(J.length===0?G[0]:J[0]).y,O);let pe;return pe=$?[new s.Point(0,he),new s.Point(0,0),new s.Point(1,0),new s.Point(1,he)]:[new s.Point(1,he),new s.Point(1,1),new s.Point(0,1),new s.Point(0,he)],Q.push(...pe),J.length===0?Q.push(G[0]):Q.push(...J),{polygon:Q.map(de=>new s.MercatorCoordinate(de.x,de.y)),unwrapped:!1}}(o,c);if(f)return f;const _=function(v,E){let S=!1,C=-1/0,z=0;for(let D=0;DC&&(C=v[D].x,z=D);for(let D=0;D.5&&($.x{D.x-=1}),{polygon:v,unwrapped:S}}(_n(o,c).map(v=>new s.Point(ei(v.x),v.y)),c);return{polygon:_.polygon.map(v=>new s.MercatorCoordinate(v.x,v.y)),unwrapped:_.unwrapped}}}function _n(d,o){return s.resample(d,c=>{const f=o.pointCoordinate3D(c);c.x=f.x,c.y=f.y},1/256)}function ei(d){return d<0?1+d%1:d%1}function Wi(d){return 100*d|0}function ti(d,o,c,f,_){const v=function(E,S){if(E)return _(E);if(S){d.url&&S.tiles&&d.tiles&&delete d.tiles;const C=s.pick(s.extend(S,d),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);S.vector_layers&&(C.vectorLayers=S.vector_layers,C.vectorLayerIds=C.vectorLayers.map(z=>z.id)),C.tiles=o.canonicalizeTileset(C,d.url),_(null,C)}};return d.url?s.getJSON(o.transformRequest(o.normalizeSourceURL(d.url,null,c,f),s.ResourceType.Source),v):s.exported.frame(()=>v(null,d))}class pi{constructor(o,c,f){this.bounds=s.LngLatBounds.convert(this.validateBounds(o)),this.minzoom=c||0,this.maxzoom=f||24}validateBounds(o){return Array.isArray(o)&&o.length===4?[Math.max(-180,o[0]),Math.max(-90,o[1]),Math.min(180,o[2]),Math.min(90,o[3])]:[-180,-90,180,90]}contains(o){const c=Math.pow(2,o.z),f=Math.floor(s.mercatorXfromLng(this.bounds.getWest())*c),_=Math.floor(s.mercatorYfromLat(this.bounds.getNorth())*c),v=Math.ceil(s.mercatorXfromLng(this.bounds.getEast())*c),E=Math.ceil(s.mercatorYfromLat(this.bounds.getSouth())*c);return o.x>=f&&o.x=_&&o.y{this._tileJSONRequest=null,this._loaded=!0,_?(c&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${c}`),f&&f.length!==2&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${f}`),this.fire(new s.ErrorEvent(_))):v&&(s.extend(this,v),v.bounds&&(this.tileBounds=new pi(v.bounds,this.minzoom,this.maxzoom)),s.postTurnstileEvent(v.tiles,this.map._requestManager._customAccessToken),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))),o&&o(_)})}loaded(){return this._loaded}hasTile(o){return!this.tileBounds||this.tileBounds.contains(o.canonical)}onAdd(o){this.map=o,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>this.map.style._clearSource(this.id))}setTiles(o){return this._options.tiles=o,this.reload(),this}setUrl(o){return this.url=o,this._options.url=o,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return s.extend({},this._options)}loadTile(o,c){const f=this.map._requestManager.normalizeTileURL(o.tileID.canonical.url(this.tiles,this.scheme)),_={request:this.map._requestManager.transformRequest(f,s.ResourceType.Tile),data:void 0,uid:o.uid,tileID:o.tileID,tileZoom:o.tileZoom,zoom:o.tileID.overscaledZ,tileSize:this.tileSize*o.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:s.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:o.isSymbolTile};if(_.request.collectResourceTiming=this._collectResourceTiming,o.actor&&o.state!=="expired")o.state==="loading"?o.reloadCallback=c:o.request=o.actor.send("reloadTile",_,v.bind(this));else if(o.actor=this._tileWorkers[f]=this._tileWorkers[f]||this.dispatcher.getActor(),this.dispatcher.ready)o.request=o.actor.send("loadTile",_,v.bind(this),void 0,!0);else{const E=s.loadVectorTile.call({deduped:this._deduped},_,(S,C)=>{S||!C?v.call(this,S):(_.data={cacheControl:C.cacheControl,expires:C.expires,rawData:C.rawData.slice(0)},o.actor&&o.actor.send("loadTile",_,v.bind(this),void 0,!0))},!0);o.request={cancel:E}}function v(E,S){return delete o.request,o.aborted?c(null):E&&E.status!==404?c(E):(S&&S.resourceTiming&&(o.resourceTiming=S.resourceTiming),this.map._refreshExpiredTiles&&S&&o.setExpiryData(S),o.loadVectorData(S,this.map.painter),s.cacheEntryPossiblyAdded(this.dispatcher),c(null),void(o.reloadCallback&&(this.loadTile(o,o.reloadCallback),o.reloadCallback=null)))}}abortTile(o){o.request&&(o.request.cancel(),delete o.request),o.actor&&o.actor.send("abortTile",{uid:o.uid,type:this.type,source:this.id})}unloadTile(o){o.unloadVectorData(),o.actor&&o.actor.send("removeTile",{uid:o.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}class Ye extends s.Evented{constructor(o,c,f,_){super(),this.id=o,this.dispatcher=f,this.setEventedParent(_),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=s.extend({type:"raster"},c),s.extend(this,s.pick(c,["url","scheme","tileSize"]))}load(o){this._loaded=!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=ti(this._options,this.map._requestManager,null,null,(c,f)=>{this._tileJSONRequest=null,this._loaded=!0,c?this.fire(new s.ErrorEvent(c)):f&&(s.extend(this,f),f.bounds&&(this.tileBounds=new pi(f.bounds,this.minzoom,this.maxzoom)),s.postTurnstileEvent(f.tiles),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))),o&&o(c)})}loaded(){return this._loaded}onAdd(o){this.map=o,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>this.map.style._clearSource(this.id))}setTiles(o){return this._options.tiles=o,this.reload(),this}setUrl(o){return this.url=o,this._options.url=o,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return s.extend({},this._options)}hasTile(o){return!this.tileBounds||this.tileBounds.contains(o.canonical)}loadTile(o,c){const f=s.exported.devicePixelRatio>=2,_=this.map._requestManager.normalizeTileURL(o.tileID.canonical.url(this.tiles,this.scheme),f,this.tileSize);o.request=s.getImage(this.map._requestManager.transformRequest(_,s.ResourceType.Tile),(v,E,S,C)=>(delete o.request,o.aborted?(o.state="unloaded",c(null)):v?(o.state="errored",c(v)):E?(this.map._refreshExpiredTiles&&o.setExpiryData({cacheControl:S,expires:C}),o.setTexture(E,this.map.painter),o.state="loaded",s.cacheEntryPossiblyAdded(this.dispatcher),void c(null)):c(null)))}static loadTileData(o,c,f){o.setTexture(c,f)}static unloadTileData(o,c){o.texture&&c.saveTileTexture(o.texture)}abortTile(o,c){o.request&&(o.request.cancel(),delete o.request),c()}unloadTile(o,c){o.texture&&this.map.painter.saveTileTexture(o.texture),c()}hasTransition(){return!1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}function kt(d,o,c,f,_,v,E,S){const C=[d,c,_,o,f,v,1,1,1],z=[E,S,1],P=s.adjoint([],C),[D,j,$]=s.transformMat3(z,z,s.transpose(P,P));return s.multiply$1(C,[D,0,0,0,j,0,0,0,$],C)}class Rt extends s.Evented{constructor(o,c,f,_){super(),this.id=o,this.dispatcher=f,this.coordinates=c.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(_),this.options=c,this._dirty=!1}load(o,c){this._loaded=c||!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this.url=this.options.url,this._imageRequest=s.getImage(this.map._requestManager.transformRequest(this.url,s.ResourceType.Image),(f,_)=>{if(this._imageRequest=null,this._loaded=!0,f)this.fire(new s.ErrorEvent(f));else if(_){const{HTMLImageElement:v}=s.window;this.image=_ instanceof v?s.exported.getImageData(_):_,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,o&&(this.coordinates=o),this._finishLoading()}})}loaded(){return this._loaded}updateImage(o){return this.image&&o.url?(this._imageRequest&&o.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=o.url,this.load(o.coordinates,this._loaded),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(o){this.map=o,this.load()}onRemove(){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),this.texture&&this.texture.destroy()}setCoordinates(o){this.coordinates=o,this._boundsArray=void 0;const c=o.map(s.MercatorCoordinate.fromLngLat);return this.tileID=function(f){let _=1/0,v=1/0,E=-1/0,S=-1/0;for(const D of f)_=Math.min(_,D.x),v=Math.min(v,D.y),E=Math.max(E,D.x),S=Math.max(S,D.y);const C=Math.max(E-_,S-v),z=Math.max(0,Math.floor(-Math.log(C)/Math.LN2)),P=Math.pow(2,z);return new s.CanonicalTileID(z,Math.floor((_+E)/2*P),Math.floor((v+S)/2*P))}(c),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){this._boundsArray=void 0}_prepareData(o){for(const C in this.tiles){const z=this.tiles[C];z.state!=="loaded"&&(z.state="loaded",z.texture=this.texture)}if(this._boundsArray)return;const c=s.tileTransform(this.tileID,this.map.transform.projection),[f,_,v,E]=this.coordinates.map(C=>{const z=c.projection.project(C[0],C[1]);return s.getTilePoint(c,z)._round()});this.perspectiveTransform=function(C,z,P,D,j,$,W,Z,H,O){const G=kt(0,0,C,0,0,z,C,z),J=kt(P,D,j,$,W,Z,H,O);return s.multiply$1(J,s.adjoint(G,G),J),[J[6]/J[8]*C/s.EXTENT,J[7]/J[8]*z/s.EXTENT]}(this.width,this.height,f.x,f.y,_.x,_.y,E.x,E.y,v.x,v.y);const S=this._boundsArray=new s.StructArrayLayout4i8;S.emplaceBack(f.x,f.y,0,0),S.emplaceBack(_.x,_.y,s.EXTENT,0),S.emplaceBack(E.x,E.y,0,s.EXTENT),S.emplaceBack(v.x,v.y,s.EXTENT,s.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=o.createVertexBuffer(S,s.boundsAttributes.members),this.boundsSegments=s.SegmentVector.simpleSegment(0,0,4,2)}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const o=this.map.painter.context,c=o.gl;this._dirty&&(this.texture?this.texture.update(this.image):(this.texture=new s.Texture(o,this.image,c.RGBA),this.texture.bind(c.LINEAR,c.CLAMP_TO_EDGE)),this._dirty=!1),this._prepareData(o)}loadTile(o,c){this.tileID&&this.tileID.equals(o.tileID.canonical)?(this.tiles[String(o.tileID.wrap)]=o,o.buckets={},c(null)):(o.state="errored",c(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const Pt={vector:nt,raster:Ye,"raster-dem":class extends Ye{constructor(d,o,c,f){super(d,o,c,f),this.type="raster-dem",this.maxzoom=22,this._options=s.extend({type:"raster-dem"},o),this.encoding=o.encoding||"mapbox"}loadTile(d,o){const c=this.map._requestManager.normalizeTileURL(d.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function f(_,v){_&&(d.state="errored",o(_)),v&&(d.dem=v,d.dem.onDeserialize(),d.needsHillshadePrepare=!0,d.needsDEMTextureUpload=!0,d.state="loaded",o(null))}d.request=s.getImage(this.map._requestManager.transformRequest(c,s.ResourceType.Tile),(function(_,v,E,S){if(delete d.request,d.aborted)d.state="unloaded",o(null);else if(_)d.state="errored",o(_);else if(v){this.map._refreshExpiredTiles&&d.setExpiryData({cacheControl:E,expires:S});const C=s.window.ImageBitmap&&v instanceof s.window.ImageBitmap&&(Vs==null&&(Vs=s.window.OffscreenCanvas&&new s.window.OffscreenCanvas(1,1).getContext("2d")&&typeof s.window.createImageBitmap=="function"),Vs),z=1-(v.width-s.prevPowerOfTwo(v.width))/2;z<1||d.neighboringTiles||(d.neighboringTiles=this._getNeighboringTiles(d.tileID));const P=C?v:s.exported.getImageData(v,z),D={uid:d.uid,coord:d.tileID,source:this.id,rawImageData:P,encoding:this.encoding,padding:z};d.actor&&d.state!=="expired"||(d.actor=this.dispatcher.getActor(),d.actor.send("loadDEMTile",D,f.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(d){const o=d.canonical,c=Math.pow(2,o.z),f=(o.x-1+c)%c,_=o.x===0?d.wrap-1:d.wrap,v=(o.x+1+c)%c,E=o.x+1===c?d.wrap+1:d.wrap,S={};return S[new s.OverscaledTileID(d.overscaledZ,_,o.z,f,o.y).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,E,o.z,v,o.y).key]={backfilled:!1},o.y>0&&(S[new s.OverscaledTileID(d.overscaledZ,_,o.z,f,o.y-1).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,d.wrap,o.z,o.x,o.y-1).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,E,o.z,v,o.y-1).key]={backfilled:!1}),o.y+1{if(this._loaded=!0,this._pendingLoad=null,c)this.fire(new s.ErrorEvent(c));else{const _={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&f&&f.resourceTiming&&f.resourceTiming[this.id]&&(_.resourceTiming=f.resourceTiming[this.id]),this.fire(new s.Event("data",_)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(d,o){const c=d.actor?"reloadTile":"loadTile";d.actor=this.actor,d.request=this.actor.send(c,{type:this.type,uid:d.uid,tileID:d.tileID,tileZoom:d.tileZoom,zoom:d.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:s.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(f,_)=>(delete d.request,d.unloadVectorData(),d.aborted?o(null):f?o(f):(d.loadVectorData(_,this.map.painter,c==="reloadTile"),o(null))),void 0,c==="loadTile")}abortTile(d){d.request&&(d.request.cancel(),delete d.request),d.aborted=!0}unloadTile(d){d.unloadVectorData(),this.actor.send("removeTile",{uid:d.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return s.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends Rt{constructor(d,o,c,f){super(d,o,c,f),this.roundZoom=!0,this.type="video",this.options=o}load(){this._loaded=!1;const d=this.options;this.urls=[];for(const o of d.urls)this.urls.push(this.map._requestManager.transformRequest(o,s.ResourceType.Source).url);s.getVideo(this.urls,(o,c)=>{this._loaded=!0,o?this.fire(new s.ErrorEvent(o)):c&&(this.video=c,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(d){if(this.video){const o=this.video.seekable;do.end(0)?this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${o.start(0)} and ${o.end(0)}-second mark.`))):this.video.currentTime=d}}getVideo(){return this.video}onAdd(d){this.map||(this.map=d,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const d=this.map.painter.context,o=d.gl;this.texture?this.video.paused||(this.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE),o.texSubImage2D(o.TEXTURE_2D,0,0,0,o.RGBA,o.UNSIGNED_BYTE,this.video)):(this.texture=new s.Texture(d,this.video,o.RGBA),this.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(d)}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:Rt,canvas:class extends Rt{constructor(d,o,c,f){super(d,o,c,f),o.coordinates?Array.isArray(o.coordinates)&&o.coordinates.length===4&&!o.coordinates.some(_=>!Array.isArray(_)||_.length!==2||_.some(v=>typeof v!="number"))||this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'missing required property "coordinates"'))),o.animate&&typeof o.animate!="boolean"&&this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'optional "animate" property must be a boolean value'))),o.canvas?typeof o.canvas=="string"||o.canvas instanceof s.window.HTMLCanvasElement||this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,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 s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'missing required property "canvas"'))),this.options=o,this.animate=o.animate===void 0||o.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof s.window.HTMLCanvasElement?this.options.canvas:s.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new s.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(d){this.map=d,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let d=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,d=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,d=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const o=this.map.painter.context;this.texture?(d||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new s.Texture(o,this.canvas,o.gl.RGBA,{premultiply:!0}),this._prepareData(o)}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const d of[this.canvas.width,this.canvas.height])if(isNaN(d)||d<=0)return!0;return!1}},custom:class extends s.Evented{constructor(d,o,c,f){super(),this.id=d,this.type="custom",this._dataType="raster",this._dispatcher=c,this._implementation=o,this.setEventedParent(f),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new s.ErrorEvent(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new s.ErrorEvent(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new pi(this._implementation.bounds,this.minzoom,this.maxzoom)),o.update=this._update.bind(this),o.clearTiles=this._clearTiles.bind(this),o.coveringTiles=this._coveringTiles.bind(this),s.extend(this,s.pick(o,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]))}serialize(){return s.pick(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))}loaded(){return this._loaded}onAdd(d){this._map=d,this._loaded=!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(d),this.load()}onRemove(d){this._implementation.onRemove&&this._implementation.onRemove(d)}hasTile(d){if(this._implementation.hasTile){const{x:o,y:c,z:f}=d.canonical;return this._implementation.hasTile({x:o,y:c,z:f})}return!this.tileBounds||this.tileBounds.contains(d.canonical)}loadTile(d,o){const{x:c,y:f,z:_}=d.tileID.canonical,v=new s.window.AbortController;d.request=Promise.resolve(this._implementation.loadTile({x:c,y:f,z:_},{signal:v.signal})).then((function(E){return delete d.request,d.aborted?(d.state="unloaded",o(null)):E===void 0?(d.state="errored",o(null)):E===null?(this.loadTileData(d,{width:this.tileSize,height:this.tileSize,data:null}),d.state="loaded",o(null)):function(S){return S instanceof s.window.ImageData||S instanceof s.window.HTMLCanvasElement||S instanceof s.window.ImageBitmap||S instanceof s.window.HTMLImageElement}(E)?(this.loadTileData(d,E),d.state="loaded",void o(null)):(d.state="errored",o(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}).bind(this)).catch(E=>{E.code!==20&&(d.state="errored",o(E))}),d.request.cancel=()=>v.abort()}loadTileData(d,o){Ye.loadTileData(d,o,this._map.painter)}unloadTileData(d){Ye.unloadTileData(d,this._map.painter)}unloadTile(d,o){if(this.unloadTileData(d),this._implementation.unloadTile){const{x:c,y:f,z:_}=d.tileID.canonical;this._implementation.unloadTile({x:c,y:f,z:_})}o()}abortTile(d,o){d.request&&d.request.cancel&&(d.request.cancel(),delete d.request),o()}hasTransition(){return!1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map(d=>({x:d.canonical.x,y:d.canonical.y,z:d.canonical.z}))}_clearTiles(){this._map.style._clearSource(this.id)}_update(){this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))}}},Dt=function(d,o,c,f){const _=new Pt[o.type](d,o,c,f);if(_.id!==d)throw new Error(`Expected Source id to be ${d} instead of ${_.id}`);return s.bindAll(["load","abort","unload","serialize","prepare"],_),_};function $t(d,o){const c=s.identity([]);return s.scale(c,c,[.5*d.width,.5*-d.height,1]),s.translate(c,c,[1,-1,0]),s.multiply(c,c,d.calculateProjMatrix(o.toUnwrapped())),Float32Array.from(c)}function An(d,o,c,f,_,v,E,S=!1){const C=d.tilesIn(f,E,S);C.sort(vi);const z=[];for(const D of C)z.push({wrappedTileID:D.tile.tileID.wrapped().key,queryResults:D.tile.queryRenderedFeatures(o,c,d._state,D,_,v,$t(d.transform,D.tile.tileID),S)});const P=function(D){const j={},$={};for(const W of D){const Z=W.queryResults,H=W.wrappedTileID,O=$[H]=$[H]||{};for(const G in Z){const J=Z[G],Q=O[G]=O[G]||{},he=j[G]=j[G]||[];for(const pe of J)Q[pe.featureIndex]||(Q[pe.featureIndex]=!0,he.push(pe))}}return j}(z);for(const D in P)P[D].forEach(j=>{const $=j.feature,W=$.layer;W&&W.type!=="background"&&W.type!=="sky"&&($.source=W.source,W["source-layer"]&&($.sourceLayer=W["source-layer"]),$.state=$.id!==void 0?d.getFeatureState(W["source-layer"],$.id):{})});return P}function Fn(d,o){const c=d.getRenderableIds().map(v=>d.getTileByID(v)),f=[],_={};for(let v=0;v{c.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[Fr]}numActive(){return Object.keys(this.active).length}}let Ci;function $s(){return Ci||(Ci=new ii),Ci}function Bg(d,o){const c={};for(const f in d)f!=="ref"&&(c[f]=d[f]);return s.refProperties.forEach(f=>{f in o&&(c[f]=o[f])}),c}function _p(d){d=d.slice();const o=Object.create(null);for(let c=0;c0?(_-E)/S:0;return this.points[v].mult(1-C).add(this.points[c].mult(C))}}class cs{constructor(o,c,f){const _=this.boxCells=[],v=this.circleCells=[];this.xCellCount=Math.ceil(o/f),this.yCellCount=Math.ceil(c/f);for(let E=0;Ethis.width||_<0||c>this.height)return!v&&[];const S=[];if(o<=0&&c<=0&&this.width<=f&&this.height<=_){if(v)return!0;for(let C=0;C0:S}_queryCircle(o,c,f,_,v){const E=o-f,S=o+f,C=c-f,z=c+f;if(S<0||E>this.width||z<0||C>this.height)return!_&&[];const P=[];return this._forEachCell(E,C,S,z,this._queryCellCircle,P,{hitTest:_,circle:{x:o,y:c,radius:f},seenUids:{box:{},circle:{}}},v),_?P.length>0:P}query(o,c,f,_,v){return this._query(o,c,f,_,!1,v)}hitTest(o,c,f,_,v){return this._query(o,c,f,_,!0,v)}hitTestCircle(o,c,f,_){return this._queryCircle(o,c,f,!0,_)}_queryCell(o,c,f,_,v,E,S,C){const z=S.seenUids,P=this.boxCells[v];if(P!==null){const j=this.bboxes;for(const $ of P)if(!z.box[$]){z.box[$]=!0;const W=4*$;if(o<=j[W+2]&&c<=j[W+3]&&f>=j[W+0]&&_>=j[W+1]&&(!C||C(this.boxKeys[$]))){if(S.hitTest)return E.push(!0),!0;E.push({key:this.boxKeys[$],x1:j[W],y1:j[W+1],x2:j[W+2],y2:j[W+3]})}}}const D=this.circleCells[v];if(D!==null){const j=this.circles;for(const $ of D)if(!z.circle[$]){z.circle[$]=!0;const W=3*$;if(this._circleAndRectCollide(j[W],j[W+1],j[W+2],o,c,f,_)&&(!C||C(this.circleKeys[$]))){if(S.hitTest)return E.push(!0),!0;{const Z=j[W],H=j[W+1],O=j[W+2];E.push({key:this.circleKeys[$],x1:Z-O,y1:H-O,x2:Z+O,y2:H+O})}}}}}_queryCellCircle(o,c,f,_,v,E,S,C){const z=S.circle,P=S.seenUids,D=this.boxCells[v];if(D!==null){const $=this.bboxes;for(const W of D)if(!P.box[W]){P.box[W]=!0;const Z=4*W;if(this._circleAndRectCollide(z.x,z.y,z.radius,$[Z+0],$[Z+1],$[Z+2],$[Z+3])&&(!C||C(this.boxKeys[W])))return E.push(!0),!0}}const j=this.circleCells[v];if(j!==null){const $=this.circles;for(const W of j)if(!P.circle[W]){P.circle[W]=!0;const Z=3*W;if(this._circlesCollide($[Z],$[Z+1],$[Z+2],z.x,z.y,z.radius)&&(!C||C(this.circleKeys[W])))return E.push(!0),!0}}}_forEachCell(o,c,f,_,v,E,S,C){const z=this._convertToXCellCoord(o),P=this._convertToYCellCoord(c),D=this._convertToXCellCoord(f),j=this._convertToYCellCoord(_);for(let $=z;$<=D;$++)for(let W=P;W<=j;W++)if(v.call(this,o,c,f,_,this.xCellCount*W+$,E,S,C))return}_convertToXCellCoord(o){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(o*this.xScale)))}_convertToYCellCoord(o){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(o*this.yScale)))}_circlesCollide(o,c,f,_,v,E){const S=_-o,C=v-c,z=f+E;return z*z>S*S+C*C}_circleAndRectCollide(o,c,f,_,v,E,S){const C=(E-_)/2,z=Math.abs(o-(_+C));if(z>C+f)return!1;const P=(S-v)/2,D=Math.abs(c-(v+P));if(D>P+f)return!1;if(z<=C||D<=P)return!0;const j=z-C,$=D-P;return j*j+$*$<=f*f}}const io={unknown:0,flipRequired:1,flipNotRequired:2},Ka=Math.tan(85*Math.PI/180);function Le(d,o,c,f,_,v,E){const S=s.create();if(c)if(v.name==="globe"){const C=s.calculateGlobeLabelMatrix(_,o);s.multiply(S,S,C)}else{const C=Ve([],E);S[0]=C[0],S[1]=C[1],S[4]=C[2],S[5]=C[3],f||s.rotateZ(S,S,_.angle)}else s.multiply(S,_.labelPlaneMatrix,d);return S}function ro(d,o,c,f,_,v,E){const S=Le(d,o,c,f,_,v,E);return v.name==="globe"&&c||(S[2]=S[6]=S[10]=S[14]=0),S}function Nn(d,o,c,f,_,v,E){if(c){if(v.name==="globe"){const S=Le(d,o,c,f,_,v,E);return s.invert(S,S),s.multiply(S,d,S),S}{const S=s.clone(d),C=s.identity([]);return C[0]=E[0],C[1]=E[1],C[4]=E[2],C[5]=E[3],s.multiply(S,S,C),f||s.rotateZ(S,S,-_.angle),S}}return _.glCoordMatrix}function ri(d,o,c,f){const _=[d,o,c,1];c?s.transformMat4$1(_,_,f):Nt(_,_,f);const v=_[3];return _[0]/=v,_[1]/=v,_[2]/=v,_}function yp(d,o){return Math.min(.5+d/o*.5,1.5)}function Ur(d,o){const c=d[0]/d[3],f=d[1]/d[3];return c>=-o[0]&&c<=o[0]&&f>=-o[1]&&f<=o[1]}function qu(d,o,c,f,_,v,E,S,C,z){const P=c.transform,D=f?d.textSizeData:d.iconSizeData,j=s.evaluateSizeForZoom(D,c.transform.zoom),$=P.projection.name==="globe",W=[256/c.width*2+1,256/c.height*2+1],Z=f?d.text.dynamicLayoutVertexArray:d.icon.dynamicLayoutVertexArray;Z.clear();let H=null;$&&(H=f?d.text.globeExtVertexArray:d.icon.globeExtVertexArray);const O=d.lineVertexArray,G=f?d.text.placedSymbolArray:d.icon.placedSymbolArray,J=c.transform.width/c.transform.height;let Q,he=!1;for(let pe=0;peMath.abs(c)?{useVertical:!0}:d===s.WritingMode.vertical?f>0?{needsFlipping:!0}:null:o!==io.unknown&&function(_,v){return _===0||Math.abs(v/_)>Ka}(c,f)?o===io.flipRequired?{needsFlipping:!0}:null:c<0?{needsFlipping:!0}:null}function at(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O,G){const J=o/24,Q=d.lineOffsetX*J,he=d.lineOffsetY*J,{lineStartIndex:pe,glyphStartIndex:de,numGlyphs:ye,segment:_e,writingMode:Te,flipState:Ze}=d,we=pe+d.lineLength,Be=Ce=>{if(P){const[He,Ge,Xe]=Ce.up,gt=z.length;s.updateGlobeVertexNormal(P,gt+0,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+1,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+2,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+3,He,Ge,Xe)}const[qe,Ee,Oe]=Ce.point;s.addDynamicAttributes(z,qe,Ee,Oe,Ce.angle)};if(ye>1){const Ce=vp(J,S,Q,he,c,D,j,d,C,v,$,Z,!1,H,O,G);if(!Ce)return{notEnoughRoom:!0};if(f&&!c){let[qe,Ee,Oe]=Ce.first.point,[He,Ge,Xe]=Ce.last.point;[qe,Ee]=ri(qe,Ee,Oe,E),[He,Ge]=ri(He,Ge,Xe,E);const gt=qs(Te,Ze,(He-qe)*W,Ge-Ee);if(d.flipState=gt&>.needsFlipping?io.flipRequired:io.flipNotRequired,gt)return gt}Be(Ce.first);for(let qe=de+1;qe0?He:Ft(j,Oe,qe,1,_,void 0,H,O.canonical),Xe=qs(Te,Ze,(Ge[0]-qe[0])*W,Ge[1]-qe[1]);if(d.flipState=Xe&&Xe.needsFlipping?io.flipRequired:io.flipNotRequired,Xe)return Xe}const Ce=Xi(J*S.getoffsetX(de),Q,he,c,D,j,_e,pe,we,C,v,$,Z,!1,!1,H,O,G);if(!Ce)return{notEnoughRoom:!0};Be(Ce)}return{}}function Gt(d,o,c,f,_){const{x:v,y:E,z:S}=f.projectTilePoint(d.x,d.y,o);if(!_)return ri(v,E,S,c);const[C,z,P]=_(d);return ri(v+C,E+z,S+P,c)}function Ft(d,o,c,f,_,v,E,S){const C=Gt(d.sub(o)._unit()._add(d),S,_,E,v);return s.sub(C,c,C),s.normalize(C,C),s.scaleAndAdd(C,c,C,f)}function Xi(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O){const G=f?d-o:d+o;let J=G>0?1:-1,Q=0;f&&(J*=-1,Q=Math.PI),J<0&&(Q+=Math.PI);let he=S+E+(J>0?0:1)|0,pe=_,de=_,ye=0,_e=0;const Te=Math.abs(G),Ze=[],we=[];let Be=v,Ce=Be;const qe=()=>Ft(Ce,Be,de,Te-ye+1,P,j,Z,H.canonical);for(;ye+_e<=Te;){if(he+=J,he=C)return null;if(de=pe,Ce=Be,Ze.push(de),$&&we.push(Ce),Be=new s.Point(z.getx(he),z.gety(he)),pe=D[he],!pe){const wt=Gt(Be,H.canonical,P,Z,j);pe=wt[3]>0?D[he]=wt:qe()}ye+=_e,_e=s.distance(de,pe)}W&&j&&(D[he]&&(pe=qe(),_e=s.distance(de,pe)),D[he]=pe);const Ee=(Te-ye)/_e,Oe=Be.sub(Ce)._mult(Ee)._add(Ce),He=s.sub([],pe,de),Ge=s.scaleAndAdd([],de,He,Ee);let Xe=[0,0,1],gt=He[0],Et=He[1];if(O&&(Xe=Z.upVector(H.canonical,Oe.x,Oe.y),Xe[0]!==0||Xe[1]!==0||Xe[2]!==1)){const wt=[Xe[2],0,-Xe[0]],Ut=s.cross([],Xe,wt);s.normalize(wt,wt),s.normalize(Ut,Ut),gt=s.dot(He,wt),Et=s.dot(He,Ut)}if(c){const wt=s.cross([],Xe,He);s.normalize(wt,wt),s.scaleAndAdd(Ge,Ge,wt,c*J)}const dt=Q+Math.atan2(Et,gt);return Ze.push(Ge),$&&we.push(Oe),{point:Ge,angle:dt,path:Ze,tilePath:we,up:Xe}}function br(d,o){const c=o.length,f=c+4*d;o.resize(f),o.float32.fill(-1/0,4*c,4*f)}function Nt(d,o,c){const f=o[0],_=o[1];return d[0]=c[0]*f+c[4]*_+c[12],d[1]=c[1]*f+c[5]*_+c[13],d[3]=c[3]*f+c[7]*_+c[15],d}const Ki=100;class Ya{constructor(o,c,f=new cs(o.width+200,o.height+200,25),_=new cs(o.width+200,o.height+200,25)){this.transform=o,this.grid=f,this.ignoredGrid=_,this.pitchfactor=Math.cos(o._pitch)*o.cameraToCenterDistance,this.screenRightBoundary=o.width+Ki,this.screenBottomBoundary=o.height+Ki,this.gridRightBoundary=o.width+200,this.gridBottomBoundary=o.height+200,this.fogState=c}placeCollisionBox(o,c,f,_,v,E,S,C){let z=f.projectedAnchorX,P=f.projectedAnchorY,D=f.projectedAnchorZ;const j=f.elevation,$=f.tileID,W=o.getProjection();if(j&&$){const[pe,de,ye]=W.upVector($.canonical,f.tileAnchorX,f.tileAnchorY),_e=W.upVectorScale($.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;z+=pe*j*_e,P+=de*j*_e,D+=ye*j*_e}const Z=this.projectAndGetPerspectiveRatio(S,z,P,D,f.tileID,W.name==="globe"||!!j||this.transform.pitch>0,W),H=E*Z.perspectiveRatio,O=(f.x1*c+_.x-f.padding)*H+Z.point.x,G=(f.y1*c+_.y-f.padding)*H+Z.point.y,J=(f.x2*c+_.x+f.padding)*H+Z.point.x,Q=(f.y2*c+_.y+f.padding)*H+Z.point.y,he=Z.perspectiveRatio<=.55||Z.occluded;return!this.isInsideGrid(O,G,J,Q)||!v&&this.grid.hitTest(O,G,J,Q,C)||he?{box:[],offscreen:!1,occluded:Z.occluded}:{box:[O,G,J,Q],offscreen:this.isOffscreen(O,G,J,Q),occluded:!1}}placeCollisionCircles(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z){const H=[],O=this.transform.elevation,G=o.getProjection(),J=O?O.getAtTileOffsetFunc(Z,this.transform.center.lat,this.transform.worldSize,G):null,Q=new s.Point(f.tileAnchorX,f.tileAnchorY);let{x:he,y:pe,z:de}=G.projectTilePoint(Q.x,Q.y,Z.canonical);if(J){const[Oe,He,Ge]=J(Q);he+=Oe,pe+=He,de+=Ge}const ye=G.name==="globe",_e=this.projectAndGetPerspectiveRatio(S,he,pe,de,Z,ye||!!O||this.transform.pitch>0,G),{perspectiveRatio:Te}=_e,Ze=(D?E/Te:E*Te)/s.ONE_EM,we=ri(he,pe,de,C),Be=_e.signedDistanceFromCamera>0?vp(Ze,v,f.lineOffsetX*Ze,f.lineOffsetY*Ze,!1,we,Q,f,_,C,{},O&&!D?J:null,D&&!!O,G,Z,D):null;let Ce=!1,qe=!1,Ee=!0;if(Be&&!_e.occluded){const Oe=.5*$*Te+W,He=new s.Point(-100,-100),Ge=new s.Point(this.screenRightBoundary,this.screenBottomBoundary),Xe=new $u,{first:gt,last:Et}=Be,dt=gt.path.length;let wt=[];for(let mt=dt-1;mt>=1;mt--)wt.push(gt.path[mt]);for(let mt=1;mt(J&&!ye&&(rn=J(onmt[3]<=0)&&(wt=[]));let Ot=[];if(wt.length>0){let mt=1/0,en=-1/0,rn=1/0,on=-1/0;for(const sn of wt)mt=Math.min(mt,sn[0]),rn=Math.min(rn,sn[1]),en=Math.max(en,sn[0]),on=Math.max(on,sn[1]);en>=He.x&&mt<=Ge.x&&on>=He.y&&rn<=Ge.y&&(Ot=[wt.map(sn=>new s.Point(sn[0],sn[1]))],(mtGe.x||rnGe.y)&&(Ot=s.clipLine(Ot,He.x,He.y,Ge.x,Ge.y)))}for(const mt of Ot){Xe.reset(mt,.25*Oe);let en=0;en=Xe.length<=.5*Oe?1:Math.ceil(Xe.paddedLength/Ut)+1;for(let rn=0;rn0?(s.transformMat4$1(C,C,o),this.fogState&&v&&S.name!=="globe"&&(z=function(j,$,W,Z,H,O){const G=O.calculateFogTileMatrix(H),J=[$,W,Z];return s.transformMat4(J,J,G),wr(j,J,O.pitch,O._fov)}(this.fogState,c,f,_,v.toUnwrapped(),this.transform)>.9)):Nt(C,C,o);const P=C[3];return{point:new s.Point((C[0]/P+1)/2*this.transform.width+Ki,(-C[1]/P+1)/2*this.transform.height+Ki),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(S)/P*.5,1.5),signedDistanceFromCamera:P,occluded:E&&C[2]>P||z}}isOffscreen(o,c,f,_){return f=this.screenRightBoundary||_this.screenBottomBoundary}isInsideGrid(o,c,f,_){return f>=0&&o=0&&cf.collisionGroupID===c}}return this.collisionGroups[o]}}function el(d,o,c,f,_){const{horizontalAlign:v,verticalAlign:E}=s.getAnchorAlignment(d),S=-(v-.5)*o,C=-(E-.5)*c,z=s.evaluateVariableOffset(d,f);return new s.Point(S+z[0]*_,C+z[1]*_)}function tl(d,o,c,f,_){const v=new s.Point(d,o);return c&&v._rotate(f?_:-_),v}class sc{constructor(o,c,f,_,v){this.transform=o.clone(),this.projection=o.projection.name,this.collisionIndex=new Ya(this.transform,v),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=c,this.retainedQueryData={},this.collisionGroups=new wp(f),this.collisionCircleArrays={},this.prevPlacement=_,_&&(_.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(o,c,f,_){const v=f.getBucket(c),E=f.latestFeatureIndex;if(!v||!E||c.id!==v.layerIds[0])return;const S=v.layers[0].layout,C=f.collisionBoxArray,z=Math.pow(2,this.transform.zoom-f.tileID.overscaledZ),P=f.tileSize/s.EXTENT,D=f.tileID.toUnwrapped();this.transform.setProjection(v.projection);const j=($=f.tileID,W=v.getProjection(),Z=this.transform,W.name===this.projection?Z.calculateProjMatrix($.toUnwrapped()):us(Z,W,$));var $,W,Z;const H=S.get("text-pitch-alignment")==="map",O=S.get("text-rotation-alignment")==="map";c.compileFilter();const G=c.dynamicFilter(),J=c.dynamicFilterNeedsFeature(),Q=this.transform.calculatePixelsToTileUnitsMatrix(f),he=ro(j,f.tileID.canonical,H,O,this.transform,v.getProjection(),Q);let pe=null;if(H){const _e=Nn(j,f.tileID.canonical,H,O,this.transform,v.getProjection(),Q);pe=s.multiply([],this.transform.labelPlaneMatrix,_e)}let de=null;G&&f.latestFeatureIndex&&(de={unwrappedTileID:D,dynamicFilter:G,dynamicFilterNeedsFeature:J,featureIndex:f.latestFeatureIndex}),this.retainedQueryData[v.bucketInstanceId]=new Zu(v.bucketInstanceId,E,v.sourceLayerIndex,v.index,f.tileID);const ye={bucket:v,layout:S,posMatrix:j,textLabelPlaneMatrix:he,labelToScreenMatrix:pe,clippingData:de,scale:z,textPixelRatio:P,holdingForFade:f.holdingForFade(),collisionBoxArray:C,partiallyEvaluatedTextSize:s.evaluateSizeForZoom(v.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:s.evaluateSizeForZoom(v.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(v.sourceID)};if(_)for(const _e of v.sortKeyRanges){const{sortKey:Te,symbolInstanceStart:Ze,symbolInstanceEnd:we}=_e;o.push({sortKey:Te,symbolInstanceStart:Ze,symbolInstanceEnd:we,parameters:ye})}else o.push({symbolInstanceStart:0,symbolInstanceEnd:v.symbolInstances.length,parameters:ye})}attemptAnchorPlacement(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O,G){const{textOffset0:J,textOffset1:Q,crossTileID:he}=j,pe=[J,Q],de=el(o,f,_,pe,v),ye=this.collisionIndex.placeCollisionBox(W,v,c,tl(de.x,de.y,E,S,this.transform.angle),D,C,z,P.predicate);if(H){const _e=W.getSymbolInstanceIconSize(G,this.transform.zoom,j.placedIconSymbolIndex);if(this.collisionIndex.placeCollisionBox(W,_e,H,tl(de.x,de.y,E,S,this.transform.angle),D,C,z,P.predicate).box.length===0)return}if(ye.box.length>0){let _e;return this.prevPlacement&&this.prevPlacement.variableOffsets[he]&&this.prevPlacement.placements[he]&&this.prevPlacement.placements[he].text&&(_e=this.prevPlacement.variableOffsets[he].anchor),this.variableOffsets[he]={textOffset:pe,width:f,height:_,anchor:o,textScale:v,prevAnchor:_e},this.markUsedJustification(W,o,j,Z),W.allowVerticalPlacement&&(this.markUsedOrientation(W,Z,j),this.placedOrientations[he]=Z),{shift:de,placedGlyphBoxes:ye}}}placeLayerBucketPart(o,c,f,_){const{bucket:v,layout:E,posMatrix:S,textLabelPlaneMatrix:C,labelToScreenMatrix:z,clippingData:P,textPixelRatio:D,holdingForFade:j,collisionBoxArray:$,partiallyEvaluatedTextSize:W,partiallyEvaluatedIconSize:Z,collisionGroup:H}=o.parameters,O=E.get("text-optional"),G=E.get("icon-optional"),J=E.get("text-allow-overlap"),Q=E.get("icon-allow-overlap"),he=E.get("text-rotation-alignment")==="map",pe=E.get("text-pitch-alignment")==="map",de=E.get("icon-text-fit")!=="none",ye=E.get("symbol-z-order")==="viewport-y";this.transform.setProjection(v.projection);let _e=J&&(Q||!v.hasIconData()||G),Te=Q&&(J||!v.hasTextData()||O);!v.collisionArrays&&$&&v.deserializeCollisionBoxes($),f&&_&&v.updateCollisionDebugBuffers(this.transform.zoom,$);const Ze=(we,Be,Ce)=>{const{crossTileID:qe,numVerticalGlyphVertices:Ee}=we;if(P){const Tn={zoom:this.transform.zoom,pitch:this.transform.pitch};let an=null;if(P.dynamicFilterNeedsFeature){const Xt=this.retainedQueryData[v.bucketInstanceId];an=P.featureIndex.loadFeature({featureIndex:we.featureIndex,bucketIndex:Xt.bucketIndex,sourceLayerIndex:Xt.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,P.dynamicFilter)(Tn,an,this.retainedQueryData[v.bucketInstanceId].tileID.canonical,new s.Point(we.tileAnchorX,we.tileAnchorY),this.transform.calculateDistanceTileData(P.unwrappedTileID)))return this.placements[qe]=new Ja(!1,!1,!1,!0),void c.add(qe)}if(c.has(qe))return;if(j)return void(this.placements[qe]=new Ja(!1,!1,!1));let Oe=!1,He=!1,Ge=!0,Xe=!1,gt=!1,Et=null,dt={box:null,offscreen:null,occluded:null},wt={box:null,offscreen:null,occluded:null},Ut=null,Ot=null,mt=null,en=0,rn=0,on=0;Ce.textFeatureIndex?en=Ce.textFeatureIndex:we.useRuntimeCollisionCircles&&(en=we.featureIndex),Ce.verticalTextFeatureIndex&&(rn=Ce.verticalTextFeatureIndex);const sn=Tn=>{Tn.tileID=this.retainedQueryData[v.bucketInstanceId].tileID;const an=this.transform.elevation;(an||Tn.elevation)&&(Tn.elevation=an?an.getAtTileOffset(Tn.tileID,Tn.tileAnchorX,Tn.tileAnchorY):0)},wi=Ce.textBox;if(wi){sn(wi);const Tn=Xt=>{let Un=s.WritingMode.horizontal;if(v.allowVerticalPlacement&&!Xt&&this.prevPlacement){const Ii=this.prevPlacement.placedOrientations[qe];Ii&&(this.placedOrientations[qe]=Ii,Un=Ii,this.markUsedOrientation(v,Un,we))}return Un},an=(Xt,Un)=>{if(v.allowVerticalPlacement&&Ee>0&&Ce.verticalTextBox){for(const Ii of v.writingModes)if(Ii===s.WritingMode.vertical?(dt=Un(),wt=dt):dt=Xt(),dt&&dt.box&&dt.box.length)break}else dt=Xt()};if(E.get("text-variable-anchor")){let Xt=E.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[qe]){const wn=this.prevPlacement.variableOffsets[qe];Xt.indexOf(wn.anchor)>0&&(Xt=Xt.filter(Oi=>Oi!==wn.anchor),Xt.unshift(wn.anchor))}const Un=(wn,Oi,Lc)=>{const ys=v.getSymbolInstanceTextSize(W,we,this.transform.zoom,Be),wl=(wn.x2-wn.x1)*ys+2*wn.padding,po=(wn.y2-wn.y1)*ys+2*wn.padding,jo=de&&!Q?Oi:null;jo&&sn(jo);let vs={box:[],offscreen:!1,occluded:!1};const Rc=J?2*Xt.length:Xt.length;for(let bl=0;bl=Xt.length,we,Be,v,Lc,jo,W,Z);if(Oh&&(vs=Oh.placedGlyphBoxes,vs&&vs.box&&vs.box.length)){Oe=!0,Et=Oh.shift;break}}return vs};an(()=>Un(wi,Ce.iconBox,s.WritingMode.horizontal),()=>{const wn=Ce.verticalTextBox;return wn&&sn(wn),v.allowVerticalPlacement&&!(dt&&dt.box&&dt.box.length)&&Ee>0&&wn?Un(wn,Ce.verticalIconBox,s.WritingMode.vertical):{box:null,offscreen:null,occluded:null}}),dt&&(Oe=dt.box,Ge=dt.offscreen,Xe=dt.occluded);const Ii=Tn(!(!dt||!dt.box));if(!Oe&&this.prevPlacement){const wn=this.prevPlacement.variableOffsets[qe];wn&&(this.variableOffsets[qe]=wn,this.markUsedJustification(v,wn.anchor,we,Ii))}}else{const Xt=(Un,Ii)=>{const wn=v.getSymbolInstanceTextSize(W,we,this.transform.zoom,Be),Oi=this.collisionIndex.placeCollisionBox(v,wn,Un,new s.Point(0,0),J,D,S,H.predicate);return Oi&&Oi.box&&Oi.box.length&&(this.markUsedOrientation(v,Ii,we),this.placedOrientations[qe]=Ii),Oi};an(()=>Xt(wi,s.WritingMode.horizontal),()=>{const Un=Ce.verticalTextBox;return v.allowVerticalPlacement&&Ee>0&&Un?(sn(Un),Xt(Un,s.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}}),Tn(!!(dt&&dt.box&&dt.box.length))}}if(Ut=dt,Oe=Ut&&Ut.box&&Ut.box.length>0,Ge=Ut&&Ut.offscreen,Xe=Ut&&Ut.occluded,we.useRuntimeCollisionCircles){const Tn=v.text.placedSymbolArray.get(we.centerJustifiedTextSymbolIndex>=0?we.centerJustifiedTextSymbolIndex:we.verticalPlacedTextSymbolIndex),an=s.evaluateSizeForFeature(v.textSizeData,W,Tn),Xt=E.get("text-padding");Ot=this.collisionIndex.placeCollisionCircles(v,J,Tn,v.lineVertexArray,v.glyphOffsetArray,an,S,C,z,f,pe,H.predicate,we.collisionCircleDiameter*an/s.ONE_EM,Xt,this.retainedQueryData[v.bucketInstanceId].tileID),Oe=J||Ot.circles.length>0&&!Ot.collisionDetected,Ge=Ge&&Ot.offscreen,Xe=Ot.occluded}if(Ce.iconFeatureIndex&&(on=Ce.iconFeatureIndex),Ce.iconBox){const Tn=an=>{sn(an);const Xt=de&&Et?tl(Et.x,Et.y,he,pe,this.transform.angle):new s.Point(0,0),Un=v.getSymbolInstanceIconSize(Z,this.transform.zoom,we.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(v,Un,an,Xt,Q,D,S,H.predicate)};wt&&wt.box&&wt.box.length&&Ce.verticalIconBox?(mt=Tn(Ce.verticalIconBox),He=mt.box.length>0):(mt=Tn(Ce.iconBox),He=mt.box.length>0),Ge=Ge&&mt.offscreen,gt=mt.occluded}const si=O||we.numHorizontalGlyphVertices===0&&Ee===0,lr=G||we.numIconVertices===0;if(si||lr?lr?si||(He=He&&Oe):Oe=He&&Oe:He=Oe=He&&Oe,Oe&&Ut&&Ut.box&&this.collisionIndex.insertCollisionBox(Ut.box,E.get("text-ignore-placement"),v.bucketInstanceId,wt&&wt.box&&rn?rn:en,H.ID),He&&mt&&this.collisionIndex.insertCollisionBox(mt.box,E.get("icon-ignore-placement"),v.bucketInstanceId,on,H.ID),Ot&&(Oe&&this.collisionIndex.insertCollisionCircles(Ot.circles,E.get("text-ignore-placement"),v.bucketInstanceId,en,H.ID),f)){const Tn=v.bucketInstanceId;let an=this.collisionCircleArrays[Tn];an===void 0&&(an=this.collisionCircleArrays[Tn]=new Qa);for(let Xt=0;Xt=0;--Be){const Ce=we[Be];Ze(v.symbolInstances.get(Ce),Ce,v.collisionArrays[Ce])}}else for(let we=o.symbolInstanceStart;we=0&&(o.text.placedSymbolArray.get(v).crossTileID=D>=0&&v!==D?0:z),E>=0&&(o.text.placedSymbolArray.get(E).crossTileID=D>=0&&E!==D?0:z),S>=0&&(o.text.placedSymbolArray.get(S).crossTileID=D>=0&&S!==D?0:z),C>=0&&(o.text.placedSymbolArray.get(C).crossTileID=D>=0&&C!==D?0:z)}markUsedOrientation(o,c,f){const _=c===s.WritingMode.horizontal||c===s.WritingMode.horizontalOnly?c:0,v=c===s.WritingMode.vertical?c:0,{leftJustifiedTextSymbolIndex:E,centerJustifiedTextSymbolIndex:S,rightJustifiedTextSymbolIndex:C,verticalPlacedTextSymbolIndex:z}=f,P=o.text.placedSymbolArray;E>=0&&(P.get(E).placedOrientation=_),S>=0&&(P.get(S).placedOrientation=_),C>=0&&(P.get(C).placedOrientation=_),z>=0&&(P.get(z).placedOrientation=v)}commit(o){this.commitTime=o,this.zoomAtLastRecencyCheck=this.transform.zoom;const c=this.prevPlacement;let f=!1;this.prevZoomAdjustment=c?c.zoomAdjustment(this.transform.zoom):0;const _=c?c.symbolFadeChange(o):1,v=c?c.opacities:{},E=c?c.variableOffsets:{},S=c?c.placedOrientations:{};for(const C in this.placements){const z=this.placements[C],P=v[C];P?(this.opacities[C]=new oo(P,_,z.text,z.icon,null,z.clipped),f=f||z.text!==P.text.placed||z.icon!==P.icon.placed):(this.opacities[C]=new oo(null,_,z.text,z.icon,z.skipFade,z.clipped),f=f||z.text||z.icon)}for(const C in v){const z=v[C];if(!this.opacities[C]){const P=new oo(z,_,!1,!1);P.isHidden()||(this.opacities[C]=P,f=f||z.text.placed||z.icon.placed)}}for(const C in E)this.variableOffsets[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.variableOffsets[C]=E[C]);for(const C in S)this.placedOrientations[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.placedOrientations[C]=S[C]);f?this.lastPlacementChangeTime=o:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=c?c.lastPlacementChangeTime:o)}updateLayerOpacities(o,c){const f=new Set;for(const _ of c){const v=_.getBucket(o);v&&_.latestFeatureIndex&&o.id===v.layerIds[0]&&this.updateBucketOpacities(v,f,_.collisionBoxArray)}}updateBucketOpacities(o,c,f){o.hasTextData()&&o.text.opacityVertexArray.clear(),o.hasIconData()&&o.icon.opacityVertexArray.clear(),o.hasIconCollisionBoxData()&&o.iconCollisionBox.collisionVertexArray.clear(),o.hasTextCollisionBoxData()&&o.textCollisionBox.collisionVertexArray.clear();const _=o.layers[0].layout,v=!!o.layers[0].dynamicFilter(),E=new oo(null,0,!1,!1,!0),S=_.get("text-allow-overlap"),C=_.get("icon-allow-overlap"),z=_.get("text-variable-anchor"),P=_.get("text-rotation-alignment")==="map",D=_.get("text-pitch-alignment")==="map",j=_.get("icon-text-fit")!=="none",$=new oo(null,0,S&&(C||!o.hasIconData()||_.get("icon-optional")),C&&(S||!o.hasTextData()||_.get("text-optional")),!0);!o.collisionArrays&&f&&(o.hasIconCollisionBoxData()||o.hasTextCollisionBoxData())&&o.deserializeCollisionBoxes(f);const W=(H,O,G)=>{for(let J=0;J0||J>0,_e=he>0,Te=this.placedOrientations[Q],Ze=Te===s.WritingMode.vertical,we=Te===s.WritingMode.horizontal||Te===s.WritingMode.horizontalOnly;if(!ye&&!_e||de.isHidden()||Z++,ye){const Be=nl(de.text);W(o.text,G,Ze?Pn:Be),W(o.text,J,we?Pn:Be);const Ce=de.text.isHidden(),{leftJustifiedTextSymbolIndex:qe,centerJustifiedTextSymbolIndex:Ee,rightJustifiedTextSymbolIndex:Oe,verticalPlacedTextSymbolIndex:He}=O,Ge=o.text.placedSymbolArray,Xe=Ce||Ze?1:0;qe>=0&&(Ge.get(qe).hidden=Xe),Ee>=0&&(Ge.get(Ee).hidden=Xe),Oe>=0&&(Ge.get(Oe).hidden=Xe),He>=0&&(Ge.get(He).hidden=Ce||we?1:0);const gt=this.variableOffsets[Q];gt&&this.markUsedJustification(o,gt.anchor,O,Te);const Et=this.placedOrientations[Q];Et&&(this.markUsedJustification(o,"left",O,Et),this.markUsedOrientation(o,Et,O))}if(_e){const Be=nl(de.icon),{placedIconSymbolIndex:Ce,verticalPlacedIconSymbolIndex:qe}=O,Ee=o.icon.placedSymbolArray,Oe=de.icon.isHidden()?1:0;Ce>=0&&(W(o.icon,he,Ze?Pn:Be),Ee.get(Ce).hidden=Oe),qe>=0&&(W(o.icon,O.numVerticalIconVertices,we?Pn:Be),Ee.get(qe).hidden=Oe)}if(o.hasIconCollisionBoxData()||o.hasTextCollisionBoxData()){const Be=o.collisionArrays[H];if(Be){let Ce=new s.Point(0,0),qe=!0;if(Be.textBox||Be.verticalTextBox){if(z){const Oe=this.variableOffsets[Q];Oe?(Ce=el(Oe.anchor,Oe.width,Oe.height,Oe.textOffset,Oe.textScale),P&&Ce._rotate(D?this.transform.angle:-this.transform.angle)):qe=!1}v&&(qe=!de.clipped),Be.textBox&&Zs(o.textCollisionBox.collisionVertexArray,de.text.placed,!qe||Ze,Ce.x,Ce.y),Be.verticalTextBox&&Zs(o.textCollisionBox.collisionVertexArray,de.text.placed,!qe||we,Ce.x,Ce.y)}const Ee=qe&&!!(!we&&Be.verticalIconBox);Be.iconBox&&Zs(o.iconCollisionBox.collisionVertexArray,de.icon.placed,Ee,j?Ce.x:0,j?Ce.y:0),Be.verticalIconBox&&Zs(o.iconCollisionBox.collisionVertexArray,de.icon.placed,!Ee,j?Ce.x:0,j?Ce.y:0)}}}if(o.fullyClipped=Z===0,o.sortFeatures(this.transform.angle),this.retainedQueryData[o.bucketInstanceId]&&(this.retainedQueryData[o.bucketInstanceId].featureSortOrder=o.featureSortOrder),o.hasTextData()&&o.text.opacityVertexBuffer&&o.text.opacityVertexBuffer.updateData(o.text.opacityVertexArray),o.hasIconData()&&o.icon.opacityVertexBuffer&&o.icon.opacityVertexBuffer.updateData(o.icon.opacityVertexArray),o.hasIconCollisionBoxData()&&o.iconCollisionBox.collisionVertexBuffer&&o.iconCollisionBox.collisionVertexBuffer.updateData(o.iconCollisionBox.collisionVertexArray),o.hasTextCollisionBoxData()&&o.textCollisionBox.collisionVertexBuffer&&o.textCollisionBox.collisionVertexBuffer.updateData(o.textCollisionBox.collisionVertexArray),o.bucketInstanceId in this.collisionCircleArrays){const H=this.collisionCircleArrays[o.bucketInstanceId];o.placementInvProjMatrix=H.invProjMatrix,o.placementViewportMatrix=H.viewportMatrix,o.collisionCircleArray=H.circles,delete this.collisionCircleArrays[o.bucketInstanceId]}}symbolFadeChange(o){return this.fadeDuration===0?1:(o-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(o){return Math.max(0,(this.transform.zoom-o)/1.5)}hasTransitions(o){return this.stale||o-this.lastPlacementChangeTimeo}setStale(){this.stale=!0}}function Zs(d,o,c,f,_){d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0)}const Ri=Math.pow(2,25),Dn=Math.pow(2,24),Wu=Math.pow(2,17),Hu=Math.pow(2,16),Di=Math.pow(2,9),or=Math.pow(2,8),bp=Math.pow(2,1);function nl(d){if(d.opacity===0&&!d.placed)return 0;if(d.opacity===1&&d.placed)return 4294967295;const o=d.placed?1:0,c=Math.floor(127*d.opacity);return c*Ri+o*Dn+c*Wu+o*Hu+c*Di+o*or+c*bp+o}const Pn=0;class il{constructor(o){this._sortAcrossTiles=o.layout.get("symbol-z-order")!=="viewport-y"&&o.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs=new Set,this._bucketParts=[]}continuePlacement(o,c,f,_,v){const E=this._bucketParts;for(;this._currentTileIndexS.sortKey-C.sortKey));this._currentPartIndex{const E=s.exported.now()-_;return!this._forceFullPlacement&&E>2};for(;this._currentPlacementIndex>=0;){const E=c[o[this._currentPlacementIndex]],S=this.placement.collisionIndex.transform.zoom;if(E.type==="symbol"&&(!E.minzoom||E.minzoom<=S)&&(!E.maxzoom||E.maxzoom>S)){if(this._inProgressLayer||(this._inProgressLayer=new il(E)),this._inProgressLayer.continuePlacement(f[E.source],this.placement,this._showCollisionBoxes,E,v))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(o){return this.placement.commit(o),this.placement}}const hs=512/s.EXTENT/2;class fi{constructor(o,c,f){this.tileID=o,this.bucketInstanceId=f,this.index=new s.KDBush(c.length,16,Int32Array),this.keys=[],this.crossTileIDs=[];const _=o.canonical.x*s.EXTENT,v=o.canonical.y*s.EXTENT;for(let E=0;Eo.overscaledZ)for(const S in E){const C=E[S];C.tileID.isChildOf(o)&&C.findMatches(c.symbolInstances,o,_)}else{const S=E[o.scaledTo(Number(v)).key];S&&S.findMatches(c.symbolInstances,o,_)}}for(let v=0;v{c[f]=!0});for(const f in this.layerIndexes)c[f]||delete this.layerIndexes[f]}}const No=(d,o)=>s.emitValidationErrors(d,o&&o.filter(c=>c.identifier!=="source.canvas")),ac=s.pick(Jt,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),Fg=s.pick(Jt,["setCenter","setZoom","setBearing","setPitch"]),Ju={version:8,layers:[],sources:{}},Ws={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class jr extends s.Evented{constructor(o,c={}){super(),this.map=o,this.dispatcher=new xt($s(),this),this.imageManager=new di,this.imageManager.setEventedParent(this),this.glyphManager=new s.GlyphManager(o._requestManager,c.localFontFamily?s.LocalGlyphMode.all:c.localIdeographFontFamily?s.LocalGlyphMode.ideographs:s.LocalGlyphMode.none,c.localFontFamily||c.localIdeographFontFamily),this.crossTileSymbolIndex=new so,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",s.getReferrer());const f=this;this._rtlTextPluginCallback=jr.registerForPluginStateChange(_=>{f.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:_.pluginStatus,pluginURL:_.pluginURL},(v,E)=>{if(s.triggerPluginCompletionEvent(v),E&&E.every(S=>S))for(const S in f._sourceCaches){const C=f._sourceCaches[S],z=C.getSource().type;z!=="vector"&&z!=="geojson"||C.reload()}})}),this.on("data",_=>{if(_.dataType!=="source"||_.sourceDataType!=="metadata")return;const v=this.getSource(_.sourceId);if(v&&v.vectorLayerIds)for(const E in this._layers){const S=this._layers[E];S.source===v.id&&this._validateLayer(S)}})}loadURL(o,c={}){this.fire(new s.Event("dataloading",{dataType:"style"}));const f=typeof c.validate=="boolean"?c.validate:!s.isMapboxURL(o);o=this.map._requestManager.normalizeStyleURL(o,c.accessToken);const _=this.map._requestManager.transformRequest(o,s.ResourceType.Style);this._request=s.getJSON(_,(v,E)=>{this._request=null,v?this.fire(new s.ErrorEvent(v)):E&&this._load(E,f)})}loadJSON(o,c={}){this.fire(new s.Event("dataloading",{dataType:"style"})),this._request=s.exported.frame(()=>{this._request=null,this._load(o,c.validate!==!1)})}loadEmpty(){this.fire(new s.Event("dataloading",{dataType:"style"})),this._load(Ju,!1)}_updateLayerCount(o,c){const f=c?1:-1;o.is3D()&&(this._num3DLayers+=f),o.type==="circle"&&(this._numCircleLayers+=f),o.type==="symbol"&&(this._numSymbolLayers+=f)}_load(o,c){if(c&&No(this,s.validateStyle(o)))return;this._loaded=!0,this.stylesheet=s.clone$1(o),this._updateMapProjection();for(const _ in o.sources)this.addSource(_,o.sources[_],{validate:!1});this._changed=!1,o.sprite?this._loadSprite(o.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(o.glyphs);const f=_p(this.stylesheet.layers);this._order=f.map(_=>_.id),this._layers={},this._serializedLayers={};for(const _ of f){const v=s.createStyleLayer(_);v.setEventedParent(this,{layer:{id:v.id}}),this._layers[v.id]=v,this._serializedLayers[v.id]=v.serialize(),this._updateLayerCount(v,!0)}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new Vt(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new s.Event("data",{dataType:"style"})),this.fire(new s.Event("style.load"))}terrainSetForDrapingOnly(){return!!this.terrain&&this.terrain.drapeRenderMode===0}setProjection(o){o?this.stylesheet.projection=o:delete this.stylesheet.projection,this._updateMapProjection()}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null))}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection)}_loadSprite(o){this._spriteRequest=function(c,f,_){let v,E,S;const C=s.exported.devicePixelRatio>1?"@2x":"";let z=s.getJSON(f.transformRequest(f.normalizeSpriteURL(c,C,".json"),s.ResourceType.SpriteJSON),(j,$)=>{z=null,S||(S=j,v=$,D())}),P=s.getImage(f.transformRequest(f.normalizeSpriteURL(c,C,".png"),s.ResourceType.SpriteImage),(j,$)=>{P=null,S||(S=j,E=$,D())});function D(){if(S)_(S);else if(v&&E){const j=s.exported.getImageData(E),$={};for(const W in v){const{width:Z,height:H,x:O,y:G,sdf:J,pixelRatio:Q,stretchX:he,stretchY:pe,content:de}=v[W],ye=new s.RGBAImage({width:Z,height:H});s.RGBAImage.copy(j,ye,{x:O,y:G},{x:0,y:0},{width:Z,height:H}),$[W]={data:ye,pixelRatio:Q,sdf:J,stretchX:he,stretchY:pe,content:de}}_(null,$)}}return{cancel(){z&&(z.cancel(),z=null),P&&(P.cancel(),P=null)}}}(o,this.map._requestManager,(c,f)=>{if(this._spriteRequest=null,c)this.fire(new s.ErrorEvent(c));else if(f)for(const _ in f)this.imageManager.addImage(_,f[_]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new s.Event("data",{dataType:"style"}))})}_validateLayer(o){const c=this.getSource(o.source);if(!c)return;const f=o.sourceLayer;f&&(c.type==="geojson"||c.vectorLayerIds&&c.vectorLayerIds.indexOf(f)===-1)&&this.fire(new s.ErrorEvent(new Error(`Source layer "${f}" does not exist on source "${c.id}" as specified by style layer "${o.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const o in this._sourceCaches)if(!this._sourceCaches[o].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(o){const c=[];for(const f of o){const _=this._layers[f];_.type!=="custom"&&c.push(_.serialize())}return c}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const o in this._sourceCaches)if(this._sourceCaches[o].hasTransition())return!0;for(const o in this._layers)if(this._layers[o].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(o){return!!this.terrain&&(typeof o.isLayerDraped=="function"?o.isLayerDraped():Ws[o.type])}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading")}update(o){if(!this._loaded)return;const c=this._changed;if(this._changed){const _=Object.keys(this._updatedLayers),v=Object.keys(this._removedLayers);(_.length||v.length)&&this._updateWorkerLayers(_,v);for(const E in this._updatedSources){const S=this._updatedSources[E];S==="reload"?this._reloadSource(E):S==="clear"&&this._clearSource(E)}this._updateTilesForChangedImages();for(const E in this._updatedPaintProps)this._layers[E].updateTransitions(o);this.light.updateTransitions(o),this.fog&&this.fog.updateTransitions(o),this._resetUpdates()}const f={};for(const _ in this._sourceCaches){const v=this._sourceCaches[_];f[_]=v.used,v.used=!1}for(const _ of this._order){const v=this._layers[_];if(v.recalculate(o,this._availableImages),!v.isHidden(o.zoom)){const S=this._getLayerSourceCache(v);S&&(S.used=!0)}const E=this.map.painter;if(E){const S=v.getProgramIds();if(!S)continue;const C=v.getProgramConfiguration(o.zoom);for(const z of S)E.useProgram(z,C)}}for(const _ in f){const v=this._sourceCaches[_];f[_]!==v.used&&v.getSource().fire(new s.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:v.getSource().id}))}this.light.recalculate(o),this.terrain&&this.terrain.recalculate(o),this.fog&&this.fog.recalculate(o),this.z=o.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),c&&this.fire(new s.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const o=Object.keys(this._changedImages);if(o.length){for(const c in this._sourceCaches)this._sourceCaches[c].reloadTilesForDependencies(["icons","patterns"],o);this._changedImages={}}}_updateWorkerLayers(o,c){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(o),removedIds:c})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(o){if(this._checkLoaded(),No(this,s.validateStyle(o)))return!1;(o=s.clone$1(o)).layers=_p(o.layers);const c=function(_,v){if(!_)return[{command:Jt.setStyle,args:[v]}];let E=[];try{if(!M(_.version,v.version))return[{command:Jt.setStyle,args:[v]}];M(_.center,v.center)||E.push({command:Jt.setCenter,args:[v.center]}),M(_.zoom,v.zoom)||E.push({command:Jt.setZoom,args:[v.zoom]}),M(_.bearing,v.bearing)||E.push({command:Jt.setBearing,args:[v.bearing]}),M(_.pitch,v.pitch)||E.push({command:Jt.setPitch,args:[v.pitch]}),M(_.sprite,v.sprite)||E.push({command:Jt.setSprite,args:[v.sprite]}),M(_.glyphs,v.glyphs)||E.push({command:Jt.setGlyphs,args:[v.glyphs]}),M(_.transition,v.transition)||E.push({command:Jt.setTransition,args:[v.transition]}),M(_.light,v.light)||E.push({command:Jt.setLight,args:[v.light]}),M(_.fog,v.fog)||E.push({command:Jt.setFog,args:[v.fog]}),M(_.projection,v.projection)||E.push({command:Jt.setProjection,args:[v.projection]});const S={},C=[];(function(D,j,$,W){let Z;for(Z in j=j||{},D=D||{})D.hasOwnProperty(Z)&&(j.hasOwnProperty(Z)||Xa(Z,$,W));for(Z in j){if(!j.hasOwnProperty(Z))continue;const H=j[Z];D.hasOwnProperty(Z)?M(D[Z],H)||(D[Z].type==="geojson"&&H.type==="geojson"&&oc(D,j,Z)?$.push({command:Jt.setGeoJSONSourceData,args:[Z,H.data]}):Vu(Z,j,$,W)):ju(Z,j,$)}})(_.sources,v.sources,C,S);const z=[];_.layers&&_.layers.forEach(D=>{D.source&&S[D.source]?E.push({command:Jt.removeLayer,args:[D.id]}):z.push(D)});let P=_.terrain;P&&S[P.source]&&(E.push({command:Jt.setTerrain,args:[void 0]}),P=void 0),E=E.concat(C),M(P,v.terrain)||E.push({command:Jt.setTerrain,args:[v.terrain]}),function(D,j,$){j=j||[];const W=(D=D||[]).map(no),Z=j.map(no),H=D.reduce(Gu,{}),O=j.reduce(Gu,{}),G=W.slice(),J=Object.create(null);let Q,he,pe,de,ye,_e,Te;for(Q=0,he=0;Q!(_.command in Fg));if(c.length===0)return!1;const f=c.filter(_=>!(_.command in ac));if(f.length>0)throw new Error(`Unimplemented: ${f.map(_=>_.command).join(", ")}.`);return c.forEach(_=>{_.command!=="setTransition"&&_.command!=="setProjection"&&this[_.command].apply(this,_.args)}),this.stylesheet=o,this._updateMapProjection(),!0}addImage(o,c){return this.getImage(o)?this.fire(new s.ErrorEvent(new Error("An image with this name already exists."))):(this.imageManager.addImage(o,c),this._afterImageUpdated(o),this)}updateImage(o,c){this.imageManager.updateImage(o,c)}getImage(o){return this.imageManager.getImage(o)}removeImage(o){return this.getImage(o)?(this.imageManager.removeImage(o),this._afterImageUpdated(o),this):this.fire(new s.ErrorEvent(new Error("No image with this name exists.")))}_afterImageUpdated(o){this._availableImages=this.imageManager.listImages(),this._changedImages[o]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new s.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(o,c,f={}){if(this._checkLoaded(),this.getSource(o)!==void 0)throw new Error("There is already a source with this ID");if(!c.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(c).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(c.type)>=0&&this._validate(s.validateSource,`sources.${o}`,c,null,f))return;this.map&&this.map._collectResourceTiming&&(c.collectResourceTiming=!0);const _=Dt(o,c,this.dispatcher,this);_.setEventedParent(this,()=>({isSourceLoaded:this._isSourceCacheLoaded(o),source:_.serialize(),sourceId:o}));const v=E=>{const S=(E?"symbol:":"other:")+o,C=this._sourceCaches[S]=new s.SourceCache(S,_,E);(E?this._symbolSourceCaches:this._otherSourceCaches)[o]=C,C.style=this,C.onAdd(this.map)};v(!1),c.type!=="vector"&&c.type!=="geojson"||v(!0),_.onAdd&&_.onAdd(this.map),this._changed=!0}removeSource(o){this._checkLoaded();const c=this.getSource(o);if(!c)throw new Error("There is no source with this ID");for(const _ in this._layers)if(this._layers[_].source===o)return this.fire(new s.ErrorEvent(new Error(`Source "${o}" cannot be removed while layer "${_}" is using it.`)));if(this.terrain&&this.terrain.get().source===o)return this.fire(new s.ErrorEvent(new Error(`Source "${o}" cannot be removed while terrain is using it.`)));const f=this._getSourceCaches(o);for(const _ of f)delete this._sourceCaches[_.id],delete this._updatedSources[_.id],_.fire(new s.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:_.getSource().id})),_.setEventedParent(null),_.clearTiles();return delete this._otherSourceCaches[o],delete this._symbolSourceCaches[o],c.setEventedParent(null),c.onRemove&&c.onRemove(this.map),this._changed=!0,this}setGeoJSONSourceData(o,c){this._checkLoaded(),this.getSource(o).setData(c),this._changed=!0}getSource(o){const c=this._getSourceCache(o);return c&&c.getSource()}_getSources(){const o=[];for(const c in this._otherSourceCaches){const f=this._getSourceCache(c);f&&o.push(f.getSource())}return o}addLayer(o,c,f={}){this._checkLoaded();const _=o.id;if(this.getLayer(_))return void this.fire(new s.ErrorEvent(new Error(`Layer with id "${_}" already exists on this map`)));let v;if(o.type==="custom"){if(No(this,s.validateCustomStyleLayer(o)))return;v=s.createStyleLayer(o)}else{if(typeof o.source=="object"&&(this.addSource(_,o.source),o=s.clone$1(o),o=s.extend(o,{source:_})),this._validate(s.validateLayer,`layers.${_}`,o,{arrayIndex:-1},f))return;v=s.createStyleLayer(o),this._validateLayer(v),v.setEventedParent(this,{layer:{id:_}}),this._serializedLayers[v.id]=v.serialize(),this._updateLayerCount(v,!0)}const E=c?this._order.indexOf(c):this._order.length;if(c&&E===-1)return void this.fire(new s.ErrorEvent(new Error(`Layer with id "${c}" does not exist on this map.`)));this._order.splice(E,0,_),this._layerOrderChanged=!0,this._layers[_]=v;const S=this._getLayerSourceCache(v);if(this._removedLayers[_]&&v.source&&S&&v.type!=="custom"){const C=this._removedLayers[_];delete this._removedLayers[_],C.type!==v.type?this._updatedSources[v.source]="clear":(this._updatedSources[v.source]="reload",S.pause())}this._updateLayer(v),v.onAdd&&v.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(o,c){if(this._checkLoaded(),this._changed=!0,!this._layers[o])return void this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be moved.`)));if(o===c)return;const f=this._order.indexOf(o);this._order.splice(f,1);const _=c?this._order.indexOf(c):this._order.length;c&&_===-1?this.fire(new s.ErrorEvent(new Error(`Layer with id "${c}" does not exist on this map.`))):(this._order.splice(_,0,o),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(o){this._checkLoaded();const c=this._layers[o];if(!c)return void this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be removed.`)));c.setEventedParent(null),this._updateLayerCount(c,!1);const f=this._order.indexOf(o);this._order.splice(f,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[o]=c,delete this._layers[o],delete this._serializedLayers[o],delete this._updatedLayers[o],delete this._updatedPaintProps[o],c.onRemove&&c.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(o){return this._layers[o]}hasLayer(o){return o in this._layers}hasLayerType(o){for(const c in this._layers)if(this._layers[c].type===o)return!0;return!1}setLayerZoomRange(o,c,f){this._checkLoaded();const _=this.getLayer(o);_?_.minzoom===c&&_.maxzoom===f||(c!=null&&(_.minzoom=c),f!=null&&(_.maxzoom=f),this._updateLayer(_)):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(o,c,f={}){this._checkLoaded();const _=this.getLayer(o);if(_){if(!M(_.filter,c))return c==null?(_.filter=void 0,void this._updateLayer(_)):void(this._validate(s.validateFilter,`layers.${_.id}.filter`,c,{layerType:_.type},f)||(_.filter=s.clone$1(c),this._updateLayer(_)))}else this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be filtered.`)))}getFilter(o){const c=this.getLayer(o);return c&&s.clone$1(c.filter)}setLayoutProperty(o,c,f,_={}){this._checkLoaded();const v=this.getLayer(o);v?M(v.getLayoutProperty(c),f)||(v.setLayoutProperty(c,f,_),this._updateLayer(v)):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(o,c){const f=this.getLayer(o);if(f)return f.getLayoutProperty(c);this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style.`)))}setPaintProperty(o,c,f,_={}){this._checkLoaded();const v=this.getLayer(o);v?M(v.getPaintProperty(c),f)||(v.setPaintProperty(c,f,_)&&this._updateLayer(v),this._changed=!0,this._updatedPaintProps[o]=!0):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(o,c){const f=this.getLayer(o);return f&&f.getPaintProperty(c)}setFeatureState(o,c){this._checkLoaded();const f=o.source,_=o.sourceLayer,v=this.getSource(f);if(!v)return void this.fire(new s.ErrorEvent(new Error(`The source '${f}' does not exist in the map's style.`)));const E=v.type;if(E==="geojson"&&_)return void this.fire(new s.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));if(E==="vector"&&!_)return void this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));o.id===void 0&&this.fire(new s.ErrorEvent(new Error("The feature id parameter must be provided.")));const S=this._getSourceCaches(f);for(const C of S)C.setFeatureState(_,o.id,c)}removeFeatureState(o,c){this._checkLoaded();const f=o.source,_=this.getSource(f);if(!_)return void this.fire(new s.ErrorEvent(new Error(`The source '${f}' does not exist in the map's style.`)));const v=_.type,E=v==="vector"?o.sourceLayer:void 0;if(v==="vector"&&!E)return void this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));if(c&&typeof o.id!="string"&&typeof o.id!="number")return void this.fire(new s.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));const S=this._getSourceCaches(f);for(const C of S)C.removeFeatureState(E,o.id,c)}getFeatureState(o){this._checkLoaded();const c=o.source,f=o.sourceLayer,_=this.getSource(c);if(_){if(_.type!=="vector"||f)return o.id===void 0&&this.fire(new s.ErrorEvent(new Error("The feature id parameter must be provided."))),this._getSourceCaches(c)[0].getFeatureState(f,o.id);this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new s.ErrorEvent(new Error(`The source '${c}' does not exist in the map's style.`)))}getTransition(){return s.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const o={};for(const c in this._sourceCaches){const f=this._sourceCaches[c].getSource();o[f.id]||(o[f.id]=f.serialize())}return s.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.getTerrain()||void 0,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:o,layers:this._serializeLayers(this._order)},c=>c!==void 0)}_updateLayer(o){this._updatedLayers[o.id]=!0;const c=this._getLayerSourceCache(o);o.source&&!this._updatedSources[o.source]&&c&&c.getSource().type!=="raster"&&(this._updatedSources[o.source]="reload",c.pause()),this._changed=!0,o.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(o){const c=E=>this._layers[E].type==="fill-extrusion",f={},_=[];for(let E=this._order.length-1;E>=0;E--){const S=this._order[E];if(c(S)){f[S]=E;for(const C of o){const z=C[S];if(z)for(const P of z)_.push(P)}}}_.sort((E,S)=>S.intersectionZ-E.intersectionZ);const v=[];for(let E=this._order.length-1;E>=0;E--){const S=this._order[E];if(c(S))for(let C=_.length-1;C>=0;C--){const z=_[C].feature;if(f[z.layer.id]{const z=this.getLayer(C);return z&&z.is3D()}):this.has3DLayers(),S=dn.createFromScreenPoints(o,f);for(const C in this._sourceCaches){const z=this._sourceCaches[C].getSource().id;c.layers&&!_[z]||v.push(An(this._sourceCaches[C],this._layers,this._serializedLayers,S,c,f,E,!!this.map._showQueryGeometry))}return this.placement&&v.push(function(C,z,P,D,j,$,W){const Z={},H=$.queryRenderedSymbols(D),O=[];for(const G of Object.keys(H).map(Number))O.push(W[G]);O.sort(vi);for(const G of O){const J=G.featureIndex.lookupSymbolFeatures(H[G.bucketInstanceId],z,G.bucketIndex,G.sourceLayerIndex,j.filter,j.layers,j.availableImages,C);for(const Q in J){const he=Z[Q]=Z[Q]||[],pe=J[Q];pe.sort((de,ye)=>{const _e=G.featureSortOrder;if(_e){const Te=_e.indexOf(de.featureIndex);return _e.indexOf(ye.featureIndex)-Te}return ye.featureIndex-de.featureIndex});for(const de of pe)he.push(de)}}for(const G in Z)Z[G].forEach(J=>{const Q=J.feature,he=P(C[G]);if(!he)return;const pe=he.getFeatureState(Q.layer["source-layer"],Q.id);Q.source=Q.layer.source,Q.layer["source-layer"]&&(Q.sourceLayer=Q.layer["source-layer"]),Q.state=pe});return Z}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),S.screenGeometry,c,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(v)}querySourceFeatures(o,c){c&&c.filter&&this._validate(s.validateFilter,"querySourceFeatures.filter",c.filter,null,c);const f=this._getSourceCaches(o);let _=[];for(const v of f)_=_.concat(Fn(v,c));return _}addSourceType(o,c,f){return jr.getSourceType(o)?f(new Error(`A source type called "${o}" already exists.`)):(jr.setSourceType(o,c),c.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:o,url:c.workerSourceURL},f):f(null,null))}getLight(){return this.light.getLight()}setLight(o,c={}){this._checkLoaded();const f=this.light.getLight();let _=!1;for(const E in o)if(!M(o[E],f[E])){_=!0;break}if(!_)return;const v=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(o,c),this.light.updateTransitions(v)}getTerrain(){return this.terrain&&this.terrain.drapeRenderMode===1?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0)}setTerrain(o,c=1){if(this._checkLoaded(),!o)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast("enableTerrain",!1),this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);let f=o;if(c===1){if(typeof f.source=="object"){const _="terrain-dem-src";this.addSource(_,f.source),f=s.clone$1(f),f=s.extend(f,{source:_})}if(this._validate(s.validateTerrain,"terrain",f))return}if(!this.terrain||this.terrain&&c!==this.terrain.drapeRenderMode){if(!f)return;this._createTerrain(f,c)}else{const _=this.terrain,v=_.get();for(const E of Object.keys(s.spec.terrain))!f.hasOwnProperty(E)&&s.spec.terrain[E].default&&(f[E]=s.spec.terrain[E].default);for(const E in f)if(!M(f[E],v[E])){_.set(f),this.stylesheet.terrain=f;const S=this._setTransitionParameters({duration:0});_.updateTransitions(S);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0}_createFog(o){const c=this.fog=new Tt(o,this.map.transform);this.stylesheet.fog=o;const f=this._setTransitionParameters({duration:0});c.updateTransitions(f)}_updateMarkersOpacity(){this.map._markers.length!==0&&this.map._requestDomTask(()=>{for(const o of this.map._markers)o._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(o){if(this._checkLoaded(),!o)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const c=this.fog,f=c.get();Object.keys(o).length===0&&c.set(o);for(const _ in o)if(!M(o[_],f[_])){c.set(o),this.stylesheet.fog=o;const v=this._setTransitionParameters({duration:0});c.updateTransitions(v);break}}else this._createFog(o);this._markersNeedUpdate=!0}_setTransitionParameters(o){return{now:s.exported.now(),transition:s.extend(o,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const o=this._order.filter(f=>this.isLayerDraped(this._layers[f])),c=this._order.filter(f=>!this.isLayerDraped(this._layers[f]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...o),this._drapedFirstOrder.push(...c)}_createTerrain(o,c){const f=this.terrain=new Li(o,c);this.stylesheet.terrain=o,this.dispatcher.broadcast("enableTerrain",!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();const _=this._setTransitionParameters({duration:0});f.updateTransitions(_)}_force3DLayerUpdate(){for(const o in this._layers){const c=this._layers[o];c.type==="fill-extrusion"&&this._updateLayer(c)}}_forceSymbolLayerUpdate(){for(const o in this._layers){const c=this._layers[o];c.type==="symbol"&&this._updateLayer(c)}}_validate(o,c,f,_,v={}){return(!v||v.validate!==!1)&&No(this,o.call(s.validateStyle,s.extend({key:c,style:this.serialize(),value:f,styleSpec:s.spec},_)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),s.evented.off("pluginStateChange",this._rtlTextPluginCallback);for(const o in this._layers)this._layers[o].setEventedParent(null);for(const o in this._sourceCaches)this._sourceCaches[o].clearTiles(),this._sourceCaches[o].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(o){const c=this._getSourceCaches(o);for(const f of c)f.clearTiles()}_reloadSource(o){const c=this._getSourceCaches(o);for(const f of c)f.resume(),f.reload()}_reloadSources(){for(const o of this._getSources())o.reload&&o.reload()}_updateSources(o){for(const c in this._sourceCaches)this._sourceCaches[c].update(o)}_generateCollisionBoxes(){for(const o in this._sourceCaches){const c=this._sourceCaches[o];c.resume(),c.reload()}}_updatePlacement(o,c,f,_,v=!1){let E=!1,S=!1;const C={};for(const z of this._order){const P=this._layers[z];if(P.type!=="symbol")continue;if(!C[P.source]){const j=this._getLayerSourceCache(P);if(!j)continue;C[P.source]=j.getRenderableIds(!0).map($=>j.getTileByID($)).sort(($,W)=>W.tileID.overscaledZ-$.tileID.overscaledZ||($.tileID.isLessThan(W.tileID)?-1:1))}const D=this.crossTileSymbolIndex.addLayer(P,C[P.source],o.center.lng,o.projection);E=E||D}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),v=v||this._layerOrderChanged||f===0,this._layerOrderChanged&&this.fire(new s.Event("neworder")),(v||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(s.exported.now(),o.zoom))&&(this.pauseablePlacement=new Xu(o,this._order,v,c,f,_,this.placement,this.fog&&o.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,C),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(s.exported.now()),S=!0),E&&this.pauseablePlacement.placement.setStale()),S||E)for(const z of this._order){const P=this._layers[z];P.type==="symbol"&&this.placement.updateLayerOpacities(P,C[P.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(s.exported.now())}_releaseSymbolFadeTiles(){for(const o in this._sourceCaches)this._sourceCaches[o].releaseSymbolFadeTiles()}getImages(o,c,f){this.imageManager.getImages(c.icons,f),this._updateTilesForChangedImages();const _=v=>{v&&v.setDependencies(c.tileID.key,c.type,c.icons)};_(this._otherSourceCaches[c.source]),_(this._symbolSourceCaches[c.source])}getGlyphs(o,c,f){this.glyphManager.getGlyphs(c.stacks,f)}getResource(o,c,f){return s.makeRequest(c,f)}_getSourceCache(o){return this._otherSourceCaches[o]}_getLayerSourceCache(o){return o.type==="symbol"?this._symbolSourceCaches[o.source]:this._otherSourceCaches[o.source]}_getSourceCaches(o){const c=[];return this._otherSourceCaches[o]&&c.push(this._otherSourceCaches[o]),this._symbolSourceCaches[o]&&c.push(this._symbolSourceCaches[o]),c}_isSourceCacheLoaded(o){const c=this._getSourceCaches(o);return c.length===0?(this.fire(new s.ErrorEvent(new Error(`There is no source with ID '${o}'`))),!1):c.every(f=>f.loaded())}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}jr.getSourceType=function(d){return Pt[d]},jr.setSourceType=function(d,o){Pt[d]=o},jr.registerForPluginStateChange=s.registerForPluginStateChange;var Qu=` +#define EPSILON 0.0000001 +#define PI 3.141592653589793 +#define EXTENT 8192.0 +#define HALF_PI PI/2.0 +#define QUARTER_PI PI/4.0 +#define RAD_TO_DEG 180.0/PI +#define DEG_TO_RAD PI/180.0 +#define GLOBE_RADIUS EXTENT/PI/2.0`,ds="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",ao=` +#define ELEVATION_SCALE 7.0 +#define ELEVATION_OFFSET 450.0 +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix( +mix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;} +#else +vec3 elevationVector(vec2 pos) { return vec3(0,0,1); } +#endif +const float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(vec2 posWithComposedSkirt) +{float skirt=float(posWithComposedSkirt.x >=skirtOffset);vec2 pos=posWithComposedSkirt-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);} +#ifdef TERRAIN +#ifdef TERRAIN_DEM_FLOAT_FORMAT +uniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev; +#else +uniform sampler2D u_dem;uniform sampler2D u_dem_prev; +#endif +uniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos)); +#ifdef TERRAIN_DEM_NEAREST_FILTER +return u_exaggeration*tl; +#endif +float tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +}float prevElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +} +#ifdef TERRAIN_VERTEX_MORPHING +float elevation(vec2 apos) { +#ifdef ZERO_EXAGGERATION +return 0.0; +#endif +float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);} +#else +float elevation(vec2 apos) { +#ifdef ZERO_EXAGGERATION +return 0.0; +#endif +return currentElevation(apos);} +#endif +highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4( +unpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy)) +);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +float tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a; +#else +vec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack); +#endif +return vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);} +#else +float elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; } +#endif`,rl=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);} +#endif`,lo=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);} +#endif`;let lc={},Hs={};const ol=[];Xs(Qu,ol),Xs(ao,ol),Xs(rl,ol),Xs(lo,ol),lc=Qt("",ao),Hs=Qt(lo,rl);const Ep=Qt(` +#if __VERSION__ >=300 +#define varying in +#define gl_FragColor glFragColor +#define texture2D texture +#define textureCube texture +out vec4 glFragColor; +#endif +highp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}`,` +#if __VERSION__ >=300 +#define attribute in +#define varying out +#define texture2D texture +#endif +float wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;} +#ifdef PROJECTION_GLOBE_VIEW +vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) { +#ifndef PROJECTED_POS_ON_VIEWPORT +float tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz; +#else +return vec3(0.0); +#endif +}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);} +#endif +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 +);}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;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.`),cc=Qu,eh=` +#ifdef GL_ES +precision mediump float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`;var th={background:Qt(`uniform vec4 u_color;uniform float u_opacity; +#ifdef LIGHTING_3D_MODE +varying vec4 v_color; +#endif +void main() {vec4 out_color; +#ifdef LIGHTING_3D_MODE +out_color=v_color; +#else +out_color=u_color; +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#ifdef LIGHTING_3D_MODE +uniform vec4 u_color;varying vec4 v_color; +#endif +void main() {gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef LIGHTING_3D_MODE +v_color=apply_lighting(u_color); +#endif +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),backgroundPattern:Qt(`uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos;void main() {vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_tile_units_to_pixels,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),circle:Qt(`varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep( +antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width) +);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_apply_premultiplied(out_color,v_fog_pos); +#endif +gl_FragColor=out_color*(v_visibility*opacity_t); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`#define NUM_VISIBILITY_RINGS 2 +#define INV_SQRT2 0.70710678 +#define ELEVATION_BIAS 0.0001 +#define NUM_SAMPLES_PER_RING 16 +uniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +vec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) { +#if defined(TERRAIN) +return elevation(pos)+ELEVATION_BIAS; +#else +return 0.0; +#endif +}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale); +#ifdef PITCH_WITH_MAP +#ifdef PROJECTION_GLOBE_VIEW +return u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) ); +#else +return u_matrix*( world_center+vec4(sample_offset,0,0) ); +#endif +#else +return projected_center+vec4(sample_offset,0,0); +#endif +}float get_sample_step() { +#ifdef PITCH_WITH_MAP +return 2.0*PI/float(NUM_SAMPLES_PER_RING); +#else +return PI/float(NUM_SAMPLES_PER_RING); +#endif +}void main(void) { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors; +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1); +#else +surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1); +#endif +vec4 projected_center=u_matrix*world_center;float view_scale=0.0; +#ifdef PITCH_WITH_MAP +#ifdef SCALE_WITH_MAP +view_scale=1.0; +#else +view_scale=projected_center.w/u_camera_to_center_distance; +#endif +#else +#ifdef SCALE_WITH_MAP +view_scale=u_camera_to_center_distance; +#else +view_scale=projected_center.w; +#endif +#endif +gl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0; +#ifdef TERRAIN +float step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center; +#ifdef PITCH_WITH_MAP +float cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center; +#else +occlusion_world_center=world_center;occlusion_projected_center=projected_center; +#endif +for(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING); +#else +visibility=1.0; +#endif +#ifdef PROJECTION_GLOBE_VIEW +visibility=1.0; +#endif +v_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur); +#ifdef FOG +v_fog_pos=fog_position(world_center.xyz); +#endif +}`),clippingMask:Qt("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:Qt(`uniform highp float u_intensity;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#define GAUSS_COEF 0.3989422804014327 +void main() { +#pragma mapbox: initialize highp float weight +float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); +#ifdef FOG +if (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);} +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#pragma mapbox: define mediump float radius +const highp float ZERO=1.0/255.0/16.0; +#define GAUSS_COEF 0.3989422804014327 +void main(void) { +#pragma mapbox: initialize highp float weight +#pragma mapbox: initialize mediump float radius +vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);vec3 pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#else +pos=vec3(tilePos+extrude,elevation(tilePos)); +#endif +gl_Position=u_matrix*vec4(pos,1); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),heatmapTexture:Qt(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(0.0); +#endif +}`,"attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:Qt("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}",`attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:Qt("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}",`attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2( +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;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),debug:Qt("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}",`attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3; +#endif +varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0; +#ifdef PROJECTION_GLOBE_VIEW +gl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1); +#else +gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1); +#endif +}`),fill:Qt(`#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +vec4 out_color=color; +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutline:Qt(`varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color; +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutlinePattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;varying vec2 v_pos_world; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;varying vec2 v_pos_world; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillPattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillExtrusion:Qt(`varying vec4 v_color; +#ifdef RENDER_SHADOWS +varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef ZERO_ROOF_RADIUS +varying vec4 v_roof_color; +#endif +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +varying highp vec3 v_normal; +#endif +void main() { +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +vec3 normal=v_normal; +#endif +float z;vec4 color; +#ifdef ZERO_ROOF_RADIUS +z=float(normal.z > 0.00001);color=mix(v_color,v_roof_color,z); +#else +color=v_color; +#endif +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x; +#ifdef ZERO_ROOF_RADIUS +concave*=(1.0-z); +#endif +float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade; +#endif +#ifdef RENDER_SHADOWS +#ifdef ZERO_ROOF_RADIUS +normal=mix(normal,vec3(0.0,0.0,1.0),z); +#endif +color.xyz=shadowed_color_normal(color.xyz,normalize(normal),v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec4 v_color; +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; +#endif +#ifdef ZERO_ROOF_RADIUS +varying vec4 v_roof_color; +#endif +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +varying highp vec3 v_normal; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#pragma mapbox: define highp float base +#pragma mapbox: define highp float height +#pragma mapbox: define highp vec4 color +void main() { +#pragma mapbox: initialize highp float base +#pragma mapbox: initialize highp float height +#pragma mapbox: initialize highp vec4 color +vec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0)); +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +v_normal=normal; +#endif +base=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=0.0;float c_ele;vec3 pos; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);pos=vec3(pos_nx.xy,h); +#else +h=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden); +#ifdef RENDER_SHADOWS +v_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_depth=gl_Position.w; +#endif +float NdotL=0.0;float colorvalue=0.0; +#ifdef LIGHTING_3D_MODE +NdotL=calculate_NdotL(normal); +#else +colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL); +#endif +if (normal.y !=0.0) {float r=0.84; +#ifndef LIGHTING_3D_MODE +r=mix(0.7,0.98,1.0-u_lightintensity); +#endif +NdotL*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}v_color=vec4(0.0,0.0,0.0,1.0); +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +#ifdef LIGHTING_3D_MODE +v_color=apply_lighting(color,NdotL); +#else +v_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); +#endif +v_color*=u_opacity; +#ifdef ZERO_ROOF_RADIUS +v_roof_color=vec4(0.0,0.0,0.0,1.0); +#ifdef LIGHTING_3D_MODE +v_roof_color=apply_lighting(color,calculate_NdotL(vec3(0.0,0.0,1.0))); +#else +float roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); +#endif +v_roof_color*=u_opacity; +#endif +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),fillExtrusionPattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef LIGHTING_3D_MODE +varying float v_NdotL; +#endif +varying vec2 v_pos;varying vec4 v_lighting;uniform lowp float u_opacity; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color,v_NdotL)*u_opacity; +#else +out_color=out_color*v_lighting; +#endif +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade; +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec2 v_pos;varying vec4 v_lighting; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef LIGHTING_3D_MODE +varying float v_NdotL; +#endif +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=z;vec3 p;float c_ele; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);p=vec3(pos_nx.xy,h); +#else +p=vec3(pos_nx.xy,z); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0 +? pos_nx.xy +: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0; +#ifdef LIGHTING_3D_MODE +NdotL=calculate_NdotL(normal); +#else +NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL); +#endif +if (normal.y !=0.0) {float r=0.84; +#ifndef LIGHTING_3D_MODE +r=mix(0.7,0.98,1.0-u_lightintensity); +#endif +NdotL*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));} +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +#ifdef LIGHTING_3D_MODE +v_NdotL=NdotL; +#else +v_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity; +#endif +#ifdef FOG +v_fog_pos=fog_position(p); +#endif +}`),hillshadePrepare:Qt(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +return texture2D(u_image,coord).a/4.0; +#else +vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0; +#endif +}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2( +(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c) +)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4( +deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:Qt(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef LIGHTING_3D_MODE +gl_FragColor=apply_lighting(gl_FragColor); +#endif +#ifdef FOG +gl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos)); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),line:Qt(`uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform sampler2D u_dash_image;varying vec2 v_tex; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform sampler2D u_gradient_image; +#endif +uniform float u_border_width;uniform vec4 u_border_color;float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;} +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +float linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +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); +#ifdef RENDER_LINE_DASH +float sdfdist=texture2D(u_dash_image,v_tex).a;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;alpha*=linearstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist); +#endif +highp vec4 out_color; +#ifdef RENDER_LINE_GRADIENT +out_color=texture2D(u_gradient_image,v_uv.xy); +#else +out_color=color; +#endif +float trimmed=1.0; +#ifdef RENDER_LINE_TRIM_OFFSET +highp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);trimmed=0.0;}} +#endif +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +#ifdef RENDER_LINE_ALPHA_DISCARD +if (alpha < u_alpha_discard_threshold) {discard;} +#endif +#ifdef RENDER_LINE_BORDER +float edgeBlur=(u_border_width+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2); +#ifdef RENDER_LINE_BORDER_AUTO +float Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);} +#else +out_color.rgb=mix(u_border_color.rgb*u_border_color.a*trimmed,out_color.rgb,smoothAlpha); +#endif +} +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define EXTRUDE_SCALE 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data; +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +attribute highp vec4 a_packed; +#endif +#ifdef RENDER_LINE_DASH +attribute float a_linesofar; +#endif +uniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;varying vec2 v_tex; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform float u_image_height; +#endif +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +float a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3]; +#ifdef RENDER_LINE_GRADIENT +highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end); +#else +v_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end); +#endif +#endif +#ifdef RENDER_LINE_DASH +float scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/floorwidth,(-normal.y*height+dash.x+0.5)/u_texsize.y); +#endif +v_width2=vec2(outset,inset); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),linePattern:Qt(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;vec2 pattern_size=vec2(display_size.x/u_tile_units_to_pixels,display_size.y);float aspect=display_size.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x=mod(v_linesofar/pattern_size.x*aspect,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));vec4 color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +color=apply_lighting(color); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth; +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),raster:Qt(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3( +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);vec3 out_color=mix(u_high_vec,u_low_vec,rgb); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply(out_color,v_fog_pos)); +#endif +gl_FragColor=vec4(out_color*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),symbolIcon:Qt(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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 bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjected_point; +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +offsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}`),symbolSDF:Qt(`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +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 fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point; +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +offsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}`),symbolTextAndIcon:Qt(`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +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;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}`),terrainRaster:Qt(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +void main() {vec4 color=texture2D(u_image0,v_pos0); +#ifdef RENDER_SHADOWS +color.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +#ifdef ZERO_EXAGGERATION +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#else +color=fog_dither(fog_apply_from_vert(color,v_fog_opacity)); +#endif +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +const float wireframeOffset=0.00015;void main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height; +#ifdef TERRAIN_WIREFRAME +elevation+=wireframeOffset; +#endif +v_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0); +#ifdef FOG +#ifdef ZERO_EXAGGERATION +v_fog_pos=fog_position(decodedPos); +#else +v_fog_opacity=fog(fog_position(vec3(decodedPos,elevation))); +#endif +#endif +#ifdef RENDER_SHADOWS +vec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w; +#endif +}`),terrainDepth:Qt(`#ifdef GL_ES +precision highp float; +#endif +varying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}`,"uniform mat4 u_matrix;attribute vec2 a_pos;varying float v_depth;void main() {float elevation=elevation(a_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:Qt(` +varying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep( +cos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb; +#ifdef FOG +sky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color); +#endif +sky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,ds),skyboxGradient:Qt(`varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5)); +#ifdef FOG +color.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a; +#endif +color*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,ds),skyboxCapture:Qt(` +varying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m; +#ifdef GL_ES +precision highp float; +#endif +#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6) +#define BETA_M vec3(21e-6,21e-6,21e-6) +#define MIE_G 0.76 +#define DENSITY_HEIGHT_SCALE_R 8000.0 +#define DENSITY_HEIGHT_SCALE_M 1200.0 +#define PLANET_RADIUS 6360e3 +#define ATMOSPHERE_RADIUS 6420e3 +#define SAMPLE_STEPS 10 +#define DENSITY_STEPS 4 +float ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}`,"attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:Qt(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifndef FOG +uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport; +#endif +void main() {vec4 color; +#ifdef CUSTOM_ANTIALIASING +vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);color=vec4(raster.rgb*antialias,raster.a*antialias); +#else +color=texture2D(u_image0,v_pos0); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height; +#ifdef GLOBE_POLES +attribute vec3 a_globe_pos;attribute vec2 a_uv; +#else +attribute vec2 a_pos; +#endif +varying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() { +#ifdef GLOBE_POLES +vec3 globe_pos=a_globe_pos;vec2 uv=a_uv; +#else +float tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY); +#endif +v_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale; +#ifdef GLOBE_POLES +vec3 up_vector=globe_derived_up_vector; +#else +vec3 up_vector=elevationVector(tile_pos); +#endif +float height=elevation(tile_pos); +#ifdef TERRAIN_WIREFRAME +height+=wireframeOffset; +#endif +globe_pos+=up_vector*height; +#ifndef GLOBE_POLES +globe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z; +#endif +#ifdef GLOBE_POLES +vec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0); +#else +vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0); +#endif +gl_Position=u_proj_matrix*interpolated_pos; +#ifdef FOG +v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); +#endif +}`),globeAtmosphere:Qt(`uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir; +#ifdef PROJECTION_GLOBE_VIEW +globe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;} +#endif +highp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ? +0.0 : max(acos(dot(dir,horizon_dir)),0.0);float horizon_angle; +#ifdef PROJECTION_GLOBE_VIEW +highp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ? +PI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t); +#else +horizon_angle=horizon_angle_mercator; +#endif +horizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x: +(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y: +uv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}`,`attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix( +mix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}`)};function Xs(d,o){const c=d.replace(/\s*\/\/[^\n]*\n/g,` +`).split(` +`);for(let f of c)if(f=f.trim(),f[0]==="#"&&f.includes("if")&&!f.includes("endif")){f=f.replace("#","").replace(/ifdef|ifndef|elif|if/g,"").replace(/!|defined|\(|\)|\|\||&&/g,"").replace(/\s+/g," ").trim();const _=f.split(" ");for(const v of _)o.includes(v)||o.push(v)}}function Qt(d,o){const c=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,f=o.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),_={},v=[...ol];return Xs(d,v),Xs(o,v),{fragmentSource:d=d.replace(c,(E,S,C,z,P)=>(_[P]=!0,S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +varying ${C} ${z} ${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:` +#ifdef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = u_${P}; +#endif +`)),vertexSource:o=o.replace(c,(E,S,C,z,P)=>{const D=z==="float"?"vec2":"vec4",j=P.match(/color/)?"color":D;return _[P]?S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +uniform lowp float u_${P}_t; +attribute ${C} ${D} a_${P}; +varying ${C} ${z} ${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:j==="vec4"?` +#ifndef HAS_UNIFORM_u_${P} + ${P} = a_${P}; +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${P} + ${P} = unpack_mix_${j}(a_${P}, u_${P}_t); +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +uniform lowp float u_${P}_t; +attribute ${C} ${D} a_${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:j==="vec4"?` +#ifndef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = a_${P}; +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = unpack_mix_${j}(a_${P}, u_${P}_t); +#else + ${C} ${z} ${P} = u_${P}; +#endif +`}),staticAttributes:f,usedDefines:v}}class Ng{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null}bind(o,c,f,_,v,E,S){this.context=o;let C=this.boundPaintVertexBuffers.length!==_.length;for(let P=0;!C&&P<_.length;P++)this.boundPaintVertexBuffers[P]!==_[P]&&(C=!0);let z=this.boundDynamicVertexBuffers.length!==S.length;for(let P=0;!z&&P{const J=O.paint.get("hillshade-shadow-color"),Q=O.paint.get("hillshade-highlight-color"),he=O.paint.get("hillshade-accent-color");let pe=O.paint.get("hillshade-illumination-direction")*(Math.PI/180);O.paint.get("hillshade-illumination-anchor")==="viewport"&&(pe-=Z.transform.angle);const de=!Z.options.moving;return{u_matrix:G||Z.transform.calculateProjMatrix(H.tileID.toUnwrapped(),de),u_image:0,u_latrange:nh(0,H.tileID),u_light:[O.paint.get("hillshade-exaggeration"),pe],u_shadow:J,u_highlight:Q,u_accent:he}})(d,c,f,d.terrain?o.projMatrix:null);d.prepareDrawProgram(S,P,o.toUnwrapped());const{tileBoundsBuffer:j,tileBoundsIndexBuffer:$,tileBoundsSegments:W}=d.getTileBoundsBuffers(c);P.draw(S,C.TRIANGLES,_,v,E,s.CullFaceMode.disabled,D,f.id,j,$,W)}function ih(d,o,c){if(!o.needsDEMTextureUpload)return;const f=d.context,_=f.gl;f.pixelStoreUnpackPremultiplyAlpha.set(!1),o.demTexture=o.demTexture||d.getTileTexture(c.stride);const v=c.getPixels();o.demTexture?o.demTexture.update(v,{premultiply:!1}):o.demTexture=new s.Texture(f,v,_.RGBA,{premultiply:!1}),o.needsDEMTextureUpload=!1}function Sp(d,o,c,f,_,v){const E=d.context,S=E.gl;if(!o.dem)return;const C=o.dem;if(E.activeTexture.set(S.TEXTURE1),ih(d,o,C),!o.demTexture)return;o.demTexture.bind(S.NEAREST,S.CLAMP_TO_EDGE);const z=C.dim;E.activeTexture.set(S.TEXTURE0);let P=o.fbo;if(!P){const W=new s.Texture(E,{width:z,height:z,data:null},S.RGBA);W.bind(S.LINEAR,S.CLAMP_TO_EDGE),P=o.fbo=E.createFramebuffer(z,z,!0),P.colorAttachment.set(W.texture)}E.bindFramebuffer.set(P.framebuffer),E.viewport.set([0,0,z,z]);const{tileBoundsBuffer:D,tileBoundsIndexBuffer:j,tileBoundsSegments:$}=d.getMercatorTileBoundsBuffers();d.useProgram("hillshadePrepare").draw(E,S.TRIANGLES,f,_,v,s.CullFaceMode.disabled,((W,Z)=>{const H=Z.stride,O=s.create();return s.ortho(O,0,s.EXTENT,-s.EXTENT,0,0,1),s.translate(O,O,[0,-s.EXTENT,0]),{u_matrix:O,u_image:1,u_dimension:[H,H],u_zoom:W.overscaledZ,u_unpack:Z.unpackVector}})(o.tileID,C),c.id,D,j,$),o.needsHillshadePrepare=!1}const rh=d=>({u_matrix:new s.UniformMatrix4f(d),u_image0:new s.Uniform1i(d),u_skirt_height:new s.Uniform1f(d)}),Ks=(d,o)=>({u_matrix:d,u_image0:0,u_skirt_height:o}),uc=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W)=>({u_proj_matrix:Float32Array.from(d),u_globe_matrix:o,u_normalize_matrix:Float32Array.from(f),u_merc_matrix:c,u_zoom_transition:_,u_merc_center:v,u_image0:0,u_frustum_tl:E,u_frustum_tr:S,u_frustum_br:C,u_frustum_bl:z,u_globe_pos:P,u_globe_radius:D,u_viewport:j,u_grid_matrix:W?Float32Array.from(W):new Float32Array(9),u_skirt_height:$});function Ys(d,o){return d!=null&&o!=null&&!(!d.hasData()||!o.hasData())&&d.demTexture!=null&&o.demTexture!=null&&d.tileID.key!==o.tileID.key}const co=new class{constructor(){this.operations={}}newMorphing(d,o,c,f,_){if(d in this.operations){const v=this.operations[d];v.to.tileID.key!==c.tileID.key&&(v.queued=c)}else this.operations[d]={startTime:f,phase:0,duration:_,from:o,to:c,queued:null}}getMorphValuesForProxy(d){if(!(d in this.operations))return null;const o=this.operations[d];return{from:o.from,to:o.to,phase:o.phase}}update(d){for(const o in this.operations){const c=this.operations[o];for(c.phase=(d-c.startTime)/c.duration;c.phase>=1||!this._validOp(c);)if(!this._nextOp(c,d)){delete this.operations[o];break}}}_nextOp(d,o){return!!d.queued&&(d.from=d.to,d.to=d.queued,d.queued=null,d.phase=0,d.startTime=o,!0)}_validOp(d){return d.from.hasData()&&d.to.hasData()}},ps={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"};function hc(d){return 6*Math.pow(1.5,22-d)}function Ap(d,o){const c=1<({u_matrix:d});function oh(d,o,c,f,_){if(_>0){const v=s.exported.now(),E=(v-d.timeAdded)/_,S=o?(v-o.timeAdded)/_:-1,C=c.getSource(),z=f.coveringZoomLevel({tileSize:C.tileSize,roundZoom:C.roundZoom}),P=!o||Math.abs(o.tileID.overscaledZ-z)>Math.abs(d.tileID.overscaledZ-z),D=P&&d.refreshedUponExpiration?1:s.clamp(P?E:1-S,0,1);return d.refreshedUponExpiration&&E>=1&&(d.refreshedUponExpiration=!1),o?{opacity:1,mix:1-D}:{opacity:D,mix:0}}return{opacity:1,mix:0}}class sh extends s.SourceCache{constructor(o){const c={type:"raster-dem",maxzoom:o.transform.maxZoom},f=new xt($s(),null),_=Dt("mock-dem",c,f,o.style);super("mock-dem",_,!1),_.setEventedParent(this),this._sourceLoaded=!0}_loadTile(o,c){o.state="loaded",c(null)}}class dc extends s.SourceCache{constructor(o){const c=Dt("proxy",{type:"geojson",maxzoom:o.transform.maxZoom},new xt($s(),null),o.style);super("proxy",c,!1),c.setEventedParent(this),this.map=this.getSource().map=o,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(o,c,f){if(o.freezeTileCoverage)return;this.transform=o;const _=o.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce((v,E)=>{if(v[E.key]="",!this._tiles[E.key]){const S=new s.Tile(E,this._source.tileSize*E.overscaleFactor(),o.tileZoom);S.state="loaded",this._tiles[E.key]=S}return v},{});for(const v in this._tiles)v in _||(this.freeFBO(v),this._tiles[v].unloadVectorData(),delete this._tiles[v])}freeFBO(o){const c=this.proxyCachedFBO[o];if(c!==void 0){const f=Object.values(c);this.renderCachePool.push(...f),delete this.proxyCachedFBO[o]}}deallocRenderCache(){this.renderCache.forEach(o=>o.fb.destroy()),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}}class pc extends s.OverscaledTileID{constructor(o,c,f){super(o.overscaledZ,o.wrap,o.canonical.z,o.canonical.x,o.canonical.y),this.proxyTileKey=c,this.projMatrix=f}}class ah extends s.Elevation{constructor(o,c){super(),this.painter=o,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[f,_,v]=function(C){const z=new s.StructArrayLayout2i4,P=new s.StructArrayLayout3ui6,D=131;z.reserve(17161),P.reserve(33800);const j=s.EXTENT/128,$=s.EXTENT+j/2,W=$+j;for(let H=-j;H$||H<0||H>$?24575:0,J=s.clamp(Math.round(O),0,s.EXTENT),Q=s.clamp(Math.round(H),0,s.EXTENT);z.emplaceBack(J+G,Q)}const Z=(H,O)=>{const G=O*D+H;P.emplaceBack(G+1,G,G+D),P.emplaceBack(G+D,G+D+1,G+1)};for(let H=1;H<129;H++)for(let O=1;O<129;O++)Z(O,H);return[0,129].forEach(H=>{for(let O=0;O<130;O++)Z(O,H),Z(H,O)}),[z,P,32768]}(),E=o.context;this.gridBuffer=E.createVertexBuffer(f,s.posAttributes.members),this.gridIndexBuffer=E.createIndexBuffer(_),this.gridSegments=s.SegmentVector.simpleSegment(0,0,f.length,_.length),this.gridNoSkirtSegments=s.SegmentVector.simpleSegment(0,0,f.length,v),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new dc(c.map),this.orthoMatrix=s.create(),s.ortho(this.orthoMatrix,this.painter.transform.projection.name==="globe"?.015:0,s.EXTENT,0,s.EXTENT,0,1);const S=E.gl;this._overlapStencilMode=new s.StencilMode({func:S.GEQUAL,mask:255},0,255,S.KEEP,S.KEEP,S.REPLACE),this._previousZoom=o.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=c,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new sh(c.map)}set style(o){o.on("data",this._onStyleDataEvent.bind(this)),o.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=o,this._checkRenderCacheEfficiency(),this._style.map.on("moveend",()=>{this._clearLineLayersFromRenderCache()})}update(o,c,f){if(o&&o.terrain){this._style!==o&&(this.style=o),this.enabled=!0;const _=o.terrain.properties;this.sourceCache=o.terrain.drapeRenderMode===0?this._mockSourceCache:o._getSourceCache(_.get("source")),this._exaggeration=_.get("exaggeration");const v=()=>{this.sourceCache.used&&s.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source. +This leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const E=this.getScaledDemTileSize();this.sourceCache.update(c,E,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,v(),this._initializing=!0),v(),c.updateElevation(!0,f),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(c),this._emptyDEMTextureDirty=!0}else this._disable()}resetTileLookupCache(o){this._findCoveringTileCache[o]={}}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){const o=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||o.efficiency!==100&&s.warnOnce(`Terrain render cache efficiency is not optimal (${o.efficiency}%) and performance + may be affected negatively, consider placing all background, fill and line layers before layer + with id '${o.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(o){o.coord&&o.dataType==="source"?this._clearRenderCacheForTile(o.sourceCacheId,o.coord):o.dataType==="style"&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const o in this._style._sourceCaches)this._style._sourceCaches[o].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach(o=>o.fb.destroy()),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0)}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const o=2*this.proxySourceCache.getSource().tileSize;return[o,o]}set useVertexMorphing(o){this._useVertexMorphing=o}updateTileBinding(o){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const c=this.proxySourceCache,f=this.painter.transform;this._initializing&&(this._initializing=f._centerAltitude===0&&this.getAtPointOrZero(s.MercatorCoordinate.fromLngLat(f.center),-1)===-1,this._emptyDEMTextureDirty=!this._initializing);const _=this.proxyCoords=c.getIds().map(C=>{const z=c.getTileByID(C).tileID;return z.projMatrix=f.calculateProjMatrix(z.toUnwrapped()),z});(function(C,z){const P=z.transform.pointCoordinate(z.transform.getCameraPoint()),D=new s.Point(P.x,P.y);C.sort((j,$)=>{if($.overscaledZ-j.overscaledZ)return $.overscaledZ-j.overscaledZ;const W=new s.Point(j.canonical.x+(1<{this.proxyToSource[C.key]={}}),this.terrainTileForTile={};const E=this._style._sourceCaches;for(const C in E){const z=E[C];if(!z.used||(z!==this.sourceCache&&this.resetTileLookupCache(z.id),this._setupProxiedCoordsForOrtho(z,o[C],v),z.usedForTerrain))continue;const P=o[C];z.getSource().reparseOverscaled&&this._assignTerrainTiles(P)}this.proxiedCoords[c.id]=_.map(C=>new pc(C,C.key,this.orthoMatrix)),this._assignTerrainTiles(_),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(v),this.renderingToTexture=!1,this._updateTimestamp=s.exported.now();const S={};this._visibleDemTiles=[];for(const C of this.proxyCoords){const z=this.terrainTileForTile[C.key];if(!z)continue;const P=z.tileID.key;P in S||(this._visibleDemTiles.push(z),S[P]=P)}}_assignTerrainTiles(o){this._initializing||o.forEach(c=>{if(this.terrainTileForTile[c.key])return;const f=this._findTileCoveringTileID(c,this.sourceCache);f&&(this.terrainTileForTile[c.key]=f)})}_prepareDEMTextures(){const o=this.painter.context,c=o.gl;for(const f in this.terrainTileForTile){const _=this.terrainTileForTile[f],v=_.dem;!v||_.demTexture&&!_.needsDEMTextureUpload||(o.activeTexture.set(c.TEXTURE1),ih(this.painter,_,v))}}_prepareDemTileUniforms(o,c,f,_){if(!c||c.demTexture==null)return!1;const v=o.tileID.canonical,E=Math.pow(2,c.tileID.canonical.z-v.z),S=_||"";return f[`u_dem_tl${S}`]=[v.x*E%1,v.y*E%1],f[`u_dem_scale${S}`]=E,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const o=this.painter.context,c=o.gl;if(!this._emptyDepthBufferTexture){const f=new s.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new s.Texture(o,f,c.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let o=0;const c=this._visibleDemTiles.reduce((f,_)=>{if(!_.dem)return f;const v=_.dem.tree.minimums[0];return v>0&&o++,f+v},0);return o?c/o:0}_updateEmptyDEMTexture(){const o=this.painter.context,c=o.gl;o.activeTexture.set(c.TEXTURE2);const f=this._getLoadedAreaMinimum(),_=new s.RGBAImage({width:1,height:1},new Uint8Array(s.DEMData.pack(f,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let v=this._emptyDEMTexture;return v?v.update(_,{premultiply:!1}):v=this._emptyDEMTexture=new s.Texture(o,_,c.RGBA,{premultiply:!1}),v}setupElevationDraw(o,c,f){const _=this.painter.context,v=_.gl,E=(S=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:s.DEMData.getUnpackVector(S),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0});var S;E.u_dem_size=this.sourceCache.getSource().tileSize,E.u_exaggeration=this.exaggeration();let C=null,z=null,P=1;if(f&&f.morphing&&this._useVertexMorphing){const D=f.morphing.srcDemTile,j=f.morphing.dstDemTile;P=f.morphing.phase,D&&j&&(this._prepareDemTileUniforms(o,D,E,"_prev")&&(z=D),this._prepareDemTileUniforms(o,j,E)&&(C=j))}if(z&&C?(_.activeTexture.set(v.TEXTURE2),C.demTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE,v.NEAREST),_.activeTexture.set(v.TEXTURE4),z.demTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE,v.NEAREST),E.u_dem_lerp=P):(C=this.terrainTileForTile[o.tileID.key],_.activeTexture.set(v.TEXTURE2),(this._prepareDemTileUniforms(o,C,E)?C.demTexture:this.emptyDEMTexture).bind(v.NEAREST,v.CLAMP_TO_EDGE)),_.activeTexture.set(v.TEXTURE3),f&&f.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE),this._depthFBO&&(E.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE),E.u_depth_size_inv=[1,1]),f&&f.useMeterToDem&&C){const D=(1<{if(O===qe)return;const Oe=[ps[qe],"PROJECTION_GLOBE_VIEW"];Q&&Oe.push("CUSTOM_ANTIALIASING"),Ee&&Oe.push(ps[G]),H=z.useProgram("globeRaster",null,Oe),O=qe},pe=z.colorModeForRenderPass(),de=new s.DepthMode(Z.LEQUAL,s.DepthMode.ReadWrite,z.depthRangeFor3D);co.update($);const ye=s.calculateGlobeMercatorMatrix(J),_e=[s.mercatorXfromLng(J.center.lng),s.mercatorYfromLat(J.center.lat)],Te=G?[!1,!0]:[!1],Ze=z.globeSharedBuffers,we=[J.width*s.exported.devicePixelRatio,J.height*s.exported.devicePixelRatio],Be=Float32Array.from(J.globeMatrix),Ce={useDenormalizedUpVectorScale:!0};if(Te.forEach(qe=>{const Ee=z.transform,Oe=hc(Ee.zoom)*P.exaggeration();O=-1;const He=qe?Z.LINES:Z.TRIANGLES;for(const Ge of j){const Xe=D.getTile(Ge),gt=s.StencilMode.disabled,Et=P.prevTerrainTileForTile[Ge.key],dt=P.terrainTileForTile[Ge.key];Ys(Et,dt)&&co.newMorphing(Ge.key,Et,dt,$,250),W.activeTexture.set(Z.TEXTURE0),Xe.texture.bind(Z.LINEAR,Z.CLAMP_TO_EDGE);const wt=co.getMorphValuesForProxy(Ge.key),Ut=wt?1:0;wt&&s.extend$1(Ce,{morphing:{srcDemTile:wt.from,dstDemTile:wt.to,phase:s.easeCubicInOut(wt.phase)}});const Ot=s.tileCornersToBounds(Ge.canonical),mt=s.getLatitudinalLod(Ot.getCenter().lat),en=s.getGridMatrix(Ge.canonical,Ot,mt,Ee.worldSize/Ee._pixelsPerMercatorPixel),rn=s.globeNormalizeECEF(s.globeTileBounds(Ge.canonical)),on=uc(Ee.projMatrix,Be,ye,rn,s.globeToMercatorTransition(Ee.zoom),_e,Ee.frustumCorners.TL,Ee.frustumCorners.TR,Ee.frustumCorners.BR,Ee.frustumCorners.BL,Ee.globeCenterInViewSpace,Ee.globeRadius,we,Oe,en);if(he(Ut,qe),P.setupElevationDraw(Xe,H,Ce),z.prepareDrawProgram(W,H,Ge.toUnwrapped()),Ze){const[sn,wi,si]=qe?Ze.getWirefameBuffers(z.context,mt):Ze.getGridBuffers(mt,Oe!==0);H.draw(W,He,de,gt,pe,s.CullFaceMode.backCCW,on,"globe_raster",sn,wi,si)}}}),Ze){const qe=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];Q&&qe.push("CUSTOM_ANTIALIASING"),H=z.useProgram("globeRaster",null,qe);for(const Ee of j){const{x:Oe,y:He,z:Ge}=Ee.canonical,Xe=He===0,gt=He===(1<on.draw(W,Z.TRIANGLES,de,s.StencilMode.disabled,pe,s.CullFaceMode.disabled,uc(J.projMatrix,mt,mt,en,0,_e,J.frustumCorners.TL,J.frustumCorners.TR,J.frustumCorners.BR,J.frustumCorners.BL,J.globeCenterInViewSpace,J.globeRadius,we,0),"globe_pole_raster",sn,wt,Ut);P.setupElevationDraw(Ot,H,Ce),z.prepareDrawProgram(W,H,Ee.toUnwrapped()),Xe&&rn(H,Et),gt&&(mt=s.scale(s.create(),mt,[1,-1,1]),rn(H,dt))}}}})(_,v,E,S,C);else{const z=_.context,P=z.gl;let D,j;const $=_.options.showTerrainWireframe?2:0,W=(J,Q)=>{if(j===J)return;const he=[ps[J]];Q&&he.push(ps[$]),D=_.useProgram("terrainRaster",null,he),j=J},Z=_.colorModeForRenderPass(),H=new s.DepthMode(P.LEQUAL,s.DepthMode.ReadWrite,_.depthRangeFor3D);co.update(C);const O=_.transform,G=hc(O.zoom)*v.exaggeration();($?[!1,!0]:[!1]).forEach(J=>{j=-1;const Q=J?P.LINES:P.TRIANGLES,[he,pe]=J?v.getWirefameBuffer():[v.gridIndexBuffer,v.gridSegments];for(const de of S){const ye=E.getTile(de),_e=s.StencilMode.disabled,Te=v.prevTerrainTileForTile[de.key],Ze=v.terrainTileForTile[de.key];Ys(Te,Ze)&&co.newMorphing(de.key,Te,Ze,C,250),z.activeTexture.set(P.TEXTURE0),ye.texture.bind(P.LINEAR,P.CLAMP_TO_EDGE,P.LINEAR_MIPMAP_NEAREST);const we=co.getMorphValuesForProxy(de.key),Be=we?1:0;let Ce;we&&(Ce={morphing:{srcDemTile:we.from,dstDemTile:we.to,phase:s.easeCubicInOut(we.phase)}});const qe=Ks(de.projMatrix,Ap(de.canonical,O.renderWorldCopies)?G/10:G);W(Be,J),v.setupElevationDraw(ye,D,Ce),_.prepareDrawProgram(z,D,de.toUnwrapped()),D.draw(z,Q,H,_e,Z,s.CullFaceMode.backCCW,qe,"terrain_raster",v.gridBuffer,he,pe)}})}}(c,this,this.proxySourceCache,o,this._updateTimestamp),this.renderingToTexture=!0,c.gpuTimingDeferredRenderEnd(),o.splice(0,o.length))}renderBatch(o){if(this._drapedRenderBatches.length===0)return o+1;this.renderingToTexture=!0;const c=this.painter,f=this.painter.context,_=this.proxySourceCache,v=this.proxiedCoords[_.id],E=this._drapedRenderBatches.shift(),S=[],C=c.style.order;let z=0;for(const P of v){const D=_.getTileByID(P.proxyTileKey),j=_.proxyCachedFBO[P.key]?_.proxyCachedFBO[P.key][o]:void 0,$=j!==void 0?_.renderCache[j]:this.pool[z++],W=j!==void 0;if(D.texture=$.tex,W&&!$.dirty){S.push(D.tileID);continue}let Z;f.bindFramebuffer.set($.fb.framebuffer),this.renderedToTile=!1,$.dirty&&(f.clear({color:s.Color.transparent,stencil:0}),$.dirty=!1);for(let H=E.start;H<=E.end;++H){const O=c.style._layers[C[H]];if(O.isHidden(c.transform.zoom))continue;const G=c.style._getLayerSourceCache(O),J=G?this.proxyToSource[P.key][G.id]:[P];if(!J)continue;const Q=J;f.viewport.set([0,0,$.fb.width,$.fb.height]),Z!==(G?G.id:null)&&(this._setupStencil($,J,O,G),Z=G?G.id:null),c.renderLayer(c,G,O,Q)}this.renderedToTile?($.dirty=!0,S.push(D.tileID)):W||--z,z===5&&(z=0,this.renderToBackBuffer(S))}return this.renderToBackBuffer(S),this.renderingToTexture=!1,f.bindFramebuffer.set(null),f.viewport.set([0,0,c.width,c.height]),E.end+1}postRender(){}renderCacheEfficiency(o){const c=o.order.length;if(c===0)return{efficiency:100};let f,_=0,v=0,E=!1;for(let S=0;Sc.dem).forEach(c=>{o=Math.min(o,c.dem.tree.minimums[0])}),o===0?o:(o-30)*this._exaggeration}raycast(o,c,f){if(!this._visibleDemTiles)return null;const _=this._visibleDemTiles.filter(v=>v.dem).map(v=>{const E=v.tileID,S=1<(v.t!==null?v.t:Number.MAX_VALUE)-(E.t!==null?E.t:Number.MAX_VALUE));for(const v of _){if(v.t==null)return null;const E=v.tile.dem.tree.raycast(v.minx,v.miny,v.maxx,v.maxy,o,c,f);if(E!=null)return E}return null}_createFBO(){const o=this.painter.context,c=o.gl,f=this.drapeBufferSize;o.activeTexture.set(c.TEXTURE0);const _=new s.Texture(o,{width:f[0],height:f[1],data:null},c.RGBA);_.bind(c.LINEAR,c.CLAMP_TO_EDGE);const v=o.createFramebuffer(f[0],f[1],!1);return v.colorAttachment.set(_.texture),v.depthAttachment=new me(o,v.framebuffer),this._sharedDepthStencil===void 0?(this._sharedDepthStencil=o.createRenderbuffer(o.gl.DEPTH_STENCIL,f[0],f[1]),this._stencilRef=0,v.depthAttachment.set(this._sharedDepthStencil),o.clear({stencil:0})):v.depthAttachment.set(this._sharedDepthStencil),o.extTextureFilterAnisotropic&&!o.extTextureFilterAnisotropicForceOff&&c.texParameterf(c.TEXTURE_2D,o.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,o.extTextureFilterAnisotropicMax),{fb:v,tex:_,dirty:!1}}_initFBOPool(){for(;this.pool.length{const c=this._style._layers[o],f=c.isHidden(this.painter.transform.zoom);return c.type==="custom"?!f&&c.shouldRedrape():!f&&c.hasTransition()})}_clearLineLayersFromRenderCache(){let o=!1;for(const f of this._style._getSources())if(f instanceof nt){o=!0;break}if(!o)return;const c={};for(let f=0;fc.renderCachePool.length){const E=Object.values(c.proxyCachedFBO);c.proxyCachedFBO={};for(let S=0;S=0;E--){const S=f[E];if(c.getTileByID(S.key),c.proxyCachedFBO[S.key]!==void 0){const C=o[S.key],z=this.proxyToSource[S.key];let P=0;for(const D in z){const j=z[D],$=C[D];if(!$||$.length!==j.length||j.some((W,Z)=>W!==$[Z]||_[D]&&_[D].hasOwnProperty(W.key))){P=-1;break}++P}for(const D in c.proxyCachedFBO[S.key])c.renderCache[c.proxyCachedFBO[S.key][D]].dirty=P<0||P!==Object.values(C).length}}const v=[...this._drapedRenderBatches];v.sort((E,S)=>S.end-S.start-(E.end-E.start));for(const E of v)for(const S of f){if(c.proxyCachedFBO[S.key])continue;let C=c.renderCachePool.pop();C===void 0&&c.renderCache.length<50&&(C=c.renderCache.length,c.renderCache.push(this._createFBO())),C!==void 0&&(c.proxyCachedFBO[S.key]={},c.proxyCachedFBO[S.key][E.start]=C,c.renderCache[C].dirty=!0)}this._tilesDirty={}}_setupStencil(o,c,f,_){if(!_||!this._sourceTilesOverlap[_.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const v=this.painter.context,E=v.gl;if(c.length<=1)return void(this._overlapStencilType=!1);let S;if(f.isTileClipped())S=c.length,this._overlapStencilMode.test={func:E.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(c[0].overscaledZ>c[c.length-1].overscaledZ))return void(this._overlapStencilType=!1);S=1,this._overlapStencilMode.test={func:E.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+S>255&&(v.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=S,this._overlapStencilMode.ref=this._stencilRef,f.isTileClipped()&&this._renderTileClippingMasks(c,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return this._overlapStencilType==="Clip"||this._overlapStencilType==="Mask"}stencilModeForRTTOverlap(o){return this.renderingToTexture&&this._overlapStencilType?(this._overlapStencilType==="Clip"&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[o.key]),this._overlapStencilMode):s.StencilMode.disabled}_renderTileClippingMasks(o,c){const f=this.painter,_=this.painter.context,v=_.gl;f._tileClippingMaskIDs={},_.setColorMode(s.ColorMode.disabled),_.setDepthMode(s.DepthMode.disabled);const E=f.useProgram("clippingMask");for(const S of o){const C=f._tileClippingMaskIDs[S.key]=--c;E.draw(_,v.TRIANGLES,s.DepthMode.disabled,new s.StencilMode({func:v.ALWAYS,mask:0},C,255,v.KEEP,v.KEEP,v.REPLACE),s.ColorMode.disabled,s.CullFaceMode.disabled,sl(S.projMatrix),"$clipping",f.tileExtentBuffer,f.quadTriangleIndexBuffer,f.tileExtentSegments)}}pointCoordinate(o){const c=this.painter.transform;if(o.x<0||o.x>c.width||o.y<0||o.y>c.height)return null;const f=[o.x,o.y,1,1];s.transformMat4$1(f,f,c.pixelMatrixInverse),s.scale$1(f,f,1/f[3]),f[0]/=c.worldSize,f[1]/=c.worldSize;const _=c._camera.position,v=s.mercatorZfromAltitude(1,c.center.lat),E=[_[0],_[1],_[2]/v,0],S=s.subtract([],f.slice(0,3),E);s.normalize(S,S);const C=this.raycast(E,S,this._exaggeration);return C!==null&&C?(s.scaleAndAdd(E,E,S,C),E[3]=E[2],E[2]*=v,E):null}drawDepth(){const o=this.painter,c=o.context,f=this.proxySourceCache,_=Math.ceil(o.width),v=Math.ceil(o.height);if(!this._depthFBO||this._depthFBO.width===_&&this._depthFBO.height===v||(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){const E=c.gl,S=c.createFramebuffer(_,v,!0);c.activeTexture.set(E.TEXTURE0);const C=new s.Texture(c,{width:_,height:v,data:null},E.RGBA);C.bind(E.NEAREST,E.CLAMP_TO_EDGE),S.colorAttachment.set(C.texture);const z=c.createRenderbuffer(c.gl.DEPTH_COMPONENT16,_,v);S.depthAttachment.set(z),this._depthFBO=S,this._depthTexture=C}c.bindFramebuffer.set(this._depthFBO.framebuffer),c.viewport.set([0,0,_,v]),function(E,S,C,z){if(E.transform.projection.name==="globe")return;const P=E.context,D=P.gl;P.clear({depth:1});const j=E.useProgram("terrainDepth"),$=new s.DepthMode(D.LESS,s.DepthMode.ReadWrite,E.depthRangeFor3D);for(const W of z){const Z=C.getTile(W),H=Ks(W.projMatrix,0);S.setupElevationDraw(Z,j),j.draw(P,D.TRIANGLES,$,s.StencilMode.disabled,s.ColorMode.unblended,s.CullFaceMode.backCCW,H,"terrain_depth",S.gridBuffer,S.gridIndexBuffer,S.gridNoSkirtSegments)}}(o,this,f,this.proxyCoords)}_setupProxiedCoordsForOrtho(o,c,f){if(o.getSource()instanceof Rt)return this._setupProxiedCoordsForImageSource(o,c,f);this._findCoveringTileCache[o.id]=this._findCoveringTileCache[o.id]||{};const _=this.proxiedCoords[o.id]=[],v=this.proxyCoords;for(let S=0;S(P.min.x=Math.min(P.min.x,D.x-S.x),P.min.y=Math.min(P.min.y,D.y-S.y),P.max.x=Math.max(P.max.x,D.x-S.x),P.max.y=Math.max(P.max.y,D.y-S.y),P),{min:new s.Point(Number.MAX_VALUE,Number.MAX_VALUE),max:new s.Point(-Number.MAX_VALUE,-Number.MAX_VALUE)}),z=(P,D)=>{const j=P.wrap+P.canonical.x/(1<Z+C.max.x||$+WH+C.max.y};for(let P=0;PE.key===c.tileID.key);if(v)return v}if(c.tileID.key!==o.key){const v=o.canonical.z-c.tileID.canonical.z;let E,S,C;_=s.create();const z=c.tileID.wrap-o.wrap<0?(E=s.EXTENT>>v,S=E*((c.tileID.canonical.x<=D){const j=o.canonical.z-D;c.getSource().reparseOverscaled?(S=Math.max(o.canonical.z+2,c.transform.tileZoom),E=new s.OverscaledTileID(S,o.wrap,D,o.canonical.x>>j,o.canonical.y>>j)):j!==0&&(S=D,E=new s.OverscaledTileID(S,o.wrap,D,o.canonical.x>>j,o.canonical.y>>j))}E.key!==o.key&&(z.push(E.key),f=c.getTile(E))}const P=D=>{z.forEach(j=>{_[j]=D}),z.length=0};for(S-=1;S>=C&&(!f||!f.hasData());S--){f&&P(f.tileID.key);const D=E.calculateScaledKey(S);if(f=c.getTileByID(D),f&&f.hasData())break;const j=_[D];if(j===null)break;j===void 0?z.push(D):f=c.getTileByID(j)}return P(f?f.tileID.key:null),f&&f.hasData()?f:null}findDEMTileFor(o){return this.enabled?this._findTileCoveringTileID(o,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0}_clearRenderCacheForTile(o,c){let f=this._tilesDirty[o];f||(f=this._tilesDirty[o]={}),f[c.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){const o=function(c){let f=0;const _=new s.StructArrayLayout2ui4,v=131;for(let E=1;E<129;E++){for(let S=1;S<129;S++)f=E*v+S,_.emplaceBack(f,f+1),_.emplaceBack(f,f+v),_.emplaceBack(f+1,f+v),E===128&&_.emplaceBack(f+v,f+v+1);_.emplaceBack(f+1,f+1+v)}return _}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(o),this.wireframeSegments=s.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,o.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}}class Zt{static cacheKey(o,c,f,_){let v=`${c}${_?_.cacheKey:""}`;for(const E of f)o.usedDefines.includes(E)&&(v+=`/${E}`);return v}constructor(o,c,f,_,v,E){const S=o.gl;this.program=S.createProgram();const C=function(O){const G=[];for(let J=0;J`#define ${O}`));const j=o.isWebGL2?`#version 300 es +`:"",$=j+D.concat(o.extStandardDerivatives&&j.length===0?`#extension GL_OES_standard_derivatives : enable +`.concat(eh):eh,eh,cc,Ep.fragmentSource,Hs.fragmentSource,f.fragmentSource).join(` +`),W=j+D.concat(` +#ifdef GL_ES +precision highp float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`,cc,Ep.vertexSource,Hs.vertexSource,lc.vertexSource,f.vertexSource).join(` +`),Z=S.createShader(S.FRAGMENT_SHADER);if(S.isContextLost())return void(this.failedToCreate=!0);S.shaderSource(Z,$),S.compileShader(Z),S.attachShader(this.program,Z);const H=S.createShader(S.VERTEX_SHADER);if(S.isContextLost())this.failedToCreate=!0;else{S.shaderSource(H,W),S.compileShader(H),S.attachShader(this.program,H),this.attributes={},this.numAttributes=P.length;for(let O=0;O({u_dem:new s.Uniform1i(O),u_dem_prev:new s.Uniform1i(O),u_dem_unpack:new s.Uniform4f(O),u_dem_tl:new s.Uniform2f(O),u_dem_scale:new s.Uniform1f(O),u_dem_tl_prev:new s.Uniform2f(O),u_dem_scale_prev:new s.Uniform1f(O),u_dem_size:new s.Uniform1f(O),u_dem_lerp:new s.Uniform1f(O),u_exaggeration:new s.Uniform1f(O),u_depth:new s.Uniform1i(O),u_depth_size_inv:new s.Uniform2f(O),u_meter_to_dem:new s.Uniform1f(O),u_label_plane_matrix_inv:new s.UniformMatrix4f(O)}))(o)),E.includes("GLOBE")&&(this.globeUniforms=(O=>({u_tile_tl_up:new s.Uniform3f(O),u_tile_tr_up:new s.Uniform3f(O),u_tile_br_up:new s.Uniform3f(O),u_tile_bl_up:new s.Uniform3f(O),u_tile_up_scale:new s.Uniform1f(O)}))(o)),E.includes("FOG")&&(this.fogUniforms=(O=>({u_fog_matrix:new s.UniformMatrix4f(O),u_fog_range:new s.Uniform2f(O),u_fog_color:new s.Uniform4f(O),u_fog_horizon_blend:new s.Uniform1f(O),u_fog_temporal_offset:new s.Uniform1f(O),u_frustum_tl:new s.Uniform3f(O),u_frustum_tr:new s.Uniform3f(O),u_frustum_br:new s.Uniform3f(O),u_frustum_bl:new s.Uniform3f(O),u_globe_pos:new s.Uniform3f(O),u_globe_radius:new s.Uniform1f(O),u_globe_transition:new s.Uniform1f(O),u_is_globe:new s.Uniform1i(O),u_viewport:new s.Uniform2f(O)}))(o))}}setTerrainUniformValues(o,c){if(!this.terrainUniforms)return;const f=this.terrainUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_]&&f[_].set(this.program,_,c[_])}}setGlobeUniformValues(o,c){if(!this.globeUniforms)return;const f=this.globeUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_]&&f[_].set(this.program,_,c[_])}}setFogUniformValues(o,c){if(!this.fogUniforms)return;const f=this.fogUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_].set(this.program,_,c[_])}}draw(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z){const H=o.gl;if(this.failedToCreate)return;o.program.set(this.program),o.setDepthMode(f),o.setStencilMode(_),o.setColorMode(v),o.setCullFace(E);for(const G of Object.keys(this.fixedUniforms))this.fixedUniforms[G].set(this.program,G,S[G]);W&&W.setUniforms(this.program,o,this.binderUniforms,j,{zoom:$});const O={[H.LINES]:2,[H.TRIANGLES]:3,[H.LINE_STRIP]:1}[c];for(const G of D.get()){const J=G.vaos||(G.vaos={});(J[C]||(J[C]=new Ng)).bind(o,this,z,W?W.getPaintVertexBuffers():[],P,G.vertexOffset,Z||[]),H.drawElements(c,G.primitiveLength*O,H.UNSIGNED_SHORT,G.primitiveOffset*O*2)}}}function al(d,o){const c=Math.pow(2,o.tileID.overscaledZ),f=o.tileSize*Math.pow(2,d.transform.tileZoom)/c,_=f*(o.tileID.canonical.x+o.tileID.wrap*c),v=f*o.tileID.canonical.y;return{u_image:0,u_texsize:o.imageAtlasTexture.size,u_tile_units_to_pixels:1/Bt(o,1,d.transform.tileZoom),u_pixel_coord_upper:[_>>16,v>>16],u_pixel_coord_lower:[65535&_,65535&v]}}const Cp=s.create(),lh=(d,o,c,f,_,v,E,S,C,z,P)=>{const D=o.style.light,j=D.properties.get("position"),$=[j.x,j.y,j.z],W=s.create$1();D.properties.get("anchor")==="viewport"&&(s.fromRotation(W,-o.transform.angle),s.transformMat3($,$,W));const Z=D.properties.get("color"),H=o.transform,O={u_matrix:d,u_lightpos:$,u_lightintensity:D.properties.get("intensity"),u_lightcolor:[Z.r,Z.g,Z.b],u_vertical_gradient:+c,u_opacity:f,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:Cp,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:_,u_edge_radius:v};return H.projection.name==="globe"&&(O.u_tile_id=[E.canonical.x,E.canonical.y,1<{const j=lh(d,o,c,f,_,v,E,C,z,P,D),$={u_height_factor:-Math.pow(2,E.overscaledZ)/S.tileSize/8};return s.extend(j,al(o,S),$)},fs=d=>({u_matrix:d}),ch=(d,o,c)=>s.extend(fs(d),al(o,c)),Ug=(d,o)=>({u_matrix:d,u_world:o}),jg=(d,o,c,f)=>s.extend(ch(d,o,c),{u_world:f}),Vg=s.create(),uh=(d,o,c,f,_,v)=>{const E=d.transform,S=E.projection.name==="globe";let C;if(v.paint.get("circle-pitch-alignment")==="map")if(S){const P=s.globePixelsToTileUnits(E.zoom,o.canonical)*E._pixelsPerMercatorPixel;C=Float32Array.from([P,0,0,P])}else C=E.calculatePixelsToTileUnitsMatrix(c);else C=new Float32Array([E.pixelsToGLUnits[0],0,0,E.pixelsToGLUnits[1]]);const z={u_camera_to_center_distance:E.cameraToCenterDistance,u_matrix:d.translatePosMatrix(o.projMatrix,c,v.paint.get("circle-translate"),v.paint.get("circle-translate-anchor")),u_device_pixel_ratio:s.exported.devicePixelRatio,u_extrude_scale:C,u_inv_rot_matrix:Vg,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(S){z.u_inv_rot_matrix=f,z.u_merc_center=_,z.u_tile_id=[o.canonical.x,o.canonical.y,1<{const o=[];return d.paint.get("circle-pitch-alignment")==="map"&&o.push("PITCH_WITH_MAP"),d.paint.get("circle-pitch-scale")==="map"&&o.push("SCALE_WITH_MAP"),o},dh=(d,o,c,f)=>{const _=s.EXTENT/c.tileSize;return{u_matrix:d,u_camera_to_center_distance:o.getCameraToCenterDistance(f),u_extrude_scale:[o.pixelsToGLUnits[0]/_,o.pixelsToGLUnits[1]/_]}},fc=(d,o,c=1)=>({u_matrix:d,u_color:o,u_overlay:0,u_overlay_scale:c}),Mp=s.create(),kp=(d,o,c,f,_,v,E)=>{const S=d.transform,C=S.projection.name==="globe",z=C?s.globePixelsToTileUnits(S.zoom,o.canonical)*S._pixelsPerMercatorPixel:Bt(c,1,v),P={u_matrix:o.projMatrix,u_extrude_scale:z,u_intensity:E,u_inv_rot_matrix:Mp,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(C){P.u_inv_rot_matrix=f,P.u_merc_center=_,P.u_tile_id=[o.canonical.x,o.canonical.y,1<{const S=d.transform,C=S.calculatePixelsToTileUnitsMatrix(o);return{u_matrix:ph(d,o,c,f),u_pixels_to_tile_units:C,u_device_pixel_ratio:v,u_units_to_pixels:[1/S.pixelsToGLUnits[0],1/S.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:_,u_texsize:cl(c)?o.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:Js(o,d.transform),u_alpha_discard_threshold:0,u_trim_offset:E}},ll=(d,o,c,f,_)=>{const v=d.transform;return{u_matrix:ph(d,o,c,f),u_texsize:o.imageAtlasTexture.size,u_pixels_to_tile_units:v.calculatePixelsToTileUnitsMatrix(o),u_device_pixel_ratio:_,u_image:0,u_tile_units_to_pixels:Js(o,v),u_units_to_pixels:[1/v.pixelsToGLUnits[0],1/v.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function Js(d,o){return 1/Bt(d,1,o.tileZoom)}function ph(d,o,c,f){return d.translatePosMatrix(f||o.tileID.projMatrix,o,c.paint.get("line-translate"),c.paint.get("line-translate-anchor"))}function cl(d){const o=d.paint.get("line-dasharray").value;return o.value||o.kind!=="constant"}const fh=(d,o,c,f,_,v)=>{return{u_matrix:d,u_tl_parent:o,u_scale_parent:c,u_fade_t:f.mix,u_opacity:f.opacity*_.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:_.paint.get("raster-brightness-min"),u_brightness_high:_.paint.get("raster-brightness-max"),u_saturation_factor:(S=_.paint.get("raster-saturation"),S>0?1-1/(1.001-S):-S),u_contrast_factor:(E=_.paint.get("raster-contrast"),E>0?1/(1-E):1+E),u_spin_weights:Vr(_.paint.get("raster-hue-rotate")),u_perspective_transform:v};var E,S};function Vr(d){d*=Math.PI/180;const o=Math.sin(d),c=Math.cos(d);return[(2*c+1)/3,(-Math.sqrt(3)*o-c+1)/3,(Math.sqrt(3)*o-c+1)/3]}const mc=s.create(),mh=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z)=>{const H=_.transform,O={u_is_size_zoom_constant:+(d==="constant"||d==="source"),u_is_size_feature_constant:+(d==="constant"||d==="camera"),u_size_t:o?o.uSizeT:0,u_size:o?o.uSize:0,u_camera_to_center_distance:H.cameraToCenterDistance,u_rotate_symbol:+c,u_aspect_ratio:H.width/H.height,u_fade_change:_.options.fadeDuration?_.symbolFadeChange:1,u_matrix:v,u_label_plane_matrix:E,u_coord_matrix:S,u_is_text:+C,u_pitch_with_map:+f,u_texsize:z,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:mc,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:mc,u_up_vector:[0,-1,0]};return Z.name==="globe"&&(O.u_tile_id=[P.canonical.x,P.canonical.y,1<s.extend(mh(d,o,c,f,_,v,E,S,C,z,D,j,$,W,Z,H),{u_gamma_scale:f?_.transform.cameraToCenterDistance*Math.cos(_.terrain?0:_.transform._pitch):1,u_device_pixel_ratio:s.exported.devicePixelRatio,u_is_halo:+P}),Pp=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z)=>s.extend(gc(d,o,c,f,_,v,E,S,!0,C,!0,P,D,j,$,W,Z),{u_texsize_icon:z,u_texture_icon:1}),gh=(d,o,c)=>({u_matrix:d,u_opacity:o,u_color:c}),$g=(d,o,c,f,_)=>s.extend(function(v,E,S){const C=E.imageManager.getPattern(v.toString()),{width:z,height:P}=E.imageManager.getPixelSize(),D=Math.pow(2,S.tileID.overscaledZ),j=S.tileSize*Math.pow(2,E.transform.tileZoom)/D,$=j*(S.tileID.canonical.x+S.tileID.wrap*D),W=j*S.tileID.canonical.y;return{u_image:0,u_pattern_tl:C.tl,u_pattern_br:C.br,u_texsize:[z,P],u_pattern_size:C.displaySize,u_tile_units_to_pixels:1/Bt(S,1,E.transform.tileZoom),u_pixel_coord_upper:[$>>16,W>>16],u_pixel_coord_lower:[65535&$,65535&W]}}(f,c,_),{u_matrix:d,u_opacity:o}),_h={fillExtrusion:d=>({u_matrix:new s.UniformMatrix4f(d),u_lightpos:new s.Uniform3f(d),u_lightintensity:new s.Uniform1f(d),u_lightcolor:new s.Uniform3f(d),u_vertical_gradient:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_edge_radius:new s.Uniform1f(d),u_ao:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_up_dir:new s.Uniform3f(d),u_height_lift:new s.Uniform1f(d)}),fillExtrusionPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_lightpos:new s.Uniform3f(d),u_lightintensity:new s.Uniform1f(d),u_lightcolor:new s.Uniform3f(d),u_vertical_gradient:new s.Uniform1f(d),u_height_factor:new s.Uniform1f(d),u_edge_radius:new s.Uniform1f(d),u_ao:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_up_dir:new s.Uniform3f(d),u_height_lift:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d)}),fill:d=>({u_matrix:new s.UniformMatrix4f(d)}),fillPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),fillOutline:d=>({u_matrix:new s.UniformMatrix4f(d),u_world:new s.Uniform2f(d)}),fillOutlinePattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_world:new s.Uniform2f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),circle:d=>({u_camera_to_center_distance:new s.Uniform1f(d),u_extrude_scale:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_up_dir:new s.Uniform3f(d)}),collisionBox:d=>({u_matrix:new s.UniformMatrix4f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_extrude_scale:new s.Uniform2f(d)}),collisionCircle:d=>({u_matrix:new s.UniformMatrix4f(d),u_inv_matrix:new s.UniformMatrix4f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_viewport_size:new s.Uniform2f(d)}),debug:d=>({u_color:new s.UniformColor(d),u_matrix:new s.UniformMatrix4f(d),u_overlay:new s.Uniform1i(d),u_overlay_scale:new s.Uniform1f(d)}),clippingMask:d=>({u_matrix:new s.UniformMatrix4f(d)}),heatmap:d=>({u_extrude_scale:new s.Uniform1f(d),u_intensity:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_up_dir:new s.Uniform3f(d)}),heatmapTexture:d=>({u_image:new s.Uniform1i(d),u_color_ramp:new s.Uniform1i(d),u_opacity:new s.Uniform1f(d)}),hillshade:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_latrange:new s.Uniform2f(d),u_light:new s.Uniform2f(d),u_shadow:new s.UniformColor(d),u_highlight:new s.UniformColor(d),u_accent:new s.UniformColor(d)}),hillshadePrepare:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_dimension:new s.Uniform2f(d),u_zoom:new s.Uniform1f(d),u_unpack:new s.Uniform4f(d)}),line:d=>({u_matrix:new s.UniformMatrix4f(d),u_pixels_to_tile_units:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_units_to_pixels:new s.Uniform2f(d),u_dash_image:new s.Uniform1i(d),u_gradient_image:new s.Uniform1i(d),u_image_height:new s.Uniform1f(d),u_texsize:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_alpha_discard_threshold:new s.Uniform1f(d),u_trim_offset:new s.Uniform2f(d)}),linePattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_texsize:new s.Uniform2f(d),u_pixels_to_tile_units:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_units_to_pixels:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_alpha_discard_threshold:new s.Uniform1f(d)}),raster:d=>({u_matrix:new s.UniformMatrix4f(d),u_tl_parent:new s.Uniform2f(d),u_scale_parent:new s.Uniform1f(d),u_fade_t:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_image0:new s.Uniform1i(d),u_image1:new s.Uniform1i(d),u_brightness_low:new s.Uniform1f(d),u_brightness_high:new s.Uniform1f(d),u_saturation_factor:new s.Uniform1f(d),u_contrast_factor:new s.Uniform1f(d),u_spin_weights:new s.Uniform3f(d),u_perspective_transform:new s.Uniform2f(d)}),symbolIcon:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_camera_forward:new s.Uniform3f(d),u_tile_matrix:new s.UniformMatrix4f(d),u_up_vector:new s.Uniform3f(d),u_ecef_origin:new s.Uniform3f(d),u_texture:new s.Uniform1i(d)}),symbolSDF:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_texture:new s.Uniform1i(d),u_gamma_scale:new s.Uniform1f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_camera_forward:new s.Uniform3f(d),u_tile_matrix:new s.UniformMatrix4f(d),u_up_vector:new s.Uniform3f(d),u_ecef_origin:new s.Uniform3f(d),u_is_halo:new s.Uniform1i(d)}),symbolTextAndIcon:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_texsize_icon:new s.Uniform2f(d),u_texture:new s.Uniform1i(d),u_texture_icon:new s.Uniform1i(d),u_gamma_scale:new s.Uniform1f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_is_halo:new s.Uniform1i(d)}),background:d=>({u_matrix:new s.UniformMatrix4f(d),u_opacity:new s.Uniform1f(d),u_color:new s.UniformColor(d)}),backgroundPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_opacity:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_pattern_tl:new s.Uniform2f(d),u_pattern_br:new s.Uniform2f(d),u_texsize:new s.Uniform2f(d),u_pattern_size:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),terrainRaster:rh,terrainDepth:rh,skybox:d=>({u_matrix:new s.UniformMatrix4f(d),u_sun_direction:new s.Uniform3f(d),u_cubemap:new s.Uniform1i(d),u_opacity:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d)}),skyboxGradient:d=>({u_matrix:new s.UniformMatrix4f(d),u_color_ramp:new s.Uniform1i(d),u_center_direction:new s.Uniform3f(d),u_radius:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d)}),skyboxCapture:d=>({u_matrix_3f:new s.UniformMatrix3f(d),u_sun_direction:new s.Uniform3f(d),u_sun_intensity:new s.Uniform1f(d),u_color_tint_r:new s.Uniform4f(d),u_color_tint_m:new s.Uniform4f(d),u_luminance:new s.Uniform1f(d)}),globeRaster:d=>({u_proj_matrix:new s.UniformMatrix4f(d),u_globe_matrix:new s.UniformMatrix4f(d),u_normalize_matrix:new s.UniformMatrix4f(d),u_merc_matrix:new s.UniformMatrix4f(d),u_zoom_transition:new s.Uniform1f(d),u_merc_center:new s.Uniform2f(d),u_image0:new s.Uniform1i(d),u_grid_matrix:new s.UniformMatrix3f(d),u_skirt_height:new s.Uniform1f(d),u_frustum_tl:new s.Uniform3f(d),u_frustum_tr:new s.Uniform3f(d),u_frustum_br:new s.Uniform3f(d),u_frustum_bl:new s.Uniform3f(d),u_globe_pos:new s.Uniform3f(d),u_globe_radius:new s.Uniform1f(d),u_viewport:new s.Uniform2f(d)}),globeAtmosphere:d=>({u_frustum_tl:new s.Uniform3f(d),u_frustum_tr:new s.Uniform3f(d),u_frustum_br:new s.Uniform3f(d),u_frustum_bl:new s.Uniform3f(d),u_horizon:new s.Uniform1f(d),u_transition:new s.Uniform1f(d),u_fadeout_range:new s.Uniform1f(d),u_color:new s.Uniform4f(d),u_high_color:new s.Uniform4f(d),u_space_color:new s.Uniform4f(d),u_star_intensity:new s.Uniform1f(d),u_star_density:new s.Uniform1f(d),u_star_size:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d),u_horizon_angle:new s.Uniform1f(d),u_rotation_matrix:new s.UniformMatrix4f(d)})};let _c;function ul(d,o,c,f,_,v,E){const S=d.context,C=S.gl,z=d.transform,P=d.useProgram("collisionBox"),D=[];let j=0,$=0;for(let Q=0;Q0){const we=s.create(),Be=_e;s.mul(we,de.placementInvProjMatrix,z.glCoordMatrix),s.mul(we,we,de.placementViewportMatrix),D.push({circleArray:Ze,circleOffset:$,transform:Be,invTransform:we,projection:de.getProjection()}),j+=Ze.length/4,$=j}Te&&(d.terrain&&d.terrain.setupElevationDraw(pe,P),P.draw(S,C.LINES,s.DepthMode.disabled,s.StencilMode.disabled,d.colorModeForRenderPass(),s.CullFaceMode.disabled,dh(_e,z,pe,de.getProjection()),c.id,Te.layoutVertexBuffer,Te.indexBuffer,Te.segments,null,z.zoom,null,[Te.collisionVertexBuffer,Te.collisionVertexBufferExt]))}if(!E||!D.length)return;const W=d.useProgram("collisionCircle"),Z=new s.StructArrayLayout2f1f2i16;Z.resize(4*j),Z._trim();let H=0;for(const Q of D)for(let he=0;he=0&&(W[Q.associatedIconIndex]={x:we,y:Be,z:Ce,angle:Ge})}else br(de,j)}if(P){$.clear();const J=d.icon.placedSymbolArray;for(let Q=0;Qwe.sortKey-Be.sortKey);for(const we of _e){const Be=we.state;if(d.terrain&&d.terrain.setupElevationDraw(Be.tile,Be.program,{useDepthForOcclusion:!ye,labelPlaneMatrixInv:Be.labelPlaneMatrixInv}),j.activeTexture.set($.TEXTURE0),Be.atlasTexture.bind(Be.atlasInterpolation,$.CLAMP_TO_EDGE),Be.atlasTextureIcon&&(j.activeTexture.set($.TEXTURE1),Be.atlasTextureIcon&&Be.atlasTextureIcon.bind(Be.atlasInterpolationIcon,$.CLAMP_TO_EDGE)),Be.isSDF){const Ce=Be.uniformValues;Be.hasHalo&&(Ce.u_is_halo=1,hl(Be.buffers,we.segments,c,d,Be.program,he,P,D,Ce)),Ce.u_is_halo=0}hl(Be.buffers,we.segments,c,d,Be.program,he,P,D,Be.uniformValues)}}function hl(d,o,c,f,_,v,E,S,C){const z=f.context,P=[d.dynamicLayoutVertexBuffer,d.opacityVertexBuffer,d.globeExtVertexBuffer];_.draw(z,z.gl.TRIANGLES,v,E,S,s.CullFaceMode.disabled,C,c.id,d.layoutVertexBuffer,d.indexBuffer,o,c.paint,f.transform.zoom,d.programConfigurations.get(c.id),P)}function Rp(d,o,c,f,_,v,E){const S=d.context.gl,C=c.paint.get("fill-pattern"),z=C&&C.constantOr(1);let P,D,j,$,W;E?(D=z&&!c.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",P=S.LINES):(D=z?"fillPattern":"fill",P=S.TRIANGLES);for(const Z of f){const H=o.getTile(Z);if(z&&!H.patternsLoaded())continue;const O=H.getBucket(c);if(!O)continue;d.prepareDrawTile();const G=O.programConfigurations.get(c.id),J=d.useProgram(D,G);z&&(d.context.activeTexture.set(S.TEXTURE0),H.imageAtlasTexture.bind(S.LINEAR,S.CLAMP_TO_EDGE),G.updatePaintBuffers());const Q=C.constantOr(null);if(Q&&H.imageAtlas){const pe=H.imageAtlas.patternPositions[Q.toString()];pe&&G.setConstantPatternPositions(pe)}const he=d.translatePosMatrix(Z.projMatrix,H,c.paint.get("fill-translate"),c.paint.get("fill-translate-anchor"));if(E){$=O.indexBuffer2,W=O.segments2;const pe=d.terrain&&d.terrain.renderingToTexture?d.terrain.drapeBufferSize:[S.drawingBufferWidth,S.drawingBufferHeight];j=D==="fillOutlinePattern"&&z?jg(he,d,H,pe):Ug(he,pe)}else $=O.indexBuffer,W=O.segments,j=z?ch(he,d,H):fs(he);d.prepareDrawProgram(d.context,J,Z.toUnwrapped()),J.draw(d.context,P,_,d.stencilModeForClipping(Z),v,s.CullFaceMode.disabled,j,c.id,O.layoutVertexBuffer,$,W,c.paint,d.transform.zoom,G)}}function yc(d,o,c,f,_,v,E){const S=d.context,C=S.gl,z=d.transform,P=c.paint.get("fill-extrusion-pattern"),D=P.constantOr(1),j=c.paint.get("fill-extrusion-opacity"),$=[c.paint.get("fill-extrusion-ambient-occlusion-intensity"),c.paint.get("fill-extrusion-ambient-occlusion-radius")],W=c.layout.get("fill-extrusion-edge-radius"),Z=W>0&&!c.paint.get("fill-extrusion-rounded-roof"),H=Z?0:W,O=z.projection.name==="globe"?s.fillExtrusionHeightLift():0,G=z.projection.name==="globe",J=G?s.globeToMercatorTransition(z.zoom):0,Q=[s.mercatorXfromLng(z.center.lng),s.mercatorYfromLat(z.center.lat)],he=[];G&&he.push("PROJECTION_GLOBE_VIEW"),$[0]>0&&he.push("FAUX_AO"),Z&&he.push("ZERO_ROOF_RADIUS");for(const pe of f){const de=o.getTile(pe),ye=de.getBucket(c);if(!ye||ye.projection.name!==z.projection.name)continue;const _e=ye.programConfigurations.get(c.id),Te=d.useProgram(D?"fillExtrusionPattern":"fillExtrusion",_e,he);if(d.terrain){const Oe=d.terrain;if(d.style.terrainSetForDrapingOnly())Oe.setupElevationDraw(de,Te,{useMeterToDem:!0});else{if(!ye.enableTerrain)continue;if(Oe.setupElevationDraw(de,Te,{useMeterToDem:!0}),Dp(S,o,pe,ye,c,Oe),!ye.centroidVertexBuffer){const He=Te.attributes.a_centroid_pos;He!==void 0&&C.vertexAttrib2f(He,0,0)}}}D&&(d.context.activeTexture.set(C.TEXTURE0),de.imageAtlasTexture.bind(C.LINEAR,C.CLAMP_TO_EDGE),_e.updatePaintBuffers());const Ze=P.constantOr(null);if(Ze&&de.imageAtlas){const Oe=de.imageAtlas.patternPositions[Ze.toString()];Oe&&_e.setConstantPatternPositions(Oe)}const we=d.translatePosMatrix(pe.projMatrix,de,c.paint.get("fill-extrusion-translate"),c.paint.get("fill-extrusion-translate-anchor")),Be=z.projection.createInversionMatrix(z,pe.canonical),Ce=c.paint.get("fill-extrusion-vertical-gradient"),qe=D?Ip(we,d,Ce,j,$,H,pe,de,O,J,Q,Be):lh(we,d,Ce,j,$,H,pe,O,J,Q,Be);d.prepareDrawProgram(S,Te,pe.toUnwrapped());const Ee=[];d.terrain&&Ee.push(ye.centroidVertexBuffer),G&&Ee.push(ye.layoutVertexExtBuffer),Te.draw(S,S.gl.TRIANGLES,_,v,E,s.CullFaceMode.backCCW,qe,c.id,ye.layoutVertexBuffer,ye.indexBuffer,ye.segments,c.paint,d.transform.zoom,_e,Ee)}}function Dp(d,o,c,f,_,v){const E=[O=>{let G=O.canonical.x-1,J=O.wrap;return G<0&&(G=(1<{let G=O.canonical.x+1,J=O.wrap;return G===1<new s.OverscaledTileID(O.overscaledZ,O.wrap,O.canonical.z,O.canonical.x,(O.canonical.y===0?1<new s.OverscaledTileID(O.overscaledZ,O.wrap,O.canonical.z,O.canonical.x,O.canonical.y===(1<{const G=o.getSource().minzoom,J=he=>{const pe=o.getTileByID(he);if(pe&&pe.hasData())return pe.getBucket(_)},Q=[0,-1,1];for(const he of Q){if(O.overscaledZ+he(C[0]=Math.min(O.min.y,G.min.y),C[1]=Math.max(O.max.y,G.max.y),C[2]=s.EXTENT-G.min.x>O.max.x?G.min.x-s.EXTENT:O.max.x,C),P=(O,G)=>(C[0]=Math.min(O.min.x,G.min.x),C[1]=Math.max(O.max.x,G.max.x),C[2]=s.EXTENT-G.min.y>O.max.y?G.min.y-s.EXTENT:O.max.y,C),D=[(O,G)=>z(O,G),(O,G)=>z(G,O),(O,G)=>P(O,G),(O,G)=>P(G,O)],j=new s.Point(0,0);let $,W,Z;const H=(O,G,J,Q,he)=>{const pe=[[Q?J:O,Q?O:J,0],[Q?J:G,Q?G:J,0]],de=he<0?s.EXTENT+he:he,ye=[Q?de:(O+G)/2,Q?(O+G)/2:de,0];return J===0&&he<0||J!==0&&he>0?v.getForTilePoints(Z,[ye],!0,W):pe.push(ye),v.getForTilePoints(c,pe,!0,$),Math.max(pe[0][2],pe[1][2],ye[2])/v.exaggeration()};for(let O=0;O<4;O++){const G=(O<2?1:5)-O,J=f.borders[O];if(J.length===0)continue;const Q=Z=E[O](c),he=S(Q);if(!(he&&he instanceof s.FillExtrusionBucket&&he.enableTerrain)||f.borderDoneWithNeighborZ[O]===he.canonical.z&&he.borderDoneWithNeighborZ[G]===f.canonical.z||(W=v.findDEMTileFor(Q),!W||!W.dem))continue;if(!$){const _e=v.findDEMTileFor(c);if(!_e||!_e.dem)return;$=_e}const pe=he.borders[G];let de=0;const ye=he.borderDoneWithNeighborZ[G]!==f.canonical.z;if(f.canonical.z===he.canonical.z){for(let _e=0;_eZe[0]+3));)ye&&he.encodeCentroid(void 0,we,!1),de++;if(we&&deZe[1]-3)&&(Ce++,++de!==pe.length);)we=he.featuresOnBorder[pe[de]];if(we=he.featuresOnBorder[pe[Be]],Te.intersectsCount()>1||we.intersectsCount()>1||Ce!==1){Ce!==1&&(de=Be),f.encodeCentroid(void 0,Te,!1),ye&&he.encodeCentroid(void 0,we,!1);continue}const qe=D[O](Te,we),Ee=O%2?s.EXTENT-1:0;j.x=H(qe[0],Math.min(s.EXTENT-1,qe[1]),Ee,O<2,qe[2]),j.y=0,f.encodeCentroid(j,Te,!1),ye&&he.encodeCentroid(j,we,!1)}else f.encodeCentroid(void 0,Te,!1)}f.borderDoneWithNeighborZ[O]=he.canonical.z,f.needsCentroidUpdate=!0,ye&&(he.borderDoneWithNeighborZ[G]=f.canonical.z,he.needsCentroidUpdate=!0)}else{for(const _e of J)f.encodeCentroid(void 0,f.featuresOnBorder[_e],!1);if(ye){for(const _e of pe)he.encodeCentroid(void 0,he.featuresOnBorder[_e],!1);he.borderDoneWithNeighborZ[G]=f.canonical.z,he.needsCentroidUpdate=!0}f.borderDoneWithNeighborZ[O]=he.canonical.z,f.needsCentroidUpdate=!0}}(f.needsCentroidUpdate||!f.centroidVertexBuffer&&f.centroidVertexArray.length!==0)&&f.uploadCentroid(d)}const Qs=new s.Color(1,0,0,1),Zg=new s.Color(0,1,0,1),Wg=new s.Color(0,0,1,1),Hg=new s.Color(1,0,1,1),Xg=new s.Color(0,1,1,1);function Kg(d,o,c){const f=d.context,_=d.transform,v=f.gl,E=_.projection.name==="globe",S=E?["PROJECTION_GLOBE_VIEW"]:null;let C=c.projMatrix;if(E&&s.globeToMercatorTransition(_.zoom)>0){const Te=s.transitionTileAABBinECEF(c.canonical,_),Ze=s.globeDenormalizeECEF(Te);C=s.multiply(new Float32Array(16),_.globeMatrix,Ze),s.multiply(C,_.projMatrix,C)}const z=d.useProgram("debug",null,S),P=o.getTileByID(c.key);d.terrain&&d.terrain.setupElevationDraw(P,z);const D=s.DepthMode.disabled,j=s.StencilMode.disabled,$=d.colorModeForRenderPass(),W="$debug";f.activeTexture.set(v.TEXTURE0),d.emptyTexture.bind(v.LINEAR,v.CLAMP_TO_EDGE),E?P._makeGlobeTileDebugBuffers(d.context,_):P._makeDebugTileBoundsBuffers(d.context,_.projection);const Z=P._tileDebugBuffer||d.debugBuffer,H=P._tileDebugIndexBuffer||d.debugIndexBuffer,O=P._tileDebugSegments||d.debugSegments;z.draw(f,v.LINE_STRIP,D,j,$,s.CullFaceMode.disabled,fc(C,s.Color.red),W,Z,H,O,null,null,null,[P._globeTileDebugBorderBuffer]);const G=P.latestRawTileData,J=Math.floor((G&&G.byteLength||0)/1024),Q=o.getTile(c).tileSize,he=512/Math.min(Q,512)*(c.overscaledZ/_.zoom)*.5;let pe=c.canonical.toString();c.overscaledZ!==c.canonical.z&&(pe+=` => ${c.overscaledZ}`),pe+=` ${J}kb`,function(Te,Ze){Te.initDebugOverlayCanvas();const we=Te.debugOverlayCanvas,Be=Te.context.gl,Ce=Te.debugOverlayCanvas.getContext("2d");Ce.clearRect(0,0,we.width,we.height),Ce.shadowColor="white",Ce.shadowBlur=2,Ce.lineWidth=1.5,Ce.strokeStyle="white",Ce.textBaseline="top",Ce.font="bold 36px Open Sans, sans-serif",Ce.fillText(Ze,5,5),Ce.strokeText(Ze,5,5),Te.debugOverlayTexture.update(we),Te.debugOverlayTexture.bind(Be.LINEAR,Be.CLAMP_TO_EDGE)}(d,pe);const de=P._tileDebugTextBuffer||d.debugBuffer,ye=P._tileDebugTextIndexBuffer||d.quadTriangleIndexBuffer,_e=P._tileDebugTextSegments||d.debugSegments;z.draw(f,v.TRIANGLES,D,j,s.ColorMode.alphaBlended,s.CullFaceMode.disabled,fc(C,s.Color.transparent,he),W,de,ye,_e,null,null,null,[P._globeTileDebugTextBuffer])}function Op(d,o,c,f){ea(d,0,o+c/2,d.transform.width,c,f)}function vc(d,o,c,f){ea(d,o-c/2,0,c,d.transform.height,f)}function ea(d,o,c,f,_,v){const E=d.context,S=E.gl;S.enable(S.SCISSOR_TEST),S.scissor(o*s.exported.devicePixelRatio,c*s.exported.devicePixelRatio,f*s.exported.devicePixelRatio,_*s.exported.devicePixelRatio),E.clear({color:v}),S.disable(S.SCISSOR_TEST)}const Bp=s.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:Fp}=Bp;function uo(d,o,c,f){d.emplaceBack(o,c,f)}class xc{constructor(o){this.vertexArray=new s.StructArrayLayout3f12,this.indices=new s.StructArrayLayout3ui6,uo(this.vertexArray,-1,-1,1),uo(this.vertexArray,1,-1,1),uo(this.vertexArray,-1,1,1),uo(this.vertexArray,1,1,1),uo(this.vertexArray,-1,-1,-1),uo(this.vertexArray,1,-1,-1),uo(this.vertexArray,-1,1,-1),uo(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=o.createVertexBuffer(this.vertexArray,Fp),this.indexBuffer=o.createIndexBuffer(this.indices),this.segment=s.SegmentVector.simpleSegment(0,0,36,12)}}function sr(d,o,c,f,_,v){const E=d.gl,S=o.paint.get("sky-atmosphere-color"),C=o.paint.get("sky-atmosphere-halo-color"),z=o.paint.get("sky-atmosphere-sun-intensity"),P=((D,j,$,W,Z)=>({u_matrix_3f:D,u_sun_direction:j,u_sun_intensity:$,u_color_tint_r:[W.r,W.g,W.b,W.a],u_color_tint_m:[Z.r,Z.g,Z.b,Z.a],u_luminance:5e-5}))(s.fromMat4(s.create$1(),f),_,z,S,C);E.framebufferTexture2D(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.TEXTURE_CUBE_MAP_POSITIVE_X+v,o.skyboxTexture,0),c.draw(d,E.TRIANGLES,s.DepthMode.disabled,s.StencilMode.disabled,s.ColorMode.unblended,s.CullFaceMode.frontCW,P,"skyboxCapture",o.skyboxGeometry.vertexBuffer,o.skyboxGeometry.indexBuffer,o.skyboxGeometry.segment)}const dl=s.createLayout([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);class Np{constructor(o){const c=new s.StructArrayLayout5f20;c.emplaceBack(-1,1,1,0,0),c.emplaceBack(1,1,1,1,0),c.emplaceBack(1,-1,1,1,1),c.emplaceBack(-1,-1,1,0,1);const f=new s.StructArrayLayout3ui6;f.emplaceBack(0,1,2),f.emplaceBack(2,3,0),this.vertexBuffer=o.createVertexBuffer(c,dl.members),this.indexBuffer=o.createIndexBuffer(f),this.segments=s.SegmentVector.simpleSegment(0,0,4,2)}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy()}}const ms={symbol:function(d,o,c,f,_){if(d.renderPass!=="translucent")return;const v=s.StencilMode.disabled,E=d.colorModeForRenderPass();c.layout.get("text-variable-anchor")&&function(S,C,z,P,D,j,$){const W=C.transform,Z=D==="map",H=j==="map";for(const O of S){const G=P.getTile(O),J=G.getBucket(z);if(!J||!J.text||!J.text.segments.get().length)continue;const Q=s.evaluateSizeForZoom(J.textSizeData,W.zoom),he=En(O,J.getProjection(),W),pe=W.calculatePixelsToTileUnitsMatrix(G),de=Le(he,G.tileID.canonical,H,Z,W,J.getProjection(),pe),ye=z.layout.get("icon-text-fit")!=="none"&&J.hasIconData();if(Q){const _e=Math.pow(2,W.zoom-G.tileID.overscaledZ);qg(J,Z,H,$,s.symbolSize,W,de,O,_e,Q,ye)}}}(f,d,c,o,c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),_),c.paint.get("icon-opacity").constantOr(1)!==0&&Lp(d,o,c,f,!1,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),c.layout.get("icon-rotation-alignment"),c.layout.get("icon-pitch-alignment"),c.layout.get("icon-keep-upright"),v,E),c.paint.get("text-opacity").constantOr(1)!==0&&Lp(d,o,c,f,!0,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),c.layout.get("text-keep-upright"),v,E),o.map.showCollisionBoxes&&(ul(d,o,c,f,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),!0),ul(d,o,c,f,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),!1))},circle:function(d,o,c,f){if(d.renderPass!=="translucent")return;const _=c.paint.get("circle-opacity"),v=c.paint.get("circle-stroke-width"),E=c.paint.get("circle-stroke-opacity"),S=c.layout.get("circle-sort-key").constantOr(1)!==void 0;if(_.constantOr(1)===0&&(v.constantOr(1)===0||E.constantOr(1)===0))return;const C=d.context,z=C.gl,P=d.transform,D=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),j=s.StencilMode.disabled,$=d.colorModeForRenderPass(),W=P.projection.name==="globe",Z=[s.mercatorXfromLng(P.center.lng),s.mercatorYfromLat(P.center.lat)],H=[];for(let G=0;GG.sortKey-J.sortKey);const O={useDepthForOcclusion:!W};for(const G of H){const{programConfiguration:J,program:Q,layoutVertexBuffer:he,globeExtVertexBuffer:pe,indexBuffer:de,uniformValues:ye,tile:_e}=G.state,Te=G.segments;d.terrain&&d.terrain.setupElevationDraw(_e,Q,O),d.prepareDrawProgram(C,Q,_e.tileID.toUnwrapped()),Q.draw(C,z.TRIANGLES,D,j,$,s.CullFaceMode.disabled,ye,c.id,he,de,Te,c.paint,P.zoom,J,[pe])}},heatmap:function(d,o,c,f){if(c.paint.get("heatmap-opacity")!==0)if(d.renderPass==="offscreen"){const _=d.context,v=_.gl,E=s.StencilMode.disabled,S=new s.ColorMode([v.ONE,v.ONE],s.Color.transparent,[!0,!0,!0,!0]);(function($,W,Z,H){const O=$.gl,G=W.width*H,J=W.height*H;$.activeTexture.set(O.TEXTURE1),$.viewport.set([0,0,G,J]);let Q=Z.heatmapFbo;if(!Q||Q&&(Q.width!==G||Q.height!==J)){Q&&Q.destroy();const he=O.createTexture();O.bindTexture(O.TEXTURE_2D,he),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_WRAP_S,O.CLAMP_TO_EDGE),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_WRAP_T,O.CLAMP_TO_EDGE),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_MIN_FILTER,O.LINEAR),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_MAG_FILTER,O.LINEAR),Q=Z.heatmapFbo=$.createFramebuffer(G,J,!1),function(pe,de,ye,_e,Te,Ze){const we=pe.gl;we.texImage2D(we.TEXTURE_2D,0,pe.isWebGL2&&pe.extRenderToTextureHalfFloat?we.RGBA16F:we.RGBA,Te,Ze,0,we.RGBA,pe.extRenderToTextureHalfFloat?pe.isWebGL2?we.HALF_FLOAT:pe.extTextureHalfFloat.HALF_FLOAT_OES:we.UNSIGNED_BYTE,null),_e.colorAttachment.set(ye)}($,0,he,Q,G,J)}else O.bindTexture(O.TEXTURE_2D,Q.colorAttachment.get()),$.bindFramebuffer.set(Q.framebuffer)})(_,d,c,d.transform.projection.name==="globe"?.5:.25),_.clear({color:s.Color.transparent});const C=d.transform,z=C.projection.name==="globe",P=z?["PROJECTION_GLOBE_VIEW"]:null,D=z?s.CullFaceMode.frontCCW:s.CullFaceMode.disabled,j=[s.mercatorXfromLng(C.center.lng),s.mercatorYfromLat(C.center.lat)];for(let $=0;$({u_image:0,u_color_ramp:1,u_opacity:D.paint.get("heatmap-opacity")}))(0,v),v.id,_.viewportBuffer,_.quadTriangleIndexBuffer,_.viewportSegments,v.paint,_.transform.zoom)}(d,c))},line:function(d,o,c,f){if(d.renderPass!=="translucent")return;const _=c.paint.get("line-opacity"),v=c.paint.get("line-width");if(_.constantOr(1)===0||v.constantOr(1)===0)return;const E=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),S=d.colorModeForRenderPass(),C=d.terrain&&d.terrain.renderingToTexture?1:s.exported.devicePixelRatio,z=c.paint.get("line-dasharray"),P=z.constantOr(1),D=c.layout.get("line-cap"),j=c.paint.get("line-pattern"),$=j.constantOr(1),W=c.paint.get("line-gradient"),Z=$?"linePattern":"line",H=d.context,O=H.gl,G=(Q=>{const he=[];cl(Q)&&he.push("RENDER_LINE_DASH"),Q.paint.get("line-gradient")&&he.push("RENDER_LINE_GRADIENT");const pe=Q.paint.get("line-trim-offset");pe[0]===0&&pe[1]===0||he.push("RENDER_LINE_TRIM_OFFSET");const de=Q.paint.get("line-pattern").constantOr(1),ye=Q.paint.get("line-opacity").constantOr(1)!==1;return!de&&ye&&he.push("RENDER_LINE_ALPHA_DISCARD"),he})(c);let J=G.includes("RENDER_LINE_ALPHA_DISCARD");d.terrain&&d.terrain.clipOrMaskOverlapStencilType()&&(J=!1);for(const Q of f){const he=o.getTile(Q);if($&&!he.patternsLoaded())continue;const pe=he.getBucket(c);if(!pe)continue;d.prepareDrawTile();const de=pe.programConfigurations.get(c.id),ye=d.useProgram(Z,de,G),_e=j.constantOr(null);if(_e&&he.imageAtlas){const Oe=he.imageAtlas.patternPositions[_e.toString()];Oe&&de.setConstantPatternPositions(Oe)}const Te=z.constantOr(null),Ze=D.constantOr(null);if(!$&&Te&&Ze&&he.lineAtlas){const Oe=he.lineAtlas.getDash(Te,Ze);Oe&&de.setConstantPatternPositions(Oe)}let[we,Be]=c.paint.get("line-trim-offset");(Ze==="round"||Ze==="square")&&we!==Be&&(we===0&&(we-=1),Be===1&&(Be+=1));const Ce=d.terrain?Q.projMatrix:null,qe=$?ll(d,he,c,Ce,C):Gg(d,he,c,Ce,pe.lineClipsArray.length,C,[we,Be]);if(W){const Oe=pe.gradients[c.id];let He=Oe.texture;if(c.gradientVersion!==Oe.version){let Ge=256;if(c.stepInterpolant){const Xe=o.getSource().maxzoom,gt=Q.canonical.z===Xe?Math.ceil(1<{ye.draw(H,O.TRIANGLES,E,Oe,S,s.CullFaceMode.disabled,qe,c.id,pe.layoutVertexBuffer,pe.indexBuffer,pe.segments,c.paint,d.transform.zoom,de,[pe.layoutVertexBuffer2])};if(J){const Oe=d.stencilModeForClipping(Q).ref;Oe===0&&d.terrain&&H.clear({stencil:0});const He={func:O.EQUAL,mask:255};qe.u_alpha_discard_threshold=.8,Ee(new s.StencilMode(He,Oe,255,O.KEEP,O.KEEP,O.INVERT)),qe.u_alpha_discard_threshold=0,Ee(new s.StencilMode(He,Oe,255,O.KEEP,O.KEEP,O.KEEP))}else Ee(d.stencilModeForClipping(Q))}J&&(d.resetStencilClippingMasks(),d.terrain&&H.clear({stencil:0}))},fill:function(d,o,c,f){const _=c.paint.get("fill-color"),v=c.paint.get("fill-opacity");if(v.constantOr(1)===0)return;const E=d.colorModeForRenderPass(),S=c.paint.get("fill-pattern"),C=d.opaquePassEnabledForLayer()&&!S.constantOr(1)&&_.constantOr(s.Color.transparent).a===1&&v.constantOr(0)===1?"opaque":"translucent";if(d.renderPass===C){const z=d.depthModeForSublayer(1,d.renderPass==="opaque"?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly);Rp(d,o,c,f,z,E,!1)}if(d.renderPass==="translucent"&&c.paint.get("fill-antialias")){const z=d.depthModeForSublayer(c.getPaintProperty("fill-outline-color")?2:0,s.DepthMode.ReadOnly);Rp(d,o,c,f,z,E,!0)}},"fill-extrusion":function(d,o,c,f){const _=c.paint.get("fill-extrusion-opacity");if(_!==0&&d.renderPass==="translucent"){const v=new s.DepthMode(d.context.gl.LEQUAL,s.DepthMode.ReadWrite,d.depthRangeFor3D);if(_!==1||c.paint.get("fill-extrusion-pattern").constantOr(1))yc(d,o,c,f,v,s.StencilMode.disabled,s.ColorMode.disabled),yc(d,o,c,f,v,d.stencilModeFor3D(),d.colorModeForRenderPass()),d.resetStencilClippingMasks();else{const E=d.colorModeForRenderPass();yc(d,o,c,f,v,s.StencilMode.disabled,E)}}},hillshade:function(d,o,c,f){if(d.renderPass!=="offscreen"&&d.renderPass!=="translucent")return;const _=d.context,v=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),E=d.colorModeForRenderPass(),S=d.terrain&&d.terrain.renderingToTexture,[C,z]=d.renderPass!=="translucent"||S?[{},f]:d.stencilConfigForOverlap(f);for(const P of z){const D=o.getTile(P);if(D.needsHillshadePrepare&&d.renderPass==="offscreen")Sp(d,D,c,v,s.StencilMode.disabled,E);else if(d.renderPass==="translucent"){const j=S&&d.terrain?d.terrain.stencilModeForRTTOverlap(P):C[P.overscaledZ];Tp(d,P,D,c,v,j,E)}}_.viewport.set([0,0,d.width,d.height]),d.resetStencilClippingMasks()},raster:function(d,o,c,f,_,v){if(d.renderPass!=="translucent"||c.paint.get("raster-opacity")===0||!f.length)return;const E=d.context,S=E.gl,C=o.getSource(),z=d.useProgram("raster"),P=d.colorModeForRenderPass(),D=d.terrain&&d.terrain.renderingToTexture,[j,$]=C instanceof Rt||D?[{},f]:d.stencilConfigForOverlap(f),W=$[$.length-1].overscaledZ,Z=!d.options.moving;for(const H of $){const O=D?s.DepthMode.disabled:d.depthModeForSublayer(H.overscaledZ-W,c.paint.get("raster-opacity")===1?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly,S.LESS),G=H.toUnwrapped(),J=o.getTile(H);if(D&&(!J||!J.hasData()))continue;const Q=D?H.projMatrix:d.transform.calculateProjMatrix(G,Z),he=d.terrain&&D?d.terrain.stencilModeForRTTOverlap(H):j[H.overscaledZ],pe=v?0:c.paint.get("raster-fade-duration");J.registerFadeDuration(pe);const de=o.findLoadedParent(H,0),ye=oh(J,de,o,d.transform,pe);let _e,Te;d.terrain&&d.terrain.prepareDrawTile();const Ze=c.paint.get("raster-resampling")==="nearest"?S.NEAREST:S.LINEAR;E.activeTexture.set(S.TEXTURE0),J.texture.bind(Ze,S.CLAMP_TO_EDGE),E.activeTexture.set(S.TEXTURE1),de?(de.texture.bind(Ze,S.CLAMP_TO_EDGE),_e=Math.pow(2,de.tileID.overscaledZ-J.tileID.overscaledZ),Te=[J.tileID.canonical.x*_e%1,J.tileID.canonical.y*_e%1]):J.texture.bind(Ze,S.CLAMP_TO_EDGE),J.texture.useMipmap&&E.extTextureFilterAnisotropic&&d.transform.pitch>20&&S.texParameterf(S.TEXTURE_2D,E.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,E.extTextureFilterAnisotropicMax);const we=fh(Q,Te||[0,0],_e||1,ye,c,C instanceof Rt?C.perspectiveTransform:[0,0]);if(d.prepareDrawProgram(E,z,G),C instanceof Rt)C.boundsBuffer&&C.boundsSegments&&z.draw(E,S.TRIANGLES,O,s.StencilMode.disabled,P,s.CullFaceMode.disabled,we,c.id,C.boundsBuffer,d.quadTriangleIndexBuffer,C.boundsSegments);else{const{tileBoundsBuffer:Be,tileBoundsIndexBuffer:Ce,tileBoundsSegments:qe}=d.getTileBoundsBuffers(J);z.draw(E,S.TRIANGLES,O,he,P,s.CullFaceMode.disabled,we,c.id,Be,Ce,qe)}}d.resetStencilClippingMasks()},background:function(d,o,c,f){const _=c.paint.get("background-color"),v=c.paint.get("background-opacity");if(v===0)return;const E=d.context,S=E.gl,C=d.transform,z=C.tileSize,P=c.paint.get("background-pattern");if(d.isPatternMissing(P))return;const D=!P&&_.a===1&&v===1&&d.opaquePassEnabledForLayer()?"opaque":"translucent";if(d.renderPass!==D)return;const j=s.StencilMode.disabled,$=d.depthModeForSublayer(0,D==="opaque"?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly),W=d.colorModeForRenderPass(),Z=d.useProgram(P?"backgroundPattern":"background");let H,O=f;O||(H=d.getBackgroundTiles(),O=Object.values(H).map(G=>G.tileID)),P&&(E.activeTexture.set(S.TEXTURE0),d.imageManager.bind(d.context));for(const G of O){const J=G.toUnwrapped(),Q=f?G.projMatrix:d.transform.calculateProjMatrix(J);d.prepareDrawTile();const he=o?o.getTile(G):H?H[G.key]:new s.Tile(G,z,C.zoom,d),pe=P?$g(Q,v,d,P,{tileID:G,tileSize:z}):gh(Q,v,_);d.prepareDrawProgram(E,Z,J);const{tileBoundsBuffer:de,tileBoundsIndexBuffer:ye,tileBoundsSegments:_e}=d.getTileBoundsBuffers(he);Z.draw(E,S.TRIANGLES,$,j,W,s.CullFaceMode.disabled,pe,c.id,de,ye,_e)}},sky:function(d,o,c){const f=d.transform,_=f.projection.name==="mercator"||f.projection.name==="globe"?1:s.smoothstep(7,8,f.zoom),v=c.paint.get("sky-opacity")*_;if(v===0)return;const E=d.context,S=c.paint.get("sky-type"),C=new s.DepthMode(E.gl.LEQUAL,s.DepthMode.ReadOnly,[0,1]),z=d.frameCounter/1e3%1;S==="atmosphere"?d.renderPass==="offscreen"?c.needsSkyboxCapture(d)&&(function(P,D,j,$){const W=P.context,Z=W.gl;let H=D.skyboxFbo;if(!H){H=D.skyboxFbo=W.createFramebuffer(32,32,!1),D.skyboxGeometry=new xc(W),D.skyboxTexture=W.gl.createTexture(),Z.bindTexture(Z.TEXTURE_CUBE_MAP,D.skyboxTexture),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_WRAP_S,Z.CLAMP_TO_EDGE),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_WRAP_T,Z.CLAMP_TO_EDGE),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_MIN_FILTER,Z.LINEAR),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_MAG_FILTER,Z.LINEAR);for(let Q=0;Q<6;++Q)Z.texImage2D(Z.TEXTURE_CUBE_MAP_POSITIVE_X+Q,0,Z.RGBA,32,32,0,Z.RGBA,Z.UNSIGNED_BYTE,null)}W.bindFramebuffer.set(H.framebuffer),W.viewport.set([0,0,32,32]);const O=D.getCenter(P,!0),G=P.useProgram("skyboxCapture"),J=new Float64Array(16);s.identity(J),s.rotateY(J,J,.5*-Math.PI),sr(W,D,G,J,O,0),s.identity(J),s.rotateY(J,J,.5*Math.PI),sr(W,D,G,J,O,1),s.identity(J),s.rotateX(J,J,.5*-Math.PI),sr(W,D,G,J,O,2),s.identity(J),s.rotateX(J,J,.5*Math.PI),sr(W,D,G,J,O,3),s.identity(J),sr(W,D,G,J,O,4),s.identity(J),s.rotateY(J,J,Math.PI),sr(W,D,G,J,O,5),W.viewport.set([0,0,P.width,P.height])}(d,c),c.markSkyboxValid(d)):d.renderPass==="sky"&&function(P,D,j,$,W){const Z=P.context,H=Z.gl,O=P.transform,G=P.useProgram("skybox");Z.activeTexture.set(H.TEXTURE0),H.bindTexture(H.TEXTURE_CUBE_MAP,D.skyboxTexture);const J=((Q,he,pe,de,ye)=>({u_matrix:Q,u_sun_direction:he,u_cubemap:0,u_opacity:de,u_temporal_offset:ye}))(O.skyboxMatrix,D.getCenter(P,!1),0,$,W);P.prepareDrawProgram(Z,G),G.draw(Z,H.TRIANGLES,j,s.StencilMode.disabled,P.colorModeForRenderPass(),s.CullFaceMode.backCW,J,"skybox",D.skyboxGeometry.vertexBuffer,D.skyboxGeometry.indexBuffer,D.skyboxGeometry.segment)}(d,c,C,v,z):S==="gradient"&&d.renderPass==="sky"&&function(P,D,j,$,W){const Z=P.context,H=Z.gl,O=P.transform,G=P.useProgram("skyboxGradient");D.skyboxGeometry||(D.skyboxGeometry=new xc(Z)),Z.activeTexture.set(H.TEXTURE0);let J=D.colorRampTexture;J||(J=D.colorRampTexture=new s.Texture(Z,D.colorRamp,H.RGBA)),J.bind(H.LINEAR,H.CLAMP_TO_EDGE);const Q=((he,pe,de,ye,_e)=>({u_matrix:he,u_color_ramp:0,u_center_direction:pe,u_radius:s.degToRad(de),u_opacity:ye,u_temporal_offset:_e}))(O.skyboxMatrix,D.getCenter(P,!1),D.paint.get("sky-gradient-radius"),$,W);P.prepareDrawProgram(Z,G),G.draw(Z,H.TRIANGLES,j,s.StencilMode.disabled,P.colorModeForRenderPass(),s.CullFaceMode.backCW,Q,"skyboxGradient",D.skyboxGeometry.vertexBuffer,D.skyboxGeometry.indexBuffer,D.skyboxGeometry.segment)}(d,c,C,v,z)},debug:function(d,o,c){for(let f=0;f_)return void(this.transform.fogCullDistSq=null);const v=f+.78*(_-f);this.transform.fogCullDistSq=v*v}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(o,c){if(this.width=o*s.exported.devicePixelRatio,this.height=c*s.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const f of this.style.order)this.style._layers[f].resize()}setup(){const o=this.context,c=new s.StructArrayLayout2i4;c.emplaceBack(0,0),c.emplaceBack(s.EXTENT,0),c.emplaceBack(0,s.EXTENT),c.emplaceBack(s.EXTENT,s.EXTENT),this.tileExtentBuffer=o.createVertexBuffer(c,s.posAttributes.members),this.tileExtentSegments=s.SegmentVector.simpleSegment(0,0,4,2);const f=new s.StructArrayLayout2i4;f.emplaceBack(0,0),f.emplaceBack(s.EXTENT,0),f.emplaceBack(0,s.EXTENT),f.emplaceBack(s.EXTENT,s.EXTENT),this.debugBuffer=o.createVertexBuffer(f,s.posAttributes.members),this.debugSegments=s.SegmentVector.simpleSegment(0,0,4,5);const _=new s.StructArrayLayout2i4;_.emplaceBack(-1,-1),_.emplaceBack(1,-1),_.emplaceBack(-1,1),_.emplaceBack(1,1),this.viewportBuffer=o.createVertexBuffer(_,s.posAttributes.members),this.viewportSegments=s.SegmentVector.simpleSegment(0,0,4,2);const v=new s.StructArrayLayout4i8;v.emplaceBack(0,0,0,0),v.emplaceBack(s.EXTENT,0,s.EXTENT,0),v.emplaceBack(0,s.EXTENT,0,s.EXTENT),v.emplaceBack(s.EXTENT,s.EXTENT,s.EXTENT,s.EXTENT),this.mercatorBoundsBuffer=o.createVertexBuffer(v,s.boundsAttributes.members),this.mercatorBoundsSegments=s.SegmentVector.simpleSegment(0,0,4,2);const E=new s.StructArrayLayout3ui6;E.emplaceBack(0,1,2),E.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=o.createIndexBuffer(E);const S=new s.StructArrayLayout1ui2;for(const z of[0,1,3,2,0])S.emplaceBack(z);this.debugIndexBuffer=o.createIndexBuffer(S),this.emptyTexture=new s.Texture(o,new s.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),o.gl.RGBA),this.identityMat=s.create();const C=this.context.gl;this.stencilClearMode=new s.StencilMode({func:C.ALWAYS,mask:0},0,255,C.ZERO,C.ZERO,C.ZERO),this.loadTimeStamps.push(s.window.performance.now()),this.atmosphereBuffer=new Np(this.context)}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(o){return o._makeTileBoundsBuffers(this.context,this.transform.projection),o._tileBoundsBuffer?{tileBoundsBuffer:o._tileBoundsBuffer,tileBoundsIndexBuffer:o._tileBoundsIndexBuffer,tileBoundsSegments:o._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const o=this.context,c=o.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(o,c.TRIANGLES,s.DepthMode.disabled,this.stencilClearMode,s.ColorMode.disabled,s.CullFaceMode.disabled,sl(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(o,c,f){if(!c||this.currentStencilSource===c.id||!o.isTileClipped()||!f||f.length===0)return;if(this._tileClippingMaskIDs&&!this.terrain){let S=!1;for(const C of f)if(this._tileClippingMaskIDs[C.key]===void 0){S=!0;break}if(!S)return}this.currentStencilSource=c.id;const _=this.context,v=_.gl;this.nextStencilID+f.length>256&&this.clearStencil(),_.setColorMode(s.ColorMode.disabled),_.setDepthMode(s.DepthMode.disabled);const E=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const S of f){const C=c.getTile(S),z=this._tileClippingMaskIDs[S.key]=this.nextStencilID++,{tileBoundsBuffer:P,tileBoundsIndexBuffer:D,tileBoundsSegments:j}=this.getTileBoundsBuffers(C);E.draw(_,v.TRIANGLES,s.DepthMode.disabled,new s.StencilMode({func:v.ALWAYS,mask:0},z,255,v.KEEP,v.KEEP,v.REPLACE),s.ColorMode.disabled,s.CullFaceMode.disabled,sl(S.projMatrix),"$clipping",P,D,j)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const o=this.nextStencilID++,c=this.context.gl;return new s.StencilMode({func:c.NOTEQUAL,mask:255},o,255,c.KEEP,c.KEEP,c.REPLACE)}stencilModeForClipping(o){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(o);const c=this.context.gl;return new s.StencilMode({func:c.EQUAL,mask:255},this._tileClippingMaskIDs[o.key],0,c.KEEP,c.KEEP,c.REPLACE)}stencilConfigForOverlap(o){const c=this.context.gl,f=o.sort((E,S)=>S.overscaledZ-E.overscaledZ),_=f[f.length-1].overscaledZ,v=f[0].overscaledZ-_+1;if(v>1){this.currentStencilSource=void 0,this.nextStencilID+v>256&&this.clearStencil();const E={};for(let S=0;S=0;this.currentLayer--){const z=this.style._layers[f[this.currentLayer]],P=o._getLayerSourceCache(z);if(z.isSky())continue;const D=P?E[P.id]:void 0;this._renderTileClippingMasks(z,P,D),this.renderLayer(this,P,z,D)}if(this.style.fog&&this.transform.projection.supportsFog&&function(z,P){const D=z.context,j=D.gl,$=z.transform,W=new s.DepthMode(j.LEQUAL,s.DepthMode.ReadOnly,[0,1]),Z=z.useProgram("globeAtmosphere",null,$.projection.name==="globe"?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"]),H=s.globeToMercatorTransition($.zoom),O=P.properties.get("color").toArray01(),G=P.properties.get("high-color").toArray01(),J=P.properties.get("space-color").toArray01PremultipliedAlpha(),Q=s.identity$1([]);s.rotateY$1(Q,Q,-s.degToRad($._center.lng)),s.rotateX$1(Q,Q,s.degToRad($._center.lat)),s.rotateZ$1(Q,Q,$.angle),s.rotateX$1(Q,Q,-$._pitch);const he=s.fromQuat(new Float32Array(16),Q),pe=s.mapValue(P.properties.get("star-intensity"),0,1,0,.25),de=5e-4,ye=s.mapValue(P.properties.get("horizon-blend"),0,1,de,.25),_e=s.globeUseCustomAntiAliasing(z,D,$)&&ye===de?$.worldSize/(2*Math.PI*1.025)-1:$.globeRadius,Te=z.frameCounter/1e3%1,Ze=s.length($.globeCenterInViewSpace),we=Math.sqrt(Math.pow(Ze,2)-Math.pow(_e,2)),Be=Math.acos(we/Ze),Ce=((Ee,Oe,He,Ge,Xe,gt,Et,dt,wt,Ut,Ot,mt,en,rn)=>({u_frustum_tl:Ee,u_frustum_tr:Oe,u_frustum_br:He,u_frustum_bl:Ge,u_horizon:Xe,u_transition:gt,u_fadeout_range:Et,u_color:dt,u_high_color:wt,u_space_color:Ut,u_star_intensity:Ot,u_star_size:5*s.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:mt,u_horizon_angle:en,u_rotation_matrix:rn}))($.frustumCorners.TL,$.frustumCorners.TR,$.frustumCorners.BR,$.frustumCorners.BL,$.frustumCorners.horizon,H,ye,O,G,J,pe,Te,Be,he);z.prepareDrawProgram(D,Z);const qe=z.atmosphereBuffer;qe&&Z.draw(D,j.TRIANGLES,W,s.StencilMode.disabled,s.ColorMode.alphaBlended,s.CullFaceMode.backCW,Ce,"skybox",qe.vertexBuffer,qe.indexBuffer,qe.segments)}(this,this.style.fog),this.renderPass="sky",(s.globeToMercatorTransition(this.transform.zoom)>0||this.transform.projection.name!=="globe")&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const D=o._getLayerSourceCache(P);D&&!P.isHidden(this.transform.zoom)&&(!z||z.getSource().maxzoom0?c.pop():null}isPatternMissing(o){return o===null||o!==void 0&&!this.imageManager.getPattern(o.toString())}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture}currentGlobalDefines(){const o=this.terrain&&this.terrain.renderingToTexture,c=this.terrain&&this.terrain.exaggeration()===0,f=this.style&&this.style.fog,_=[];return this.terrainRenderModeElevated()&&_.push("TERRAIN"),this.transform.projection.name==="globe"&&_.push("GLOBE"),c&&_.push("ZERO_EXAGGERATION"),f&&!o&&f.getOpacity(this.transform.pitch)!==0&&_.push("FOG"),o&&_.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&_.push("OVERDRAW_INSPECTOR"),_}useProgram(o,c,f){this.cache=this.cache||{};const _=f||[],v=this.currentGlobalDefines().concat(_),E=Zt.cacheKey(th[o],o,v,c);return this.cache[E]||(this.cache[E]=new Zt(this.context,o,th[o],c,_h[o],v)),this.cache[E]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const o=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(o.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=s.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new s.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy()}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile()}prepareDrawProgram(o,c,f){if(this.terrain&&this.terrain.renderingToTexture)return;const _=this.style.fog;if(_){const v=_.getOpacity(this.transform.pitch),E=((S,C,z,P,D,j,$,W,Z,H,O)=>{const G=S.transform,J=C.properties.get("color").toArray01();J[3]=P;const Q=S.frameCounter/1e3%1;return{u_fog_matrix:z?G.calculateFogTileMatrix(z):S.identityMat,u_fog_range:C.getFovAdjustedRange(G._fov),u_fog_color:J,u_fog_horizon_blend:C.properties.get("horizon-blend"),u_fog_temporal_offset:Q,u_frustum_tl:D,u_frustum_tr:j,u_frustum_br:$,u_frustum_bl:W,u_globe_pos:Z,u_globe_radius:H,u_viewport:O,u_globe_transition:s.globeToMercatorTransition(G.zoom),u_is_globe:+(G.projection.name==="globe")}})(this,_,f,v,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*s.exported.devicePixelRatio,this.transform.height*s.exported.devicePixelRatio]);c.setFogUniformValues(o,E)}}setTileLoadedFlag(o){this.tileLoaded=o}saveCanvasCopy(){const o=this.canvasCopy();o&&(this.frameCopies.push(o),this.tileLoaded=!1)}canvasCopy(){const o=this.context.gl,c=o.createTexture();return o.bindTexture(o.TEXTURE_2D,c),o.copyTexImage2D(o.TEXTURE_2D,0,o.RGBA,0,0,o.drawingBufferWidth,o.drawingBufferHeight,0),c}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;const o=this.style&&this.style.fog;return!!o&&o.getOpacity(this.transform.pitch)!==0}getBackgroundTiles(){const o=this._backgroundTiles,c=this._backgroundTiles={},f=this.transform.coveringTiles({tileSize:512});for(const _ of f)c[_.key]=o[_.key]||new s.Tile(_,512,this.transform.tileZoom,this);return c}clearBackgroundTiles(){this._backgroundTiles={}}}class wc{constructor(o=0,c=0,f=0,_=0){if(isNaN(o)||o<0||isNaN(c)||c<0||isNaN(f)||f<0||isNaN(_)||_<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=o,this.bottom=c,this.left=f,this.right=_}interpolate(o,c,f){return c.top!=null&&o.top!=null&&(this.top=s.number(o.top,c.top,f)),c.bottom!=null&&o.bottom!=null&&(this.bottom=s.number(o.bottom,c.bottom,f)),c.left!=null&&o.left!=null&&(this.left=s.number(o.left,c.left,f)),c.right!=null&&o.right!=null&&(this.right=s.number(o.right,c.right,f)),this}getCenter(o,c){const f=s.clamp((this.left+o-this.right)/2,0,o),_=s.clamp((this.top+c-this.bottom)/2,0,c);return new s.Point(f,_)}equals(o){return this.top===o.top&&this.bottom===o.bottom&&this.left===o.left&&this.right===o.right}clone(){return new wc(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function bc(d,o){const c=s.getColumn(d,3);s.fromQuat(d,o),s.setColumn(d,3,c)}function Wt(d,o){const c=s.identity$1([]);return s.rotateZ$1(c,c,-o),s.rotateX$1(c,c,-d),c}function pl(d,o){const c=[d[0],d[1],0],f=[o[0],o[1],0];if(s.length(c)>=1e-15){const E=s.normalize([],c);s.scale$2(f,E,s.dot(f,E)),o[0]=f[0],o[1]=f[1]}const _=s.cross([],o,d);if(s.len(_)<1e-15)return null;const v=Math.atan2(-_[1],_[0]);return Wt(Math.atan2(Math.sqrt(d[0]*d[0]+d[1]*d[1]),-d[2]),v)}class Up{constructor(o,c){this.position=o,this.orientation=c}get position(){return this._position}set position(o){if(o){const c=o instanceof s.MercatorCoordinate?o:new s.MercatorCoordinate(o[0],o[1],o[2]);this._renderWorldCopies&&(c.x=s.wrap(c.x,0,1)),this._position=c}else this._position=null}lookAtPoint(o,c){if(this.orientation=null,!this.position)return;const f=this.position,_=this._elevation?this._elevation.getAtPointOrZero(s.MercatorCoordinate.fromLngLat(o)):0,v=s.MercatorCoordinate.fromLngLat(o,_),E=[v.x-f.x,v.y-f.y,v.z-f.z];c||(c=[0,0,1]),c[2]=Math.abs(c[2]),this.orientation=pl(E,c)}setPitchBearing(o,c){this.orientation=Wt(s.degToRad(o),s.degToRad(-c))}}class Ec{constructor(o,c){this._transform=s.identity([]),this.orientation=c,this.position=o}get mercatorPosition(){const o=this.position;return new s.MercatorCoordinate(o[0],o[1],o[2])}get position(){const o=s.getColumn(this._transform,3);return[o[0],o[1],o[2]]}set position(o){var c;o&&s.setColumn(this._transform,3,[(c=o)[0],c[1],c[2],1])}get orientation(){return this._orientation}set orientation(o){this._orientation=o||s.identity$1([]),o&&bc(this._transform,this._orientation)}getPitchBearing(){const o=this.forward(),c=this.right();return{bearing:Math.atan2(-c[1],c[0]),pitch:Math.atan2(Math.sqrt(o[0]*o[0]+o[1]*o[1]),-o[2])}}setPitchBearing(o,c){this._orientation=Wt(o,c),bc(this._transform,this._orientation)}forward(){const o=s.getColumn(this._transform,2);return[-o[0],-o[1],-o[2]]}up(){const o=s.getColumn(this._transform,1);return[-o[0],-o[1],-o[2]]}right(){const o=s.getColumn(this._transform,0);return[o[0],o[1],o[2]]}getCameraToWorld(o,c){const f=new Float64Array(16);return s.invert(f,this.getWorldToCamera(o,c)),f}getWorldToCameraPosition(o,c,f){const _=this.position;s.scale$2(_,_,-o);const v=new Float64Array(16);return s.fromScaling(v,[f,f,f]),s.translate(v,v,_),v[10]*=c,v}getWorldToCamera(o,c){const f=new Float64Array(16),_=new Float64Array(4),v=this.position;return s.conjugate(_,this._orientation),s.scale$2(v,v,-o),s.fromQuat(f,_),s.translate(f,f,v),f[1]*=-1,f[5]*=-1,f[9]*=-1,f[13]*=-1,f[8]*=c,f[9]*=c,f[10]*=c,f[11]*=c,f}getCameraToClipPerspective(o,c,f,_){const v=new Float64Array(16);return s.perspective(v,o,c,f,_),v}getDistanceToElevation(o,c=!1){const f=o===0?0:s.mercatorZfromAltitude(o,c?s.latFromMercatorY(this.position[1]):this.position[1]),_=this.forward();return(f-this.position[2])/_[2]}clone(){return new Ec([...this.position],[...this.orientation])}}function na(d,o){const c=Tc(d.projection,d.zoom,d.width,d.height),f=function(v,E,S,C,z){const P=new s.LngLat(S.lng-180*ho,S.lat),D=new s.LngLat(S.lng+180*ho,S.lat),j=v.project(P.lng,P.lat),$=v.project(D.lng,D.lat),W=-Math.atan2($.y-j.y,$.x-j.x),Z=s.MercatorCoordinate.fromLngLat(S);Z.y=s.clamp(Z.y,-1+ho,1-ho);const H=Z.toLngLat(),O=v.project(H.lng,H.lat),G=s.MercatorCoordinate.fromLngLat(H);G.x+=ho;const J=G.toLngLat(),Q=v.project(J.lng,J.lat),he=Sc(Q.x-O.x,Q.y-O.y,W),pe=s.MercatorCoordinate.fromLngLat(H);pe.y+=ho;const de=pe.toLngLat(),ye=v.project(de.lng,de.lat),_e=Sc(ye.x-O.x,ye.y-O.y,W),Te=Math.abs(he.x)/Math.abs(_e.y),Ze=s.identity([]);s.rotateZ(Ze,Ze,-W*(1-(z?0:C)));const we=s.identity([]);return s.scale(we,we,[1,1-(1-Te)*C,1]),we[4]=-_e.x/_e.y*C,s.rotateZ(we,we,W),s.multiply(we,Ze,we),we}(d.projection,0,d.center,c,o),_=jp(d);return s.scale(f,f,[_,_,1]),f}function jp(d){const o=d.projection,c=Tc(d.projection,d.zoom,d.width,d.height),f=Vp(o,d.center),_=Vp(o,s.LngLat.convert(o.center));return Math.pow(2,f*c+(1-c)*_)}function Tc(d,o,c,f,_=1/0){const v=d.range;if(!v)return 0;const E=Math.min(_,Math.max(c,f)),S=Math.log(E/1024)/Math.LN2;return s.smoothstep(v[0]+S,v[1]+S,o)}const ho=1/4e4;function Vp(d,o){const c=s.clamp(o.lat,-s.MAX_MERCATOR_LATITUDE,s.MAX_MERCATOR_LATITUDE),f=new s.LngLat(o.lng-180*ho,c),_=new s.LngLat(o.lng+180*ho,c),v=d.project(f.lng,c),E=d.project(_.lng,c),S=s.MercatorCoordinate.fromLngLat(f),C=s.MercatorCoordinate.fromLngLat(_),z=E.x-v.x,P=E.y-v.y,D=C.x-S.x,j=C.y-S.y,$=Math.sqrt((D*D+j*j)/(z*z+P*P));return Math.log($)/Math.LN2}function Sc(d,o,c){const f=Math.cos(c),_=Math.sin(c);return{x:d*f-o*_,y:d*_+o*f}}class ia{constructor(o,c,f,_,v,E,S){this.tileSize=512,this._renderWorldCopies=v===void 0||v,this._minZoom=o||0,this._maxZoom=c||22,this._minPitch=f??0,this._maxPitch=_??60,this.setProjection(E),this.setMaxBounds(S),this.width=0,this.height=0,this._center=new s.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new wc,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Ec,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1}clone(){const o=new ia(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return o._elevation=this._elevation,o._centerAltitude=this._centerAltitude,o._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,o.tileSize=this.tileSize,o.mercatorFromTransition=this.mercatorFromTransition,o.width=this.width,o.height=this.height,o.cameraElevationReference=this.cameraElevationReference,o._center=this._center,o._setZoom(this.zoom),o._seaLevelZoom=this._seaLevelZoom,o.angle=this.angle,o._fov=this._fov,o._pitch=this._pitch,o._nearZ=this._nearZ,o._farZ=this._farZ,o._averageElevation=this._averageElevation,o._unmodified=this._unmodified,o._edgeInsets=this._edgeInsets.clone(),o._camera=this._camera.clone(),o._calcMatrices(),o.freezeTileCoverage=this.freezeTileCoverage,o.frustumCorners=this.frustumCorners,o}get elevation(){return this._elevation}set elevation(o){this._elevation!==o&&(this._elevation=o,this._updateCameraOnTerrain(),this._calcMatrices())}updateElevation(o,c=!1){const f=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(this._seaLevelZoom==null||f)&&this._updateCameraOnTerrain(),(o||f)&&this._constrainCamera(c),this._calcMatrices()}getProjection(){return s.pick(this.projection,["name","center","parallels"])}setProjection(o){this.projectionOptions=o||{name:"mercator"};const c=this.projection?this.getProjection():void 0;this.projection=s.getProjection(this.projectionOptions);const f=!M(c,this.getProjection());return f&&this._calcMatrices(),this.mercatorFromTransition=!1,f}setMercatorFromTransition(){const o=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:"mercator"},this.projection=s.getProjection({name:"mercator"});const c=o!==this.projection.name;return c&&this._calcMatrices(),c}get minZoom(){return this._minZoom}set minZoom(o){this._minZoom!==o&&(this._minZoom=o,this.zoom=Math.max(this.zoom,o))}get maxZoom(){return this._maxZoom}set maxZoom(o){this._maxZoom!==o&&(this._maxZoom=o,this.zoom=Math.min(this.zoom,o))}get minPitch(){return this._minPitch}set minPitch(o){this._minPitch!==o&&(this._minPitch=o,this.pitch=Math.max(this.pitch,o))}get maxPitch(){return this._maxPitch}set maxPitch(o){this._maxPitch!==o&&(this._maxPitch=o,this.pitch=Math.min(this.pitch,o))}get renderWorldCopies(){return this._renderWorldCopies&&this.projection.supportsWorldCopies===!0}set renderWorldCopies(o){o===void 0?o=!0:o===null&&(o=!1),this._renderWorldCopies=o}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){const o=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(o))}get cameraWorldSize(){const o=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(o))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return s.mercatorZfromAltitude(this.center.lat,this.cameraWorldSizeForFog)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.Point(this.width,this.height)}get bearing(){return s.wrap(this.rotation,-180,180)}set bearing(o){this.rotation=o}get rotation(){return-this.angle/Math.PI*180}set rotation(o){const c=-o*Math.PI/180;var f;this.angle!==c&&(this._unmodified=!1,this.angle=c,this._calcMatrices(),this.rotationMatrix=(f=new s.ARRAY_TYPE(4),s.ARRAY_TYPE!=Float32Array&&(f[1]=0,f[2]=0),f[0]=1,f[3]=1,f),function(_,v,E){var S=v[0],C=v[1],z=v[2],P=v[3],D=Math.sin(E),j=Math.cos(E);_[0]=S*j+z*D,_[1]=C*j+P*D,_[2]=S*-D+z*j,_[3]=C*-D+P*j}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(o){const c=s.clamp(o,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==c&&(this._unmodified=!1,this._pitch=c,this._calcMatrices())}get aspect(){return this.width/this.height}get fov(){return this._fov/Math.PI*180}get fovX(){return this._fov}get fovY(){const o=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/o)}set fov(o){o=Math.max(.01,Math.min(60,o)),this._fov!==o&&(this._unmodified=!1,this._fov=s.degToRad(o),this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(o){this._averageElevation=o,this._calcFogMatrices(),this._distanceTileDataCache={}}get zoom(){return this._zoom}set zoom(o){const c=Math.min(Math.max(o,this.minZoom),this.maxZoom);this._zoom!==c&&(this._unmodified=!1,this._setZoom(c),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices())}_setZoom(o){this._zoom=o,this.scale=this.zoomScale(o),this.tileZoom=Math.floor(o),this.zoomFraction=o-this.tileZoom}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const o=this._elevation;this._centerAltitude=o.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=o.exaggeration(),this._updateSeaLevelZoom()}_updateSeaLevelZoom(){this._centerAltitudeValidForExaggeration!==void 0&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize))}sampleAverageElevation(){if(!this._elevation)return 0;const o=this._elevation,c=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],f=this.horizonLineFromTop();let _=0,v=0;for(let E=0;Eo.maxzoom&&(c=o.maxzoom);const E=this.locationCoordinate(this.center),S=this.center.lat,C=1<{const He=new s.MercatorCoordinate(Ee.x+25e-6,Ee.y,Ee.z),Ge=new s.MercatorCoordinate(Ee.x,Ee.y+25e-6,Ee.z),Xe=Ee.toLngLat(),gt=He.toLngLat(),Et=Ge.toLngLat(),dt=this.locationCoordinate(Xe),wt=this.locationCoordinate(gt),Ut=this.locationCoordinate(Et),Ot=Math.hypot(wt.x-dt.x,wt.y-dt.y),mt=Math.hypot(Ut.x-dt.x,Ut.y-dt.y);return Math.sqrt(Ot*mt)*he/25e-6},de=Ee=>{const Oe=J,He=Q;return{aabb:s.tileAABB(this,C,0,0,0,Ee,He,Oe,this.projection),zoom:0,x:0,y:0,minZ:He,maxZ:Oe,wrap:Ee,fullyVisible:!1}},ye=[];let _e=[];const Te=c,Ze=o.reparseOverscaled?f:c,we=Ee=>Ee*Ee,Be=we((Z-this._centerAltitude)*W),Ce=Ee=>{if(!this._elevation||!Ee.tileID||!v)return;const Oe=this._elevation.getMinMaxForTile(Ee.tileID),He=Ee.aabb;Oe?(He.min[2]=Oe.min,He.max[2]=Oe.max,He.center[2]=(He.min[2]+He.max[2])/2):(Ee.shouldSplit=qe(Ee),Ee.shouldSplit||(He.min[2]=He.max[2]=He.center[2]=this._centerAltitude))},qe=Ee=>{if(Ee.zoom=.9)return!0}else if(_&&(Ge=we(Ee.aabb.distanceZ(H)*W)),this.projection.isReprojectedInTileSpace&&f<=5){const dt=Math.pow(2,Ee.zoom),wt=pe(new s.MercatorCoordinate((Ee.x+.5)/dt,(Ee.y+.5)/dt));Xe=wt>.85?1:wt}const gt=Oe*Oe+He*He+Ge,Et=we((1<{if(wt*we(.707)0;){const Ee=ye.pop(),Oe=Ee.x,He=Ee.y;let Ge=Ee.fullyVisible;if(!Ge){const Xe=Ee.aabb.intersects(j);if(Xe===0)continue;Ge=Xe===2}if(Ee.zoom!==Te&&qe(Ee))for(let Xe=0;Xe<4;Xe++){const gt=(Oe<<1)+Xe%2,Et=(He<<1)+(Xe>>1),dt={aabb:v?Ee.aabb.quadrant(Xe):s.tileAABB(this,C,Ee.zoom+1,gt,Et,Ee.wrap,Ee.minZ,Ee.maxZ,this.projection),zoom:Ee.zoom+1,x:gt,y:Et,wrap:Ee.wrap,fullyVisible:Ge,tileID:void 0,shouldSplit:void 0,minZ:Ee.minZ,maxZ:Ee.maxZ};_&&!P&&(dt.tileID=new s.OverscaledTileID(Ee.zoom+1===Te?Ze:Ee.zoom+1,Ee.wrap,Ee.zoom+1,gt,Et),Ce(dt)),ye.push(dt)}else{const Xe=Ee.zoom===Te?Ze:Ee.zoom;if(o.minzoom&&o.minzoom>Xe)continue;const gt=z[0]-(.5+Oe+(Ee.wrap<{const Ge=[0,0,0,1],Xe=[s.EXTENT,s.EXTENT,0,1],gt=this.calculateFogTileMatrix(He.tileID.toUnwrapped());s.transformMat4$1(Ge,Ge,gt),s.transformMat4$1(Xe,Xe,gt);const Et=s.getAABBPointSquareDist(Ge,Xe);if(Et===0)return!0;let dt=!1;const wt=this._elevation;if(wt&&Et>Ee&&Oe!==0){const Ut=this.calculateProjMatrix(He.tileID.toUnwrapped());let Ot;o.isTerrainDEM||(Ot=wt.getMinMaxForTile(He.tileID)),Ot||(Ot={min:Q,max:J});const mt=s.furthestTileCorner(this.rotation),en=[mt[0]*s.EXTENT,mt[1]*s.EXTENT,Ot.max];s.transformMat4(en,en,Ut),dt=(1-en[1])*this.height*.5Ee.distanceSq-Oe.distanceSq).map(Ee=>Ee.tileID)}resize(o,c){this.width=o,this.height=c,this.pixelsToGLUnits=[2/o,-2/c],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(o){return Math.pow(2,o)}scaleZoom(o){return Math.log(o)/Math.LN2}project(o){const c=s.clamp(o.lat,-s.MAX_MERCATOR_LATITUDE,s.MAX_MERCATOR_LATITUDE),f=this.projection.project(o.lng,c);return new s.Point(f.x*this.worldSize,f.y*this.worldSize)}unproject(o){return this.projection.unproject(o.x/this.worldSize,o.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/s.mercatorZfromAltitude(1,this.center.lat)/this.worldSize}setLocationAtPoint(o,c){let f,_;const v=this.centerPoint;if(this.projection.name==="globe"){const S=this.worldSize;f=(c.x-v.x)/S,_=(c.y-v.y)/S}else{const S=this.pointCoordinate(c),C=this.pointCoordinate(v);f=S.x-C.x,_=S.y-C.y}const E=this.locationCoordinate(o);this.setLocation(new s.MercatorCoordinate(E.x-f,E.y-_))}setLocation(o){this.center=this.coordinateLocation(o),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(o){return this.projection.locationPoint(this,o)}locationPoint3D(o){return this.projection.locationPoint(this,o,!0)}pointLocation(o){return this.coordinateLocation(this.pointCoordinate(o))}pointLocation3D(o){return this.coordinateLocation(this.pointCoordinate3D(o))}locationCoordinate(o,c){const f=c?s.mercatorZfromAltitude(c,o.lat):void 0,_=this.projection.project(o.lng,o.lat);return new s.MercatorCoordinate(_.x,_.y,f)}coordinateLocation(o){return this.projection.unproject(o.x,o.y)}pointRayIntersection(o,c){const f=c??this._centerAltitude,_=[o.x,o.y,0,1],v=[o.x,o.y,1,1];s.transformMat4$1(_,_,this.pixelMatrixInverse),s.transformMat4$1(v,v,this.pixelMatrixInverse);const E=v[3];s.scale$1(_,_,1/_[3]),s.scale$1(v,v,1/E);const S=_[2],C=v[2];return{p0:_,p1:v,t:S===C?0:(f-S)/(C-S)}}screenPointToMercatorRay(o){const c=[o.x,o.y,0,1],f=[o.x,o.y,1,1];return s.transformMat4$1(c,c,this.pixelMatrixInverse),s.transformMat4$1(f,f,this.pixelMatrixInverse),s.scale$1(c,c,1/c[3]),s.scale$1(f,f,1/f[3]),c[2]=s.mercatorZfromAltitude(c[2],this._center.lat)*this.worldSize,f[2]=s.mercatorZfromAltitude(f[2],this._center.lat)*this.worldSize,s.scale$1(c,c,1/this.worldSize),s.scale$1(f,f,1/this.worldSize),new s.Ray([c[0],c[1],c[2]],s.normalize([],s.sub([],f,c)))}rayIntersectionCoordinate(o){const{p0:c,p1:f,t:_}=o,v=s.mercatorZfromAltitude(c[2],this._center.lat),E=s.mercatorZfromAltitude(f[2],this._center.lat);return new s.MercatorCoordinate(s.number(c[0],f[0],_)/this.worldSize,s.number(c[1],f[1],_)/this.worldSize,s.number(v,E,_))}pointCoordinate(o,c=this._centerAltitude){return this.projection.pointCoordinate(this,o.x,o.y,c)}pointCoordinate3D(o){if(!this.elevation)return this.pointCoordinate(o);let c=this.projection.pointCoordinate3D(this,o.x,o.y);if(c)return new s.MercatorCoordinate(c[0],c[1],c[2]);let f=0,_=this.horizonLineFromTop();if(o.y>_)return this.pointCoordinate(o);const v=.02*_,E=o.clone();for(let S=0;S<10&&_-f>v;S++){E.y=s.number(f,_,.66);const C=this.projection.pointCoordinate3D(this,E.x,E.y);C?(_=E.y,c=C):f=E.y}return c?new s.MercatorCoordinate(c[0],c[1],c[2]):this.pointCoordinate(o)}isPointAboveHorizon(o){return this.projection.isPointAboveHorizon(this,o)}isPointOnSurface(o){if(o.y<0||o.y>this.height||o.x<0||o.x>this.width)return!1;if(this.elevation||this.zoom>=s.GLOBE_ZOOM_THRESHOLD_MAX)return!this.isPointAboveHorizon(o);const c=this.pointCoordinate(o);return c.y>=0&&c.y<=1}_coordinatePoint(o,c){const f=c&&this.elevation?this.elevation.getAtPointOrZero(o,this._centerAltitude):this._centerAltitude,_=[o.x*this.worldSize,o.y*this.worldSize,f+o.toAltitude(),1];return s.transformMat4$1(_,_,this.pixelMatrix),_[3]>0?new s.Point(_[0]/_[3],_[1]/_[3]):new s.Point(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){const{top:o,left:c}=this._edgeInsets,f=this.height-this._edgeInsets.bottom,_=this.width-this._edgeInsets.right,v=this.pointLocation3D(new s.Point(c,o)),E=this.pointLocation3D(new s.Point(_,o)),S=this.pointLocation3D(new s.Point(_,f)),C=this.pointLocation3D(new s.Point(c,f));let z=Math.min(v.lng,E.lng,S.lng,C.lng),P=Math.max(v.lng,E.lng,S.lng,C.lng),D=Math.min(v.lat,E.lat,S.lat,C.lat),j=Math.max(v.lat,E.lat,S.lat,C.lat);const $=Math.pow(2,-this.zoom)/16*270,W=this.projection.name==="globe"?1:4,Z=(H,O,G,J,Q)=>{const he=(H+G)/2,pe=(O+J)/2,de=new s.Point(he,pe),{lng:ye,lat:_e}=this.pointLocation3D(de),Te=Math.max(0,z-ye,D-_e,ye-P,_e-j);z=Math.min(z,ye),P=Math.max(P,ye),D=Math.min(D,_e),j=Math.max(j,_e),(Q$)&&(Z(H,O,he,pe,Q+1),Z(he,pe,G,J,Q+1))};if(Z(c,o,_,o,1),Z(_,o,_,f,1),Z(_,f,c,f,1),Z(c,f,c,o,1),this.projection.name==="globe"){const[H,O]=s.polesInViewport(this);H?(j=90,P=180,z=-180):O&&(D=-90,P=180,z=-180)}return new s.LngLatBounds(new s.LngLat(z,D),new s.LngLat(P,j))}_getBoundsRectangular(o,c){const{top:f,left:_}=this._edgeInsets,v=this.height-this._edgeInsets.bottom,E=this.width-this._edgeInsets.right,S=new s.Point(_,f),C=new s.Point(E,f),z=new s.Point(E,v),P=new s.Point(_,v);let D=this.pointCoordinate(S,o),j=this.pointCoordinate(C,o);const $=this.pointCoordinate(z,c),W=this.pointCoordinate(P,c),Z=(H,O)=>(O.y-H.y)/(O.x-H.x);return D.y>1&&j.y>=0?D=new s.MercatorCoordinate((1-W.y)/Z(W,D)+W.x,1):D.y<0&&j.y<=1&&(D=new s.MercatorCoordinate(-W.y/Z(W,D)+W.x,0)),j.y>1&&D.y>=0?j=new s.MercatorCoordinate((1-$.y)/Z($,j)+$.x,1):j.y<0&&D.y<=1&&(j=new s.MercatorCoordinate(-$.y/Z($,j)+$.x,0)),new s.LngLatBounds().extend(this.coordinateLocation(D)).extend(this.coordinateLocation(j)).extend(this.coordinateLocation(W)).extend(this.coordinateLocation($))}_getBoundsRectangularTerrain(){const o=this.elevation;if(!o.visibleDemTiles.length||o.isUsingMockSource())return this._getBoundsRectangular(0,0);const c=o.visibleDemTiles.reduce((f,_)=>{if(_.dem){const v=_.dem.tree;f.min=Math.min(f.min,v.minimums[0]),f.max=Math.max(f.max,v.maximums[0])}return f},{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(c.min*o.exaggeration(),c.max*o.exaggeration())}getBounds(){return this.projection.name==="mercator"||this.projection.name==="equirectangular"?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(o=!0){const c=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,f=this.height/2-c*(1-this._horizonShift);return o?Math.max(0,f):f}getMaxBounds(){return this.maxBounds}setMaxBounds(o){this.maxBounds=o,this.minLat=-s.MAX_MERCATOR_LATITUDE,this.maxLat=s.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,o&&(this.minLat=o.getSouth(),this.maxLat=o.getNorth(),this.minLng=o.getWest(),this.maxLng=o.getEast(),this.maxLngD&&(S=D-z),D-P$&&(E=$-C),$-j.5?J-1:J,Q>.5?Q-1:Q,0]),this.alignedProjMatrix=he,S=s.create(),s.scale(S,S,[this.width/2,-this.height/2,1]),s.translate(S,S,[1,-1,0]),this.labelPlaneMatrix=S,S=s.create(),s.scale(S,S,[1,-1,1]),s.translate(S,S,[-1,-1,0]),s.scale(S,S,[2/this.width,2/this.height,1]),this.glCoordMatrix=S,this.pixelMatrix=s.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},S=s.invert(new Float64Array(16),this.pixelMatrix),!S)throw new Error("failed to invert matrix");if(this.pixelMatrixInverse=S,this.projection.name==="globe"||this.mercatorFromTransition){this.globeMatrix=s.calculateGlobeMatrix(this);const pe=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=s.transformMat4(pe,pe,v),this.globeRadius=this.worldSize/2/Math.PI-1}else this.globeMatrix=S;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};const o=this.cameraWorldSizeForFog,c=this.cameraPixelsPerMeter,f=this._camera.position,_=1/this.height/this._pixelsPerMercatorPixel,v=[o,o,c];s.scale$2(v,v,_),s.scale$2(f,f,-1),s.multiply$2(f,f,v);const E=s.create();s.translate(E,E,f),s.scale(E,E,v),this.mercatorFogMatrix=E,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(o,c,_)}_computeCameraPosition(o){const c=(o=o||this.pixelsPerMeter)/this.pixelsPerMeter,f=this._camera.forward(),_=this.point,v=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*c-o/this.worldSize*this._centerAltitude;return[_.x/this.worldSize-f[0]*v,_.y/this.worldSize-f[1]*v,o/this.worldSize*this._centerAltitude-f[2]*v]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(o){const c=this._maxCameraBoundsDistance()*Math.cos(this._pitch),f=this._camera.position[2],_=o[2];let v=1;this.projection.wrap&&(this.center=this.center.wrap()),_>0&&(v=Math.min((c-f)/_,1)),this._camera.position=s.scaleAndAdd([],this._camera.position,o,v),this._updateStateFromCamera()}_updateStateFromCamera(){const o=this._camera.position,c=this._camera.forward(),{pitch:f,bearing:_}=this._camera.getPitchBearing(),v=s.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,E=this._mercatorZfromZoom(this._maxZoom)*Math.cos(s.degToRad(this._maxPitch)),S=Math.max((o[2]-v)/Math.cos(f),E),C=this._zoomFromMercatorZ(S);s.scaleAndAdd(o,o,c,S),this._pitch=s.clamp(f,s.degToRad(this.minPitch),s.degToRad(this.maxPitch)),this.angle=s.wrap(_,-Math.PI,Math.PI),this._setZoom(s.clamp(C,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new s.MercatorCoordinate(o[0],o[1],o[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(o){return Math.pow(2,o)*this.tileSize}_mercatorZfromZoom(o){return this.cameraToCenterDistance/this._worldSizeFromZoom(o)}_minimumHeightOverTerrain(){const o=Math.min((this._seaLevelZoom!=null?this._seaLevelZoom:this._zoom)+4,this._maxZoom);return this._mercatorZfromZoom(o)}_zoomFromMercatorZ(o){return this.scaleZoom(this.cameraToCenterDistance/(o*this.tileSize))}zoomFromMercatorZAdjusted(o){let c=0,f=s.GLOBE_ZOOM_THRESHOLD_MAX,_=0,v=1/0;for(;f-c>1e-6&&f>c;){const E=c+.5*(f-c),S=this.tileSize*Math.pow(2,E),C=this.getCameraToCenterDistance(this.projection,E,S),z=this.scaleZoom(C/(o*this.tileSize)),P=Math.abs(E-z);Pz||j.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+s.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new s.Point(0,0),new s.Point(this.width,this.height))}zoomDeltaToMovement(o,c){const f=s.length(s.sub([],this._camera.position,o)),_=this._zoomFromMercatorZ(f)+c;return f-this._mercatorZfromZoom(_)}getCameraPoint(){if(this.projection.name==="globe"){const o=function([c,f,_],v){const E=[c,f,_,1];s.transformMat4$1(E,E,v);const S=E[3]=Math.max(E[3],1e-6);return E[0]/=S,E[1]/=S,E[2]/=S,E}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new s.Point(o[0],o[1])}{const o=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.Point(0,o))}}getCameraToCenterDistance(o,c=this.zoom,f=this.worldSize){const _=Tc(o,c,this.width,this.height,1024),v=o.pixelSpaceConversion(this.center.lat,f,_);return .5/Math.tan(.5*this._fov)*this.height*v}getWorldToCameraMatrix(){const o=this._camera.getWorldToCamera(this.worldSize,this.projection.zAxisUnit==="meters"?this.pixelsPerMeter:1);return this.projection.name==="globe"&&s.multiply(o,o,this.globeMatrix),o}}function ra(d,o){let c=!1,f=null;const _=()=>{f=null,c&&(d(),f=setTimeout(_,o),c=!1)};return()=>(c=!0,f||_(),f)}class xh{constructor(o){this._hashName=o&&encodeURIComponent(o),s.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=ra(this._updateHashUnthrottled.bind(this),300)}addTo(o){return this._map=o,s.window.addEventListener("hashchange",this._onHashChange,!1),o.on("moveend",this._updateHash),this}remove(){return this._map?(this._map.off("moveend",this._updateHash),s.window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const o=this._map;if(!o)return"";const c=fl(o);if(this._hashName){const f=this._hashName;let _=!1;const v=s.window.location.hash.slice(1).split("&").map(E=>{const S=E.split("=")[0];return S===f?(_=!0,`${S}=${c}`):E}).filter(E=>E);return _||v.push(`${f}=${c}`),`#${v.join("&")}`}return`#${c}`}_getCurrentHash(){const o=s.window.location.hash.replace("#","");if(this._hashName){let c;return o.split("&").map(f=>f.split("=")).forEach(f=>{f[0]===this._hashName&&(c=f)}),(c&&c[1]||"").split("/")}return o.split("/")}_onHashChange(){const o=this._map;if(!o)return!1;const c=this._getCurrentHash();if(c.length>=3&&!c.some(f=>isNaN(f))){const f=o.dragRotate.isEnabled()&&o.touchZoomRotate.isEnabled()?+(c[3]||0):o.getBearing();return o.jumpTo({center:[+c[2],+c[1]],zoom:+c[0],bearing:f,pitch:+(c[4]||0)}),!0}return!1}_updateHashUnthrottled(){const o=s.window.location.href.replace(/(#.+)?$/,this.getHashString());s.window.history.replaceState(s.window.history.state,null,o)}}function fl(d,o){const c=d.getCenter(),f=Math.round(100*d.getZoom())/100,_=Math.ceil((f*Math.LN2+Math.log(512/360/.5))/Math.LN10),v=Math.pow(10,_),E=Math.round(c.lng*v)/v,S=Math.round(c.lat*v)/v,C=d.getBearing(),z=d.getPitch();let P=o?`/${E}/${S}/${f}`:`${f}/${S}/${E}`;return(C||z)&&(P+="/"+Math.round(10*C)/10),z&&(P+=`/${Math.round(z)}`),P}const ml={linearity:.3,easing:s.bezier(0,0,.3,1)},Ac=s.extend({deceleration:2500,maxSpeed:1400},ml),Cc=s.extend({deceleration:20,maxSpeed:1400},ml),ct=s.extend({deceleration:1e3,maxSpeed:360},ml),Er=s.extend({deceleration:1e3,maxSpeed:90},ml);class Gp{constructor(o){this._map=o,this.clear()}clear(){this._inertiaBuffer=[]}record(o){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:s.exported.now(),settings:o})}_drainInertiaBuffer(){const o=this._inertiaBuffer,c=s.exported.now();for(;o.length>0&&c-o[0].time>160;)o.shift()}_onMoveEnd(o){if(this._map._prefersReducedMotion()||(this._drainInertiaBuffer(),this._inertiaBuffer.length<2))return;const c={zoom:0,bearing:0,pitch:0,pan:new s.Point(0,0),pinchAround:void 0,around:void 0};for(const{settings:v}of this._inertiaBuffer)c.zoom+=v.zoomDelta||0,c.bearing+=v.bearingDelta||0,c.pitch+=v.pitchDelta||0,v.panDelta&&c.pan._add(v.panDelta),v.around&&(c.around=v.around),v.pinchAround&&(c.pinchAround=v.pinchAround);const f=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,_={};if(c.pan.mag()){const v=_l(c.pan.mag(),f,s.extend({},Ac,o||{}));_.offset=c.pan.mult(v.amount/c.pan.mag()),_.center=this._map.transform.center,gl(_,v)}if(c.zoom){const v=_l(c.zoom,f,Cc);_.zoom=this._map.transform.zoom+v.amount,gl(_,v)}if(c.bearing){const v=_l(c.bearing,f,ct);_.bearing=this._map.transform.bearing+s.clamp(v.amount,-179,179),gl(_,v)}if(c.pitch){const v=_l(c.pitch,f,Er);_.pitch=this._map.transform.pitch+v.amount,gl(_,v)}if(_.zoom||_.bearing){const v=c.pinchAround===void 0?c.around:c.pinchAround;_.around=v?this._map.unproject(v):this._map.getCenter()}return this.clear(),_.noMoveStart=!0,_}}function gl(d,o){(!d.duration||d.durationc.unproject(C)),S=v.reduce((C,z,P,D)=>C.add(z.div(D.length)),new s.Point(0,0));super(o,{points:v,point:S,lngLats:E,lngLat:c.unproject(S),originalEvent:f}),this._defaultPrevented=!1}}class Ic extends s.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(o,c,f){super(o,{originalEvent:f}),this._defaultPrevented=!1}}class wh{constructor(o,c){this._map=o,this._clickTolerance=c.clickTolerance}reset(){this._mousedownPos=void 0}wheel(o){return this._firePreventable(new Ic(o.type,this._map,o))}mousedown(o,c){return this._mousedownPos=c,this._firePreventable(new oi(o.type,this._map,o))}mouseup(o){this._map.fire(new oi(o.type,this._map,o))}preclick(o){const c=s.extend({},o);c.type="preclick",this._map.fire(new oi(c.type,this._map,c))}click(o,c){this._mousedownPos&&this._mousedownPos.dist(c)>=this._clickTolerance||(this.preclick(o),this._map.fire(new oi(o.type,this._map,o)))}dblclick(o){return this._firePreventable(new oi(o.type,this._map,o))}mouseover(o){this._map.fire(new oi(o.type,this._map,o))}mouseout(o){this._map.fire(new oi(o.type,this._map,o))}touchstart(o){return this._firePreventable(new yl(o.type,this._map,o))}touchmove(o){this._map.fire(new yl(o.type,this._map,o))}touchend(o){this._map.fire(new yl(o.type,this._map,o))}touchcancel(o){this._map.fire(new yl(o.type,this._map,o))}_firePreventable(o){if(this._map.fire(o),o.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Mc{constructor(o){this._map=o}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0}mousemove(o){this._map.fire(new oi(o.type,this._map,o))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new oi("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(o){this._delayContextMenu?this._contextMenuEvent=o:this._map.fire(new oi(o.type,this._map,o)),this._map.listens("contextmenu")&&o.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class $p{constructor(o,c){this._map=o,this._el=o.getCanvasContainer(),this._container=o.getContainer(),this._clickTolerance=c.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(o,c){this.isEnabled()&&o.shiftKey&&o.button===0&&(ue(),this._startPos=this._lastPos=c,this._active=!0)}mousemoveWindow(o,c){if(!this._active)return;const f=c,_=this._startPos,v=this._lastPos;if(!_||!v||v.equals(f)||!this._box&&f.dist(_){this._box&&(this._box.style.transform=`translate(${E}px,${C}px)`,this._box.style.width=S-E+"px",this._box.style.height=z-C+"px")})}mouseupWindow(o,c){if(!this._active)return;const f=this._startPos,_=c;if(f&&o.button===0){if(this.reset(),De(),f.x!==_.x||f.y!==_.y)return this._map.fire(new s.Event("boxzoomend",{originalEvent:o})),{cameraAnimation:v=>v.fitScreenCoordinates(f,_,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",o)}}keydown(o){this._active&&o.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",o))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),re(),delete this._startPos,delete this._lastPos}_fireEvent(o,c){return this._map.fire(new s.Event(o,{originalEvent:c}))}}function kc(d,o){const c={};for(let f=0;fthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===0&&(this.startTime=o.timeStamp),f.length===this.numTouches&&(this.centroid=function(_){const v=new s.Point(0,0);for(const E of _)v._add(E);return v.div(_.length)}(c),this.touches=kc(f,c)))}touchmove(o,c,f){if(this.aborted||!this.centroid)return;const _=kc(f,c);for(const v in this.touches){const E=_[v];(!E||E.dist(this.touches[v])>30)&&(this.aborted=!0)}}touchend(o,c,f){if((!this.centroid||o.timeStamp-this.startTime>500)&&(this.aborted=!0),f.length===0){const _=!this.aborted&&this.centroid;if(this.reset(),_)return _}}}class bh{constructor(o){this.singleTap=new oa(o),this.numTaps=o.numTaps,this.reset()}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset()}touchstart(o,c,f){this.singleTap.touchstart(o,c,f)}touchmove(o,c,f){this.singleTap.touchmove(o,c,f)}touchend(o,c,f){const _=this.singleTap.touchend(o,c,f);if(_){const v=o.timeStamp-this.lastTime<500,E=!this.lastTap||this.lastTap.dist(_)<30;if(v&&E||this.reset(),this.count++,this.lastTime=o.timeStamp,this.lastTap=_,this.count===this.numTaps)return this.reset(),_}}}class Yg{constructor(){this._zoomIn=new bh({numTouches:1,numTaps:2}),this._zoomOut=new bh({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(o,c,f){this._zoomIn.touchstart(o,c,f),this._zoomOut.touchstart(o,c,f)}touchmove(o,c,f){this._zoomIn.touchmove(o,c,f),this._zoomOut.touchmove(o,c,f)}touchend(o,c,f){const _=this._zoomIn.touchend(o,c,f),v=this._zoomOut.touchend(o,c,f);return _?(this._active=!0,o.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:E=>E.easeTo({duration:300,zoom:E.getZoom()+1,around:E.unproject(_)},{originalEvent:o})}):v?(this._active=!0,o.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:E=>E.easeTo({duration:300,zoom:E.getZoom()-1,around:E.unproject(v)},{originalEvent:o})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}const qp={0:1,2:2};class sa{constructor(o){this.reset(),this._clickTolerance=o.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0}_correctButton(o,c){return!1}_move(o,c){return{}}mousedown(o,c){if(this._lastPoint)return;const f=lt(o);this._correctButton(o,f)&&(this._lastPoint=c,this._eventButton=f)}mousemoveWindow(o,c){const f=this._lastPoint;if(f){if(o.preventDefault(),this._eventButton!=null&&function(_,v){const E=qp[v];return _.buttons===void 0||(_.buttons&E)!==E}(o,this._eventButton))this.reset();else if(this._moved||!(c.dist(f)0&&(this._active=!0);const _=kc(f,c),v=new s.Point(0,0),E=new s.Point(0,0);let S=0;for(const z in _){const P=_[z],D=this._touches[z];D&&(v._add(P),E._add(P.sub(D)),S++,_[z]=P)}if(this._touches=_,S{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","null")},500)}}class vl{constructor(){this.reset()}reset(){this._active=!1,this._firstTwoTouches=void 0}_start(o){}_move(o,c,f){return{}}touchstart(o,c,f){this._firstTwoTouches||f.length<2||(this._firstTwoTouches=[f[0].identifier,f[1].identifier],this._start([c[0],c[1]]))}touchmove(o,c,f){const _=this._firstTwoTouches;if(!_)return;o.preventDefault();const[v,E]=_,S=xl(f,c,v),C=xl(f,c,E);if(!S||!C)return;const z=this._aroundCenter?null:S.add(C).div(2);return this._move([S,C],z,o)}touchend(o,c,f){if(!this._firstTwoTouches)return;const[_,v]=this._firstTwoTouches,E=xl(f,c,_),S=xl(f,c,v);E&&S||(this._active&&De(),this.reset())}touchcancel(){this.reset()}enable(o){this._enabled=!0,this._aroundCenter=!!o&&o.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}function xl(d,o,c){for(let f=0;fMath.abs(d.x)}class Hp extends vl{constructor(o){super(),this._map=o}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0}_start(o){this._lastPoints=o,Uo(o[0].sub(o[1]))&&(this._valid=!1)}_move(o,c,f){const _=this._lastPoints;if(!_)return;const v=o[0].sub(_[0]),E=o[1].sub(_[1]);return this._map._cooperativeGestures&&!s.isFullscreen()&&f.touches.length<3||(this._valid=this.gestureBeginsVertically(v,E,f.timeStamp),!this._valid)?void 0:(this._lastPoints=o,this._active=!0,{pitchDelta:(v.y+E.y)/2*-.5})}gestureBeginsVertically(o,c,f){if(this._valid!==void 0)return this._valid;const _=o.mag()>=2,v=c.mag()>=2;if(!_&&!v)return;if(!_||!v)return this._firstMove==null&&(this._firstMove=f),f-this._firstMove<100&&void 0;const E=o.y>0==c.y>0;return Uo(o)&&Uo(c)&&E}}const Xp={panStep:100,bearingStep:15,pitchStep:10};class Jg{constructor(){const o=Xp;this._panStep=o.panStep,this._bearingStep=o.bearingStep,this._pitchStep=o.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(o){if(o.altKey||o.ctrlKey||o.metaKey)return;let c=0,f=0,_=0,v=0,E=0;switch(o.keyCode){case 61:case 107:case 171:case 187:c=1;break;case 189:case 109:case 173:c=-1;break;case 37:o.shiftKey?f=-1:(o.preventDefault(),v=-1);break;case 39:o.shiftKey?f=1:(o.preventDefault(),v=1);break;case 38:o.shiftKey?_=1:(o.preventDefault(),E=-1);break;case 40:o.shiftKey?_=-1:(o.preventDefault(),E=1);break;default:return}return this._rotationDisabled&&(f=0,_=0),{cameraAnimation:S=>{const C=S.getZoom();S.easeTo({duration:300,easeId:"keyboardHandler",easing:Kp,zoom:c?Math.round(C)+c*(o.shiftKey?2:1):C,bearing:S.getBearing()+f*this._bearingStep,pitch:S.getPitch()+_*this._pitchStep,offset:[-v*this._panStep,-E*this._panStep],center:S.getCenter()},{originalEvent:o})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function Kp(d){return d*(2-d)}const Ih=4.000244140625;class Yp{constructor(o,c){this._map=o,this._el=o.getCanvasContainer(),this._handler=c,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,s.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this)}setZoomRate(o){this._defaultZoomRate=o}setWheelZoomRate(o){this._wheelZoomRate=o}isEnabled(){return!!this._enabled}isActive(){return this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(o){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!o&&o.around==="center",this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(o){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(o.ctrlKey||o.metaKey||this.isZooming()||s.isFullscreen()))return void this._showBlockerAlert();this._alertContainer.style.visibility!=="hidden"&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let c=o.deltaMode===s.window.WheelEvent.DOM_DELTA_LINE?40*o.deltaY:o.deltaY;const f=s.exported.now(),_=f-(this._lastWheelEventTime||0);this._lastWheelEventTime=f,c!==0&&c%Ih==0?this._type="wheel":c!==0&&Math.abs(c)<4?this._type="trackpad":_>400?(this._type=null,this._lastValue=c,this._timeout=setTimeout(this._onTimeout,40,o)):this._type||(this._type=Math.abs(_*c)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,c+=this._lastValue)),o.shiftKey&&c&&(c/=4),this._type&&(this._lastWheelEvent=o,this._delta-=c,this._active||this._start(o)),o.preventDefault()}_onTimeout(o){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(o)}_start(o){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const c=je(this._el,o);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:c,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const o=this._map.transform;this._type==="wheel"&&o.projection.wrap&&(o._center.lng>=180||o._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);const c=()=>o._terrainEnabled()&&this._aroundCoord?o.computeZoomRelativeTo(this._aroundCoord):o.zoom;if(this._delta!==0){const C=this._type==="wheel"&&Math.abs(this._delta)>Ih?this._wheelZoomRate:this._defaultZoomRate;let z=2/(1+Math.exp(-Math.abs(this._delta*C)));this._delta<0&&z!==0&&(z=1/z);const P=c(),D=Math.pow(2,P),j=typeof this._targetZoom=="number"?o.zoomScale(this._targetZoom):D;this._targetZoom=Math.min(o.maxZoom,Math.max(o.minZoom,o.scaleZoom(j*z))),this._type==="wheel"&&(this._startZoom=P,this._easing=this._smoothOutEasing(200)),this._delta=0}const f=typeof this._targetZoom=="number"?this._targetZoom:c(),_=this._startZoom,v=this._easing;let E,S=!1;if(this._type==="wheel"&&_&&v){const C=Math.min((s.exported.now()-this._lastWheelEventTime)/200,1),z=v(C);E=s.number(_,f,z),C<1?this._frameId||(this._frameId=!0):S=!0}else E=f,S=!0;return this._active=!0,S&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!S,zoomDelta:E-c(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(o){let c=s.ease;if(this._prevEase){const f=this._prevEase,_=(s.exported.now()-f.start)/f.duration,v=f.easing(_+.01)-f.easing(_),E=.27/Math.sqrt(v*v+1e-4)*.01,S=Math.sqrt(.0729-E*E);c=s.bezier(E,S,.25,1)}return this._prevEase={start:s.exported.now(),duration:o,easing:c},c}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=oe("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(s.window.navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","null")},200)}}class Jp{constructor(o,c){this._clickZoom=o,this._tapZoom=c}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()}}class xi{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(o,c){return o.preventDefault(),{cameraAnimation:f=>{f.easeTo({duration:300,zoom:f.getZoom()+(o.shiftKey?-1:1),around:f.unproject(c)},{originalEvent:o})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Qg{constructor(){this._tap=new bh({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset()}touchstart(o,c,f){this._swipePoint||(this._tapTime&&o.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?f.length>0&&(this._swipePoint=c[0],this._swipeTouch=f[0].identifier):this._tap.touchstart(o,c,f))}touchmove(o,c,f){if(this._tapTime){if(this._swipePoint){if(f[0].identifier!==this._swipeTouch)return;const _=c[0],v=_.y-this._swipePoint.y;return this._swipePoint=_,o.preventDefault(),this._active=!0,{zoomDelta:v/128}}}else this._tap.touchmove(o,c,f)}touchend(o,c,f){this._tapTime?this._swipePoint&&f.length===0&&this.reset():this._tap.touchend(o,c,f)&&(this._tapTime=o.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Qp{constructor(o,c,f){this._el=o,this._mousePan=c,this._touchPan=f}enable(o){this._inertiaOptions=o||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class e_{constructor(o,c,f){this._pitchWithRotate=o.pitchWithRotate,this._mouseRotate=c,this._mousePitch=f}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class t_{constructor(o,c,f,_){this._el=o,this._touchZoom=c,this._touchRotate=f,this._tapDragZoom=_,this._rotationDisabled=!1,this._enabled=!0}enable(o){this._touchZoom.enable(o),this._rotationDisabled||this._touchRotate.enable(o),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}const ar=d=>d.zoom||d.drag||d.pitch||d.rotate;class ef extends s.Event{}class n_{constructor(){this.constants=[1,1,.01],this.radius=0}setup(o,c){const f=s.sub([],c,o);this.radius=s.length(f[2]<0?s.div([],f,this.constants):[f[0],f[1],0])}projectRay(o){s.div(o,o,this.constants),s.normalize(o,o),s.mul$1(o,o,this.constants);const c=s.scale$2([],o,this.radius);if(c[2]>0){const f=s.scale$2([],[0,0,1],s.dot(c,[0,0,1])),_=s.scale$2([],s.normalize([],[c[0],c[1],0]),this.radius),v=s.add([],c,s.scale$2([],s.sub([],s.add([],_,f),c),2));c[0]=v[0],c[1]=v[1]}return c}}function Tr(d){return d.panDelta&&d.panDelta.mag()||d.zoomDelta||d.bearingDelta||d.pitchDelta}class Gr{constructor(o,c){this._map=o,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Gp(o),this._bearingSnap=c.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new n_,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(c),s.bindAll(["handleEvent","handleWindowEvent"],this);const f=this._el;this._listeners=[[f,"touchstart",{passive:!0}],[f,"touchmove",{passive:!1}],[f,"touchend",void 0],[f,"touchcancel",void 0],[f,"mousedown",void 0],[f,"mousemove",void 0],[f,"mouseup",void 0],[s.window.document,"mousemove",{capture:!0}],[s.window.document,"mouseup",void 0],[f,"mouseover",void 0],[f,"mouseout",void 0],[f,"dblclick",void 0],[f,"click",void 0],[f,"keydown",{capture:!1}],[f,"keyup",void 0],[f,"wheel",{passive:!1}],[f,"contextmenu",void 0],[s.window,"blur",void 0]];for(const[_,v,E]of this._listeners)_.addEventListener(v,_===s.window.document?this.handleWindowEvent:this.handleEvent,E)}destroy(){for(const[o,c,f]of this._listeners)o.removeEventListener(c,o===s.window.document?this.handleWindowEvent:this.handleEvent,f)}_addDefaultHandlers(o){const c=this._map,f=c.getCanvasContainer();this._add("mapEvent",new wh(c,o));const _=c.boxZoom=new $p(c,o);this._add("boxZoom",_);const v=new Yg,E=new xi;c.doubleClickZoom=new Jp(E,v),this._add("tapZoom",v),this._add("clickZoom",E);const S=new Qg;this._add("tapDragZoom",S);const C=c.touchPitch=new Hp(c);this._add("touchPitch",C);const z=new Th(o),P=new Sh(o);c.dragRotate=new e_(o,z,P),this._add("mouseRotate",z,["mousePitch"]),this._add("mousePitch",P,["mouseRotate"]);const D=new Eh(o),j=new Pc(c,o);c.dragPan=new Qp(f,D,j),this._add("mousePan",D),this._add("touchPan",j,["touchZoom","touchRotate"]);const $=new Wp,W=new Zp;c.touchZoomRotate=new t_(f,W,$,S),this._add("touchRotate",$,["touchPan","touchZoom"]),this._add("touchZoom",W,["touchPan","touchRotate"]),this._add("blockableMapEvent",new Mc(c));const Z=c.scrollZoom=new Yp(c,this);this._add("scrollZoom",Z,["mousePan"]);const H=c.keyboard=new Jg;this._add("keyboard",H);for(const O of["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"])o.interactive&&o[O]&&c[O].enable(o[O])}_add(o,c,f){this._handlers.push({handlerName:o,handler:c,allowed:f}),this._handlersById[o]=c}stop(o){if(!this._updatingCamera){for(const{handler:c}of this._handlers)c.reset();this._inertia.clear(),this._fireEvents({},{},o),this._changes=[]}}isActive(){for(const{handler:o}of this._handlers)if(o.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!ar(this._eventsInProgress)||this.isZooming()}_isDragging(){return!!this._eventsInProgress.drag}_blockedByActive(o,c,f){for(const _ in o)if(_!==f&&(!c||c.indexOf(_)<0))return!0;return!1}handleWindowEvent(o){this.handleEvent(o,`${o.type}Window`)}_getMapTouches(o){const c=[];for(const f of o)this._el.contains(f.target)&&c.push(f);return c}handleEvent(o,c){this._updatingCamera=!0;const f=o.type==="renderFrame",_=f?void 0:o,v={needsRenderFrame:!1},E={},S={},C=o.touches?this._getMapTouches(o.touches):void 0,z=C?tt(this._el,C):f?void 0:je(this._el,o);for(const{handlerName:j,handler:$,allowed:W}of this._handlers){if(!$.isEnabled())continue;let Z;this._blockedByActive(S,W,j)?$.reset():$[c||o.type]&&(Z=$[c||o.type](o,z,C),this.mergeHandlerResult(v,E,Z,j,_),Z&&Z.needsRenderFrame&&this._triggerRenderFrame()),(Z||$.isActive())&&(S[j]=$)}const P={};for(const j in this._previousActiveHandlers)S[j]||(P[j]=_);this._previousActiveHandlers=S,(Object.keys(P).length||Tr(v))&&(this._changes.push([v,E,P]),this._triggerRenderFrame()),(Object.keys(S).length||Tr(v))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:D}=v;D&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],D(this._map))}mergeHandlerResult(o,c,f,_,v){if(!f)return;s.extend(o,f);const E={handlerName:_,originalEvent:f.originalEvent||v};f.zoomDelta!==void 0&&(c.zoom=E),f.panDelta!==void 0&&(c.drag=E),f.pitchDelta!==void 0&&(c.pitch=E),f.bearingDelta!==void 0&&(c.rotate=E)}_applyChanges(){const o={},c={},f={};for(const[_,v,E]of this._changes)_.panDelta&&(o.panDelta=(o.panDelta||new s.Point(0,0))._add(_.panDelta)),_.zoomDelta&&(o.zoomDelta=(o.zoomDelta||0)+_.zoomDelta),_.bearingDelta&&(o.bearingDelta=(o.bearingDelta||0)+_.bearingDelta),_.pitchDelta&&(o.pitchDelta=(o.pitchDelta||0)+_.pitchDelta),_.around!==void 0&&(o.around=_.around),_.aroundCoord!==void 0&&(o.aroundCoord=_.aroundCoord),_.pinchAround!==void 0&&(o.pinchAround=_.pinchAround),_.noInertia&&(o.noInertia=_.noInertia),s.extend(c,v),s.extend(f,E);this._updateMapTransform(o,c,f),this._changes=[]}_updateMapTransform(o,c,f){const _=this._map,v=_.transform,E=G=>[G.x,G.y,G.z];if((G=>{const J=this._eventsInProgress.drag;return J&&!this._handlersById[J.handlerName].isActive()})()&&!Tr(o)){const G=v.zoom;v.cameraElevationReference="sea",v.recenterOnTerrain(),v.cameraElevationReference="ground",G!==v.zoom&&this._map._update(!0)}if(v._isCameraConstrained&&_._stop(!0),!Tr(o))return void this._fireEvents(c,f,!0);let{panDelta:S,zoomDelta:C,bearingDelta:z,pitchDelta:P,around:D,aroundCoord:j,pinchAround:$}=o;v._isCameraConstrained&&(C>0&&(C=0),v._isCameraConstrained=!1),$!==void 0&&(D=$),(C||(G=>c[G]&&!this._eventsInProgress[G])("drag"))&&D&&(this._dragOrigin=E(v.pointCoordinate3D(D)),this._trackingEllipsoid.setup(v._camera.position,this._dragOrigin)),v.cameraElevationReference="sea",_._stop(!0),D=D||_.transform.centerPoint,z&&(v.bearing+=z),P&&(v.pitch+=P),v._updateCameraState();const W=[0,0,0];if(S)if(v.projection.name==="mercator"){const G=this._trackingEllipsoid.projectRay(v.screenPointToMercatorRay(D).dir),J=this._trackingEllipsoid.projectRay(v.screenPointToMercatorRay(D.sub(S)).dir);W[0]=J[0]-G[0],W[1]=J[1]-G[1]}else{const G=v.pointCoordinate(D);if(v.projection.name==="globe"){S=S.rotate(-v.angle);const J=v._pixelsPerMercatorPixel/v.worldSize;W[0]=-S.x*s.mercatorScale(s.latFromMercatorY(G.y))*J,W[1]=-S.y*s.mercatorScale(v.center.lat)*J}else{const J=v.pointCoordinate(D.sub(S));G&&J&&(W[0]=J.x-G.x,W[1]=J.y-G.y)}}const Z=v.zoom,H=[0,0,0];if(C){const G=E(j||v.pointCoordinate3D(D)),J={dir:s.normalize([],s.sub([],G,v._camera.position))};if(J.dir[2]<0){const Q=v.zoomDeltaToMovement(G,C);s.scale$2(H,J.dir,Q)}}const O=s.add(W,W,H);v._translateCameraConstrained(O),C&&Math.abs(v.zoom-Z)>1e-4&&v.recenterOnTerrain(),v.cameraElevationReference="ground",this._map._update(),o.noInertia||this._inertia.record(o),this._fireEvents(c,f,!0)}_fireEvents(o,c,f){const _=ar(this._eventsInProgress),v=ar(o),E={};for(const P in o){const{originalEvent:D}=o[P];this._eventsInProgress[P]||(E[`${P}start`]=D),this._eventsInProgress[P]=o[P]}!_&&v&&this._fireEvent("movestart",v.originalEvent);for(const P in E)this._fireEvent(P,E[P]);v&&this._fireEvent("move",v.originalEvent);for(const P in o){const{originalEvent:D}=o[P];this._fireEvent(P,D)}const S={};let C;for(const P in this._eventsInProgress){const{handlerName:D,originalEvent:j}=this._eventsInProgress[P];this._handlersById[D].isActive()||(delete this._eventsInProgress[P],C=c[D]||j,S[`${P}end`]=C)}for(const P in S)this._fireEvent(P,S[P]);const z=ar(this._eventsInProgress);if(f&&(_||v)&&!z){this._updatingCamera=!0;const P=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),D=j=>j!==0&&-this._bearingSnap{this._frameId=void 0,this.handleEvent(new ef("renderFrame",{timeStamp:o})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}const gs="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class zc extends s.Evented{constructor(o,c){super(),this._moving=!1,this._zooming=!1,this.transform=o,this._bearingSnap=c.bearingSnap,this._respectPrefersReducedMotion=c.respectPrefersReducedMotion!==!1,s.bindAll(["_renderFrameCallback"],this)}getCenter(){return new s.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(o,c){return this.jumpTo({center:o},c)}panBy(o,c,f){return o=s.Point.convert(o).mult(-1),this.panTo(this.transform.center,s.extend({offset:o},c),f)}panTo(o,c,f){return this.easeTo(s.extend({center:o},c),f)}getZoom(){return this.transform.zoom}setZoom(o,c){return this.jumpTo({zoom:o},c),this}zoomTo(o,c,f){return this.easeTo(s.extend({zoom:o},c),f)}zoomIn(o,c){return this.zoomTo(this.getZoom()+1,o,c),this}zoomOut(o,c){return this.zoomTo(this.getZoom()-1,o,c),this}getBearing(){return this.transform.bearing}setBearing(o,c){return this.jumpTo({bearing:o},c),this}getPadding(){return this.transform.padding}setPadding(o,c){return this.jumpTo({padding:o},c),this}rotateTo(o,c,f){return this.easeTo(s.extend({bearing:o},c),f)}resetNorth(o,c){return this.rotateTo(0,s.extend({duration:1e3},o),c),this}resetNorthPitch(o,c){return this.easeTo(s.extend({bearing:0,pitch:0,duration:1e3},o),c),this}snapToNorth(o,c){return Math.abs(this.getBearing())o.aspect?f/(2*Math.tan(.5*o.fovX)*o.aspect):_/(2*Math.tan(.5*o.fovY)*o.aspect)}_cameraForBoundsOnGlobe(o,c,f,_,v,E){const S=o.clone(),C=this._extendCameraOptions(E);S.bearing=_,S.pitch=v;const z=s.LngLat.convert(c),P=s.LngLat.convert(f),D=.5*(z.lat+P.lat),j=.5*(z.lng+P.lng),$=s.latLngToECEF(D,j),W=s.normalize([],$),Z=s.normalize([],s.cross([],W,[0,1,0])),H=s.cross([],Z,W),O=[Z[0],Z[1],Z[2],0,H[0],H[1],H[2],0,W[0],W[1],W[2],0,0,0,0,1],G=[$,s.latLngToECEF(z.lat,z.lng),s.latLngToECEF(P.lat,z.lng),s.latLngToECEF(P.lat,P.lng),s.latLngToECEF(z.lat,P.lng),s.latLngToECEF(D,z.lng),s.latLngToECEF(D,P.lng),s.latLngToECEF(z.lat,j),s.latLngToECEF(P.lat,j)];let J=s.Aabb.fromPoints(G.map(Ge=>[s.dot(Z,Ge),s.dot(H,Ge),s.dot(W,Ge)]));const Q=s.transformMat4([],J.center,O);s.squaredLength(Q)===0&&s.set(Q,0,0,1),s.normalize(Q,Q),s.scale$2(Q,Q,s.GLOBE_RADIUS),S.center=s.ecefToLatLng(Q);const he=S.getWorldToCameraMatrix(),pe=s.invert(new Float64Array(16),he);J=s.Aabb.applyTransform(J,s.multiply([],he,O)),s.transformMat4(Q,Q,he);const de=.5*(J.max[2]-J.min[2]),ye=this._minimumAABBFrustumDistance(S,J),_e=s.scale$2([],[0,0,1],de),Te=s.add(_e,Q,_e),Ze=ye+(S.pitch===0?0:s.distance(Q,Te)),we=S.globeCenterInViewSpace,Be=s.sub([],Q,[we[0],we[1],we[2]]);s.normalize(Be,Be),s.scale$2(Be,Be,Ze);const Ce=s.add([],Q,Be);s.transformMat4(Ce,Ce,pe);const qe=s.earthRadius/s.GLOBE_RADIUS,Ee=s.length(Ce),Oe=s.mercatorZfromAltitude(Math.max(Ee*qe-s.earthRadius,Number.EPSILON),0),He=Math.min(S.zoomFromMercatorZAdjusted(Oe),C.maxZoom);return He>.5*(s.GLOBE_ZOOM_THRESHOLD_MIN+s.GLOBE_ZOOM_THRESHOLD_MAX)?(S.setProjection({name:"mercator"}),S.zoom=He,this._cameraForBounds(S,c,f,_,v,E)):{center:S.center,zoom:He,bearing:_,pitch:v}}queryTerrainElevation(o,c){const f=this.transform.elevation;return f?(c=s.extend({},{exaggerated:!0},c),f.getAtPoint(s.MercatorCoordinate.fromLngLat(o),null,c.exaggerated)):null}_cameraForBounds(o,c,f,_,v,E){if(o.projection.name==="globe")return this._cameraForBoundsOnGlobe(o,c,f,_,v,E);const S=o.clone(),C=this._extendCameraOptions(E),z=S.padding;S.bearing=_,S.pitch=v;const P=s.LngLat.convert(c),D=s.LngLat.convert(f),j=new s.LngLat(P.lng,D.lat),$=new s.LngLat(D.lng,P.lat),W=S.project(P),Z=S.project(D),H=this.queryTerrainElevation(P),O=this.queryTerrainElevation(D),G=this.queryTerrainElevation(j),J=this.queryTerrainElevation($),Q=[[W.x,W.y,Math.min(H||0,O||0,G||0,J||0)],[Z.x,Z.y,Math.max(H||0,O||0,G||0,J||0)]];let he=s.Aabb.fromPoints(Q);const pe=S.getWorldToCameraMatrix(),de=s.invert(new Float64Array(16),pe);he=s.Aabb.applyTransform(he,pe);const ye=s.sub([],he.max,he.min),_e=z.left||0,Te=z.right||0,Ze=z.bottom||0,we=z.top||0,{left:Be,right:Ce,top:qe,bottom:Ee}=C.padding,Oe=.5*(_e+Te),He=.5*(we+Ze),Ge=Math.min(S.scaleZoom(S.scale*Math.min((S.width-(_e+Te+Be+Ce))/ye[0],(S.height-(Ze+we+Ee+qe))/ye[1])),C.maxZoom),Xe=S.scale/S.zoomScale(Ge);he=new s.Aabb([he.min[0]-(Be+Oe)*Xe,he.min[1]-(Ee+He)*Xe,he.min[2]],[he.max[0]+(Ce+Oe)*Xe,he.max[1]+(qe+He)*Xe,he.max[2]]);const gt=.5*ye[2],Et=this._minimumAABBFrustumDistance(S,he),dt=[0,0,1,0];s.transformMat4$1(dt,dt,pe),s.normalize$2(dt,dt);const wt=s.scale$2([],dt,Et+gt),Ut=s.add([],he.center,wt),Ot=(typeof C.offset.x=="number"&&typeof C.offset.y=="number"?new s.Point(C.offset.x,C.offset.y):s.Point.convert(C.offset)).rotate(-s.degToRad(_));he.center[0]-=Ot.x*Xe,he.center[1]+=Ot.y*Xe,s.transformMat4(he.center,he.center,de),s.transformMat4(Ut,Ut,de);const mt=[he.center[0],he.center[1],Ut[2]*S.pixelsPerMeter];s.scale$2(mt,mt,1/S.worldSize);const en=s.lngFromMercatorX(mt[0]),rn=s.latFromMercatorY(mt[1]),on=Math.min(S._zoomFromMercatorZ(mt[2]),C.maxZoom),sn=new s.LngLat(en,rn);return S.mercatorFromTransition&&on<.5*(s.GLOBE_ZOOM_THRESHOLD_MIN+s.GLOBE_ZOOM_THRESHOLD_MAX)?(S.setProjection({name:"globe"}),S.zoom=on,this._cameraForBounds(S,c,f,_,v,E)):{center:sn,zoom:on,bearing:_,pitch:v}}fitBounds(o,c,f){const _=this.cameraForBounds(o,c);return this._fitInternal(_,c,f)}fitScreenCoordinates(o,c,f,_,v){const E=s.Point.convert(o),S=s.Point.convert(c),C=new s.Point(Math.min(E.x,S.x),Math.min(E.y,S.y)),z=new s.Point(Math.max(E.x,S.x),Math.max(E.y,S.y));if(this.transform.projection.name==="mercator"&&this.transform.anyCornerOffEdge(E,S))return this;const P=this.transform.pointLocation3D(C),D=this.transform.pointLocation3D(z),j=this.transform.pointLocation3D(new s.Point(C.x,z.y)),$=this.transform.pointLocation3D(new s.Point(z.x,C.y)),W=[Math.min(P.lng,D.lng,j.lng,$.lng),Math.min(P.lat,D.lat,j.lat,$.lat)],Z=[Math.max(P.lng,D.lng,j.lng,$.lng),Math.max(P.lat,D.lat,j.lat,$.lat)],H=_&&_.pitch?_.pitch:this.getPitch(),O=this._cameraForBounds(this.transform,W,Z,f,H,_);return this._fitInternal(O,_,v)}_fitInternal(o,c,f){return o?(delete(c=s.extend(o,c)).padding,c.linear?this.easeTo(c,f):this.flyTo(c,f)):this}jumpTo(o,c){this.stop();const f=o.preloadOnly?this.transform.clone():this.transform;let _=!1,v=!1,E=!1;return"zoom"in o&&f.zoom!==+o.zoom&&(_=!0,f.zoom=+o.zoom),o.center!==void 0&&(f.center=s.LngLat.convert(o.center)),"bearing"in o&&f.bearing!==+o.bearing&&(v=!0,f.bearing=+o.bearing),"pitch"in o&&f.pitch!==+o.pitch&&(E=!0,f.pitch=+o.pitch),o.padding==null||f.isPaddingEqual(o.padding)||(f.padding=o.padding),o.preloadOnly?(this._preloadTiles(f),this):(this.fire(new s.Event("movestart",c)).fire(new s.Event("move",c)),_&&this.fire(new s.Event("zoomstart",c)).fire(new s.Event("zoom",c)).fire(new s.Event("zoomend",c)),v&&this.fire(new s.Event("rotatestart",c)).fire(new s.Event("rotate",c)).fire(new s.Event("rotateend",c)),E&&this.fire(new s.Event("pitchstart",c)).fire(new s.Event("pitch",c)).fire(new s.Event("pitchend",c)),this.fire(new s.Event("moveend",c)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||s.warnOnce(gs),this.transform.getFreeCameraOptions()}setFreeCameraOptions(o,c){const f=this.transform;if(!f.projection.supportsFreeCamera)return s.warnOnce(gs),this;this.stop();const _=f.zoom,v=f.pitch,E=f.bearing;f.setFreeCameraOptions(o);const S=_!==f.zoom,C=v!==f.pitch,z=E!==f.bearing;return this.fire(new s.Event("movestart",c)).fire(new s.Event("move",c)),S&&this.fire(new s.Event("zoomstart",c)).fire(new s.Event("zoom",c)).fire(new s.Event("zoomend",c)),z&&this.fire(new s.Event("rotatestart",c)).fire(new s.Event("rotate",c)).fire(new s.Event("rotateend",c)),C&&this.fire(new s.Event("pitchstart",c)).fire(new s.Event("pitch",c)).fire(new s.Event("pitchend",c)),this.fire(new s.Event("moveend",c)),this}easeTo(o,c){this._stop(!1,o.easeId),((o=s.extend({offset:[0,0],duration:500,easing:s.ease},o)).animate===!1||this._prefersReducedMotion(o))&&(o.duration=0);const f=this.transform,_=this.getZoom(),v=this.getBearing(),E=this.getPitch(),S=this.getPadding(),C="zoom"in o?+o.zoom:_,z="bearing"in o?this._normalizeBearing(o.bearing,v):v,P="pitch"in o?+o.pitch:E,D="padding"in o?o.padding:f.padding,j=s.Point.convert(o.offset);let $,W,Z;if(f.projection.name==="globe"){const _e=s.MercatorCoordinate.fromLngLat(f.center),Te=j.rotate(-f.angle);_e.x+=Te.x/f.worldSize,_e.y+=Te.y/f.worldSize;const Ze=_e.toLngLat(),we=s.LngLat.convert(o.center||Ze);this._normalizeCenter(we),$=f.centerPoint.add(Te),W=new s.Point(_e.x,_e.y).mult(f.worldSize),Z=new s.Point(s.mercatorXfromLng(we.lng),s.mercatorYfromLat(we.lat)).mult(f.worldSize).sub(W)}else{$=f.centerPoint.add(j);const _e=f.pointLocation($),Te=s.LngLat.convert(o.center||_e);this._normalizeCenter(Te),W=f.project(_e),Z=f.project(Te).sub(W)}const H=f.zoomScale(C-_);let O,G;o.around&&(O=s.LngLat.convert(o.around),G=f.locationPoint(O));const J=this._zooming||C!==_,Q=this._rotating||v!==z,he=this._pitching||P!==E,pe=!f.isPaddingEqual(D),de=_e=>Te=>{if(J&&(_e.zoom=s.number(_,C,Te)),Q&&(_e.bearing=s.number(v,z,Te)),he&&(_e.pitch=s.number(E,P,Te)),pe&&(_e.interpolatePadding(S,D,Te),$=_e.centerPoint.add(j)),O)_e.setLocationAtPoint(O,G);else{const Ze=_e.zoomScale(_e.zoom-_),we=C>_?Math.min(2,H):Math.max(.5,H),Be=Math.pow(we,1-Te),Ce=_e.unproject(W.add(Z.mult(Te*Be)).mult(Ze));_e.setLocationAtPoint(_e.renderWorldCopies?Ce.wrap():Ce,$)}return o.preloadOnly||this._fireMoveEvents(c),_e};if(o.preloadOnly){const _e=this._emulate(de,o.duration,f);return this._preloadTiles(_e),this}const ye={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=J,this._rotating=Q,this._pitching=he,this._padding=pe,this._easeId=o.easeId,this._prepareEase(c,o.noMoveStart,ye),this._ease(de(f),_e=>{f.recenterOnTerrain(),this._afterEase(c,_e)},o),this}_prepareEase(o,c,f={}){this._moving=!0,this.transform.cameraElevationReference="sea",c||f.moving||this.fire(new s.Event("movestart",o)),this._zooming&&!f.zooming&&this.fire(new s.Event("zoomstart",o)),this._rotating&&!f.rotating&&this.fire(new s.Event("rotatestart",o)),this._pitching&&!f.pitching&&this.fire(new s.Event("pitchstart",o))}_fireMoveEvents(o){this.fire(new s.Event("move",o)),this._zooming&&this.fire(new s.Event("zoom",o)),this._rotating&&this.fire(new s.Event("rotate",o)),this._pitching&&this.fire(new s.Event("pitch",o))}_afterEase(o,c){if(this._easeId&&c&&this._easeId===c)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";const f=this._zooming,_=this._rotating,v=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,f&&this.fire(new s.Event("zoomend",o)),_&&this.fire(new s.Event("rotateend",o)),v&&this.fire(new s.Event("pitchend",o)),this.fire(new s.Event("moveend",o))}flyTo(o,c){if(this._prefersReducedMotion(o)){const Ge=s.pick(o,["center","zoom","bearing","pitch","around"]);return this.jumpTo(Ge,c)}this.stop(),o=s.extend({offset:[0,0],speed:1.2,curve:1.42,easing:s.ease},o);const f=this.transform,_=this.getZoom(),v=this.getBearing(),E=this.getPitch(),S=this.getPadding(),C="zoom"in o?s.clamp(+o.zoom,f.minZoom,f.maxZoom):_,z="bearing"in o?this._normalizeBearing(o.bearing,v):v,P="pitch"in o?+o.pitch:E,D="padding"in o?o.padding:f.padding,j=f.zoomScale(C-_),$=s.Point.convert(o.offset);let W=f.centerPoint.add($);const Z=f.pointLocation(W),H=s.LngLat.convert(o.center||Z);this._normalizeCenter(H);const O=f.project(Z),G=f.project(H).sub(O);let J=o.curve;const Q=Math.max(f.width,f.height),he=Q/j,pe=G.mag();if("minZoom"in o){const Ge=s.clamp(Math.min(o.minZoom,_,C),f.minZoom,f.maxZoom),Xe=Q/f.zoomScale(Ge-_);J=Math.sqrt(Xe/pe*2)}const de=J*J;function ye(Ge){const Xe=(he*he-Q*Q+(Ge?-1:1)*de*de*pe*pe)/(2*(Ge?he:Q)*de*pe);return Math.log(Math.sqrt(Xe*Xe+1)-Xe)}function _e(Ge){return(Math.exp(Ge)-Math.exp(-Ge))/2}function Te(Ge){return(Math.exp(Ge)+Math.exp(-Ge))/2}const Ze=ye(0);let we=function(Ge){return Te(Ze)/Te(Ze+J*Ge)},Be=function(Ge){return Q*((Te(Ze)*(_e(Xe=Ze+J*Ge)/Te(Xe))-_e(Ze))/de)/pe;var Xe},Ce=(ye(1)-Ze)/J;if(Math.abs(pe)<1e-6||!isFinite(Ce)){if(Math.abs(Q-he)<1e-6)return this.easeTo(o,c);const Ge=heo.maxDuration&&(o.duration=0);const qe=v!==z,Ee=P!==E,Oe=!f.isPaddingEqual(D),He=Ge=>Xe=>{const gt=Xe*Ce,Et=1/we(gt);Ge.zoom=Xe===1?C:_+Ge.scaleZoom(Et),qe&&(Ge.bearing=s.number(v,z,Xe)),Ee&&(Ge.pitch=s.number(E,P,Xe)),Oe&&(Ge.interpolatePadding(S,D,Xe),W=Ge.centerPoint.add($));const dt=Xe===1?H:Ge.unproject(O.add(G.mult(Be(gt))).mult(Et));return Ge.setLocationAtPoint(Ge.renderWorldCopies?dt.wrap():dt,W),Ge._updateCameraOnTerrain(),o.preloadOnly||this._fireMoveEvents(c),Ge};if(o.preloadOnly){const Ge=this._emulate(He,o.duration,f);return this._preloadTiles(Ge),this}return this._zooming=!0,this._rotating=qe,this._pitching=Ee,this._padding=Oe,this._prepareEase(c,!1),this._ease(He(f),()=>this._afterEase(c),o),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(o,c){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const f=this._onEaseEnd;this._onEaseEnd=void 0,f.call(this,c)}if(!o){const f=this.handlers;f&&f.stop(!1)}return this}_ease(o,c,f){f.animate===!1||f.duration===0?(o(1),c()):(this._easeStart=s.exported.now(),this._easeOptions=f,this._onEaseFrame=o,this._onEaseEnd=c,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){const o=Math.min((s.exported.now()-this._easeStart)/this._easeOptions.duration,1),c=this._onEaseFrame;c&&c(this._easeOptions.easing(o)),o<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(o,c){o=s.wrap(o,-180,180);const f=Math.abs(o-c);return Math.abs(o-360-c)180?-360:f<-180?360:0}_prefersReducedMotion(o){return this._respectPrefersReducedMotion&&s.exported.prefersReducedMotion&&!(o&&o.essential)}_emulate(o,c,f){const _=Math.ceil(15*c/1e3),v=[],E=o(f.clone());for(let S=0;S<=_;S++){const C=E(S/_);v.push(C.clone())}return v}}class ht{constructor(o={}){this.options=o,s.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(o){const c=this.options&&this.options.compact;return this._map=o,this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=oe("button","mapboxgl-ctrl-attrib-button",this._container),oe("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden","true"),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=oe("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),c&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),c===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0}_setElementTitle(o,c){const f=this._map._getUIString(`AttributionControl.${c}`);o.setAttribute("aria-label",f),o.removeAttribute("title"),o.firstElementChild&&o.firstElementChild.setAttribute("title",f)}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"))}_updateEditLink(){let o=this._editLink;o||(o=this._editLink=this._container.querySelector(".mapbox-improve-map"));const c=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||s.config.ACCESS_TOKEN}];if(o){const f=c.reduce((_,v,E)=>(v.value&&(_+=`${v.key}=${v.value}${E_.length-v.length),o=o.filter((_,v)=>{for(let E=v+1;E=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?o=[...this.options.customAttribution,...o]:o.unshift(this.options.customAttribution));const f=o.join(" | ");f!==this._attribHTML&&(this._attribHTML=f,o.length?(this._innerContainer.innerHTML=f,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")}}class Mh{constructor(){s.bindAll(["_updateLogo","_updateCompact"],this)}onAdd(o){this._map=o,this._container=oe("div","mapboxgl-ctrl");const c=oe("a","mapboxgl-ctrl-logo");return c.target="_blank",c.rel="noopener nofollow",c.href="https://www.mapbox.com/",c.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),c.setAttribute("rel","noopener nofollow"),this._container.appendChild(c),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)}getDefaultPosition(){return"bottom-left"}_updateLogo(o){o&&o.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;const o=this._map.style._sourceCaches;if(Object.entries(o).length===0)return!0;for(const c in o){const f=o[c].getSource();if(f.hasOwnProperty("mapbox_logo")&&!f.mapbox_logo)return!1}return!0}_updateCompact(){const o=this._container.children;if(o.length){const c=o[0];this._map.getCanvasContainer().offsetWidth<250?c.classList.add("mapboxgl-compact"):c.classList.remove("mapboxgl-compact")}}}class kh{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(o){const c=++this._id;return this._queue.push({callback:o,id:c,cancelled:!1}),c}remove(o){const c=this._currentlyRunning,f=c?this._queue.concat(c):this._queue;for(const _ of f)if(_.id===o)return void(_.cancelled=!0)}run(o=0){const c=this._currentlyRunning=this._queue;this._queue=[];for(const f of c)if(!f.cancelled&&(f.callback(o),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}function aa(d,o,c){if(d=new s.LngLat(d.lng,d.lat),o){const f=new s.LngLat(d.lng-360,d.lat),_=new s.LngLat(d.lng+360,d.lat),v=360*Math.ceil(Math.abs(d.lng-c.center.lng)/360),E=c.locationPoint(d).distSqr(o),S=o.x<0||o.y<0||o.x>c.width||o.y>c.height;c.locationPoint(f).distSqr(o)180;){const f=c.locationPoint(d);if(f.x>=0&&f.y>=0&&f.x<=c.width&&f.y<=c.height)break;d.lng>c.center.lng?d.lng-=360:d.lng+=360}return d}const _s={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%)"};class st extends s.Evented{constructor(o,c){if(super(),(o instanceof s.window.HTMLElement||c)&&(o=s.extend({element:o},c)),s.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=o&&o.anchor||"center",this._color=o&&o.color||"#3FB1CE",this._scale=o&&o.scale||1,this._draggable=o&&o.draggable||!1,this._clickTolerance=o&&o.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=o&&o.rotation||0,this._rotationAlignment=o&&o.rotationAlignment||"auto",this._pitchAlignment=o&&o.pitchAlignment&&o.pitchAlignment||"auto",this._updateMoving=()=>this._update(!0),this._occludedOpacity=o&&o.occludedOpacity||.2,o&&o.element)this._element=o.element,this._offset=s.Point.convert(o&&o.offset||[0,0]);else{this._defaultMarker=!0,this._element=oe("div");const _=41,v=27,E=Ae("svg",{display:"block",height:_*this._scale+"px",width:v*this._scale+"px",viewBox:`0 0 ${v} ${_}`},this._element),S=Ae("radialGradient",{id:"shadowGradient"},Ae("defs",{},E));Ae("stop",{offset:"10%","stop-opacity":.4},S),Ae("stop",{offset:"100%","stop-opacity":.05},S),Ae("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},E),Ae("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},E),Ae("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},E),Ae("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},E),this._offset=s.Point.convert(o&&o.offset||[0,-14])}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",_=>{_.preventDefault()}),this._element.addEventListener("mousedown",_=>{_.preventDefault()});const f=this._element.classList;for(const _ in _s)f.remove(`mapboxgl-marker-anchor-${_}`);f.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(o){return o===this._map||(this.remove(),this._map=o,o.getCanvasContainer().appendChild(this._element),o.on("move",this._updateMoving),o.on("moveend",this._update),o.on("remove",this._clearFadeTimer),o._addMarker(this),this.setDraggable(this._draggable),this._update(),o.on("click",this._onMapClick)),this}remove(){const o=this._map;return o&&(o.off("click",this._onMapClick),o.off("move",this._updateMoving),o.off("moveend",this._update),o.off("mousedown",this._addDragHandler),o.off("touchstart",this._addDragHandler),o.off("mouseup",this._onUp),o.off("touchend",this._onUp),o.off("mousemove",this._onMove),o.off("touchmove",this._onMove),o.off("remove",this._clearFadeTimer),o._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(o){return this._lngLat=s.LngLat.convert(o),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(o){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),o){if(!("offset"in o.options)){const _=Math.sqrt(Math.pow(13.5,2)/2);o.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[_,-1*(38.1-13.5+_)],"bottom-right":[-_,-1*(38.1-13.5+_)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=o,o._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false")}return this}_onKeyPress(o){const c=o.code,f=o.charCode||o.keyCode;c!=="Space"&&c!=="Enter"&&f!==32&&f!==13||this.togglePopup()}_onMapClick(o){const c=o.originalEvent.target,f=this._element;this._popup&&(c===f||f.contains(c))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){const o=this._popup;return o?(o.isOpen()?(o.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(o.addTo(this._map),this._element.setAttribute("aria-expanded","true")),this):this}_behindTerrain(){const o=this._map,c=this._pos;if(!o||!c)return!1;const f=o.unproject(c),_=o.getFreeCameraOptions();if(!_.position)return!1;const v=_.position.toLngLat();return v.distanceTo(f)<.9*v.distanceTo(this._lngLat)}_evaluateOpacity(){const o=this._map;if(!o)return;const c=this._pos;if(!c||c.x<0||c.x>o.transform.width||c.y<0||c.y>o.transform.height)return void this._clearFadeTimer();const f=o.unproject(c);let _;o._showingGlobe()&&s.isLngLatBehindGlobe(o.transform,this._lngLat)?_=0:(_=1-o._queryFogOpacity(f),o.transform._terrainEnabled()&&o.getTerrain()&&this._behindTerrain()&&(_*=this._occludedOpacity)),this._element.style.opacity=`${_}`,this._element.style.pointerEvents=_>0?"auto":"none",this._popup&&this._popup._setOpacity(_),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_updateDOM(){const o=this._pos;if(!o||!this._map)return;const c=this._offset.mult(this._scale);this._element.style.transform=` + translate(${o.x}px,${o.y}px) + ${_s[this._anchor]} + ${this._calculateXYTransform()} ${this._calculateZTransform()} + translate(${c.x}px,${c.y}px) + `}_calculateXYTransform(){const o=this._pos,c=this._map,f=this.getPitchAlignment();if(!c||!o||f!=="map")return"";if(!c._showingGlobe()){const C=c.getPitch();return C?`rotateX(${C}deg)`:""}const _=s.radToDeg(s.globeTiltAtLngLat(c.transform,this._lngLat)),v=o.sub(s.globeCenterToScreenPoint(c.transform)),E=Math.abs(v.x)+Math.abs(v.y);if(E===0)return"";const S=_/E;return`rotateX(${-v.y*S}deg) rotateY(${v.x*S}deg)`}_calculateZTransform(){const o=this._pos,c=this._map;if(!c||!o)return"";let f=0;const _=this.getRotationAlignment();if(_==="map")if(c._showingGlobe()){const v=c.project(new s.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),E=c.project(new s.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(v);f=s.radToDeg(Math.atan2(E.y,E.x))-90}else f=-c.getBearing();else if(_==="horizon"){const v=s.smoothstep(4,6,c.getZoom()),E=s.globeCenterToScreenPoint(c.transform);E.y+=v*c.transform.height;const S=o.sub(E),C=s.radToDeg(Math.atan2(S.y,S.x));f=(C>90?C-270:C+90)*(1-v)}return f+=this._rotation,f?`rotateZ(${f}deg)`:""}_update(o){s.window.cancelAnimationFrame(this._updateFrameId);const c=this._map;c&&(c.transform.renderWorldCopies&&(this._lngLat=aa(this._lngLat,this._pos,c.transform)),this._pos=c.project(this._lngLat),o===!0?this._updateFrameId=s.window.requestAnimationFrame(()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),c._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(c._showingGlobe()||c.getTerrain()||c.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))}))}getOffset(){return this._offset}setOffset(o){return this._offset=s.Point.convert(o),this._update(),this}_onMove(o){const c=this._map;if(!c)return;const f=this._pointerdownPos,_=this._positionDelta;if(f&&_){if(!this._isDragging){const v=this._clickTolerance||c._clickTolerance;if(o.point.dist(f)=this._endTime)return this._end;const c=s.easeCubicInOut((o-this._startTime)/(this._endTime-this._startTime));return this._start*(1-c)+this._end*c}isEasing(o){return o>=this._startTime&&o<=this._endTime}jumpTo(o){this._startTime=-1/0,this._endTime=-1/0,this._start=o,this._end=o}easeTo(o,c,f){this._start=this.getValue(c),this._end=o,this._startTime=c,this._endTime=c+f}}const nf={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use ⌘ + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"},rf={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,respectPrefersReducedMotion:!0,crossSourceCollisions:!0},r_={showCompass:!0,showZoom:!0,visualizePitch:!1};class o_{constructor(o,c,f=!1){this._clickTolerance=10,this.element=c,this.mouseRotate=new Th({clickTolerance:o.dragRotate._mouseRotate._clickTolerance}),this.map=o,f&&(this.mousePitch=new Sh({clickTolerance:o.dragRotate._mousePitch._clickTolerance})),s.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),c.addEventListener("mousedown",this.mousedown),c.addEventListener("touchstart",this.touchstart,{passive:!1}),c.addEventListener("touchmove",this.touchmove),c.addEventListener("touchend",this.touchend),c.addEventListener("touchcancel",this.reset)}down(o,c){this.mouseRotate.mousedown(o,c),this.mousePitch&&this.mousePitch.mousedown(o,c),ue()}move(o,c){const f=this.map,_=this.mouseRotate.mousemoveWindow(o,c),v=_&&_.bearingDelta;if(v&&f.setBearing(f.getBearing()+v),this.mousePitch){const E=this.mousePitch.mousemoveWindow(o,c),S=E&&E.pitchDelta;S&&f.setPitch(f.getPitch()+S)}}off(){const o=this.element;o.removeEventListener("mousedown",this.mousedown),o.removeEventListener("touchstart",this.touchstart,{passive:!1}),o.removeEventListener("touchmove",this.touchmove),o.removeEventListener("touchend",this.touchend),o.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){re(),s.window.removeEventListener("mousemove",this.mousemove),s.window.removeEventListener("mouseup",this.mouseup)}mousedown(o){this.down(s.extend({},o,{ctrlKey:!0,preventDefault:()=>o.preventDefault()}),je(this.element,o)),s.window.addEventListener("mousemove",this.mousemove),s.window.addEventListener("mouseup",this.mouseup)}mousemove(o){this.move(o,je(this.element,o))}mouseup(o){this.mouseRotate.mouseupWindow(o),this.mousePitch&&this.mousePitch.mouseupWindow(o),this.offTemp()}touchstart(o){o.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=tt(this.element,o.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>o.preventDefault()},this._startPos))}touchmove(o){o.targetTouches.length!==1?this.reset():(this._lastPos=tt(this.element,o.targetTouches)[0],this.move({preventDefault:()=>o.preventDefault()},this._lastPos))}touchend(o){o.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)d.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(d.minPitch!=null&&d.maxPitch!=null&&d.minPitch>d.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(d.minPitch!=null&&d.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(d.maxPitch!=null&&d.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(d.antialias&&s.isSafariWithAntialiasingBug(s.window)&&(d.antialias=!1,s.warnOnce("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new ia(d.minZoom,d.maxZoom,d.minPitch,d.maxPitch,d.renderWorldCopies),d),this._interactive=d.interactive,this._minTileCacheSize=d.minTileCacheSize,this._maxTileCacheSize=d.maxTileCacheSize,this._failIfMajorPerformanceCaveat=d.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=d.preserveDrawingBuffer,this._antialias=d.antialias,this._useWebGL2=d.useWebGL2,this._trackResize=d.trackResize,this._bearingSnap=d.bearingSnap,this._refreshExpiredTiles=d.refreshExpiredTiles,this._fadeDuration=d.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=d.crossSourceCollisions,this._collectResourceTiming=d.collectResourceTiming,this._optimizeForTerrain=d.optimizeForTerrain,this._language=this._parseLanguage(d.language),this._worldview=d.worldview,this._renderTaskQueue=new kh,this._domRenderTaskQueue=new kh,this._controls=[],this._markers=[],this._popups=[],this._mapId=s.uniqueId(),this._locale=s.extend({},nf,d.locale),this._clickTolerance=d.clickTolerance,this._cooperativeGestures=d.cooperativeGestures,this._performanceMetricsCollection=d.performanceMetricsCollection,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new zh(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._requestManager=new s.RequestManager(d.transformRequest,d.accessToken,d.testMode),this._silenceAuthErrors=!!d.testMode,typeof d.container=="string"){if(this._container=s.window.document.getElementById(d.container),!this._container)throw new Error(`Container '${d.container}' not found.`)}else{if(!(d.container instanceof s.window.HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=d.container}if(this._container.childNodes.length>0&&s.warnOnce("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),d.maxBounds&&this.setMaxBounds(d.maxBounds),s.bindAll(["_onWindowOnline","_onWindowResize","_onVisibilityChange","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),s.window!==void 0&&(s.window.addEventListener("online",this._onWindowOnline,!1),s.window.addEventListener("resize",this._onWindowResize,!1),s.window.addEventListener("orientationchange",this._onWindowResize,!1),s.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1),s.window.addEventListener("visibilitychange",this._onVisibilityChange,!1)),this.handlers=new Gr(this,d),this._localFontFamily=d.localFontFamily,this._localIdeographFontFamily=d.localIdeographFontFamily,d.style&&this.setStyle(d.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),d.projection&&this.setProjection(d.projection),this._hash=d.hash&&new xh(typeof d.hash=="string"&&d.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:d.center,zoom:d.zoom,bearing:d.bearing,pitch:d.pitch}),d.bounds&&(this.resize(),this.fitBounds(d.bounds,s.extend({},d.fitBoundsOptions,{duration:0})))),this.resize(),d.attributionControl&&this.addControl(new ht({customAttribution:d.customAttribution})),this._logoControl=new Mh,this.addControl(this._logoControl,d.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",o=>{this._update(o.dataType==="style"),this.fire(new s.Event(`${o.dataType}data`,o))}),this.on("dataloading",o=>{this.fire(new s.Event(`${o.dataType}dataloading`,o))})}_getMapId(){return this._mapId}addControl(d,o){if(o===void 0&&(o=d.getDefaultPosition?d.getDefaultPosition():"top-right"),!d||!d.onAdd)return this.fire(new s.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const c=d.onAdd(this);this._controls.push(d);const f=this._controlPositions[o];return o.indexOf("bottom")!==-1?f.insertBefore(c,f.firstChild):f.appendChild(c),this}removeControl(d){if(!d||!d.onRemove)return this.fire(new s.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const o=this._controls.indexOf(d);return o>-1&&this._controls.splice(o,1),d.onRemove(this),this}hasControl(d){return this._controls.indexOf(d)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(d){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const o=!this._moving;return o&&this.fire(new s.Event("movestart",d)).fire(new s.Event("move",d)),this.fire(new s.Event("resize",d)),o&&this.fire(new s.Event("moveend",d)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(d){return this.transform.setMaxBounds(s.LngLatBounds.convert(d)),this._update()}setMinZoom(d){if((d=d??-2)>=-2&&d<=this.transform.maxZoom)return this.transform.minZoom=d,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=d,this._update(),this.getZoom()>d?this.setZoom(d):this.fire(new s.Event("zoomstart")).fire(new s.Event("zoom")).fire(new s.Event("zoomend")),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(d){if((d=d??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(d>=0&&d<=this.transform.maxPitch)return this.transform.minPitch=d,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(d>=this.transform.minPitch)return this.transform.maxPitch=d,this._update(),this.getPitch()>d?this.setPitch(d):this.fire(new s.Event("pitchstart")).fire(new s.Event("pitch")).fire(new s.Event("pitchend")),this;throw new Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(d){return this.transform.renderWorldCopies=d,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(d){return d==="auto"?s.window.navigator.language:Array.isArray(d)?d.length===0?void 0:d.map(o=>o==="auto"?s.window.navigator.language:o):d}setLanguage(d){const o=this._parseLanguage(d);if(!this.style||o===this._language)return this;this._language=o,this.style._reloadSources();for(const c of this._controls)c._setLanguage&&c._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(d){return this.style&&d!==this._worldview?(this._worldview=d,this.style._reloadSources(),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return this.transform.projection.name==="globe"}setProjection(d){return this._lazyInitEmptyStyle(),d?typeof d=="string"&&(d={name:d}):d=null,this._useExplicitProjection=!!d,this._prioritizeAndUpdateProjection(d,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){if(this.getProjection().name!=="globe")return;const d=this.transform,o=d.projection.name;let c;o==="globe"&&d.zoom>=s.GLOBE_ZOOM_THRESHOLD_MAX?(d.setMercatorFromTransition(),c=!0):o==="mercator"&&d.zoom=s.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(d),this.style.applyProjectionUpdate(),o){this.painter.clearBackgroundTiles();for(const c in this.style._sourceCaches)this.style._sourceCaches[c].clearTiles();this._update(!0),this._forceMarkerAndPopupUpdate(!0)}return this}project(d){return this.transform.locationPoint3D(s.LngLat.convert(d))}unproject(d){return this.transform.pointLocation3D(s.Point.convert(d))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(d,o,c){if(d==="mouseenter"||d==="mouseover"){let f=!1;const _=E=>{const S=o.filter(z=>this.getLayer(z)),C=S.length?this.queryRenderedFeatures(E.point,{layers:S}):[];C.length?f||(f=!0,c.call(this,new oi(d,this,E.originalEvent,{features:C}))):f=!1},v=()=>{f=!1};return{layers:new Set(o),listener:c,delegates:{mousemove:_,mouseout:v}}}if(d==="mouseleave"||d==="mouseout"){let f=!1;const _=E=>{const S=o.filter(C=>this.getLayer(C));(S.length?this.queryRenderedFeatures(E.point,{layers:S}):[]).length?f=!0:f&&(f=!1,c.call(this,new oi(d,this,E.originalEvent)))},v=E=>{f&&(f=!1,c.call(this,new oi(d,this,E.originalEvent)))};return{layers:new Set(o),listener:c,delegates:{mousemove:_,mouseout:v}}}{const f=_=>{const v=o.filter(S=>this.getLayer(S)),E=v.length?this.queryRenderedFeatures(_.point,{layers:v}):[];E.length&&(_.features=E,c.call(this,_),delete _.features)};return{layers:new Set(o),listener:c,delegates:{[d]:f}}}}on(d,o,c){if(c===void 0)return super.on(d,o);Array.isArray(o)||(o=[o]);const f=this._createDelegatedListener(d,o,c);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[d]=this._delegatedListeners[d]||[],this._delegatedListeners[d].push(f);for(const _ in f.delegates)this.on(_,f.delegates[_]);return this}once(d,o,c){if(c===void 0)return super.once(d,o);Array.isArray(o)||(o=[o]);const f=this._createDelegatedListener(d,o,c);for(const _ in f.delegates)this.once(_,f.delegates[_]);return this}off(d,o,c){if(c===void 0)return super.off(d,o);o=new Set(Array.isArray(o)?o:[o]);const f=(v,E)=>{if(v.size!==E.size)return!1;for(const S of v)if(!E.has(S))return!1;return!0},_=this._delegatedListeners?this._delegatedListeners[d]:void 0;return _&&(v=>{for(let E=0;E{_?this.fire(new s.ErrorEvent(_)):v&&this._updateDiff(v,o)})}else typeof d=="object"&&this._updateDiff(d,o)}_updateDiff(d,o){try{this.style.setState(d)&&this._update(!0)}catch(c){s.warnOnce(`Unable to perform style diff: ${c.message||c.error||c}. Rebuilding the style from scratch.`),this._updateStyle(d,o)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(s.warnOnce("There is no style added to the map."),!1)}addSource(d,o){return this._lazyInitEmptyStyle(),this.style.addSource(d,o),this._update(!0)}isSourceLoaded(d){return!!this.style&&this.style._isSourceCacheLoaded(d)}areTilesLoaded(){const d=this.style&&this.style._sourceCaches;for(const o in d){const c=d[o]._tiles;for(const f in c){const _=c[f];if(_.state!=="loaded"&&_.state!=="errored")return!1}}return!0}addSourceType(d,o,c){this._lazyInitEmptyStyle(),this.style.addSourceType(d,o,c)}removeSource(d){return this.style.removeSource(d),this._updateTerrain(),this._update(!0)}getSource(d){return this.style.getSource(d)}addImage(d,o,{pixelRatio:c=1,sdf:f=!1,stretchX:_,stretchY:v,content:E}={}){if(this._lazyInitEmptyStyle(),o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap){const{width:S,height:C,data:z}=s.exported.getImageData(o);this.style.addImage(d,{data:new s.RGBAImage({width:S,height:C},z),pixelRatio:c,stretchX:_,stretchY:v,content:E,sdf:f,version:0})}else if(o.width===void 0||o.height===void 0)this.fire(new s.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));else{const{width:S,height:C}=o,z=o;this.style.addImage(d,{data:new s.RGBAImage({width:S,height:C},new Uint8Array(z.data)),pixelRatio:c,stretchX:_,stretchY:v,content:E,sdf:f,version:0,userImage:z}),z.onAdd&&z.onAdd(this,d)}}updateImage(d,o){const c=this.style.getImage(d);if(!c)return void this.fire(new s.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const f=o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap?s.exported.getImageData(o):o,{width:_,height:v}=f;_!==void 0&&v!==void 0?_===c.data.width&&v===c.data.height?(c.data.replace(f.data,!(o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap)),this.style.updateImage(d,c)):this.fire(new s.ErrorEvent(new Error(`The width and height of the updated image (${_}, ${v}) + must be that same as the previous version of the image + (${c.data.width}, ${c.data.height})`))):this.fire(new s.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")))}hasImage(d){return d?!!this.style.getImage(d):(this.fire(new s.ErrorEvent(new Error("Missing required image id"))),!1)}removeImage(d){this.style.removeImage(d)}loadImage(d,o){s.getImage(this._requestManager.transformRequest(d,s.ResourceType.Image),(c,f)=>{o(c,f instanceof s.window.HTMLImageElement?s.exported.getImageData(f):f)})}listImages(){return this.style.listImages()}addLayer(d,o){return this._lazyInitEmptyStyle(),this.style.addLayer(d,o),this._update(!0)}moveLayer(d,o){return this.style.moveLayer(d,o),this._update(!0)}removeLayer(d){return this.style.removeLayer(d),this._update(!0)}getLayer(d){return this.style.getLayer(d)}setLayerZoomRange(d,o,c){return this.style.setLayerZoomRange(d,o,c),this._update(!0)}setFilter(d,o,c={}){return this.style.setFilter(d,o,c),this._update(!0)}getFilter(d){return this.style.getFilter(d)}setPaintProperty(d,o,c,f={}){return this.style.setPaintProperty(d,o,c,f),this._update(!0)}getPaintProperty(d,o){return this.style.getPaintProperty(d,o)}setLayoutProperty(d,o,c,f={}){return this.style.setLayoutProperty(d,o,c,f),this._update(!0)}getLayoutProperty(d,o){return this.style.getLayoutProperty(d,o)}setLight(d,o={}){return this._lazyInitEmptyStyle(),this.style.setLight(d,o),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(d){return this._lazyInitEmptyStyle(),!d&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(d),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(d){return this._lazyInitEmptyStyle(),this.style.setFog(d),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(d){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(s.LngLat.convert(d),this.transform):0}setFeatureState(d,o){return this.style.setFeatureState(d,o),this._update()}removeFeatureState(d,o){return this.style.removeFeatureState(d,o),this._update()}getFeatureState(d){return this.style.getFeatureState(d)}_updateContainerDimensions(){if(!this._container)return;const d=this._container.getBoundingClientRect().width||400,o=this._container.getBoundingClientRect().height||300;let c,f,_,v=this._container;for(;v&&(!f||!_);){const E=s.window.getComputedStyle(v).transform;E&&E!=="none"&&(c=E.match(/matrix.*\((.+)\)/)[1].split(", "),c[0]&&c[0]!=="0"&&c[0]!=="1"&&(f=c[0]),c[3]&&c[3]!=="0"&&c[3]!=="1"&&(_=c[3])),v=v.parentElement}this._containerWidth=f?Math.abs(d/f):d,this._containerHeight=_?Math.abs(o/_):o}_detectMissingCSS(){s.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&s.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")}_setupContainer(){const d=this._container;d.classList.add("mapboxgl-map"),(this._missingCSSCanary=oe("div","mapboxgl-canary",d)).style.visibility="hidden",this._detectMissingCSS();const o=this._canvasContainer=oe("div","mapboxgl-canvas-container",d);this._interactive&&o.classList.add("mapboxgl-interactive"),this._canvas=oe("canvas","mapboxgl-canvas",o),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const c=this._controlContainer=oe("div","mapboxgl-control-container",d),f=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(_=>{f[_]=oe("div",`mapboxgl-ctrl-${_}`,c)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(d,o){const c=s.exported.devicePixelRatio||1;this._canvas.width=c*Math.ceil(d),this._canvas.height=c*Math.ceil(o),this._canvas.style.width=`${d}px`,this._canvas.style.height=`${o}px`}_addMarker(d){this._markers.push(d)}_removeMarker(d){const o=this._markers.indexOf(d);o!==-1&&this._markers.splice(o,1)}_addPopup(d){this._popups.push(d)}_removePopup(d){const o=this._popups.indexOf(d);o!==-1&&this._popups.splice(o,1)}_setupPainter(){const d=s.extend({},F.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._useWebGL2&&this._canvas.getContext("webgl2",d),c=o||this._canvas.getContext("webgl",d)||this._canvas.getContext("experimental-webgl",d);c?(this._useWebGL2&&!o&&s.warnOnce("Failed to create WebGL 2 context. Using WebGL 1."),s.storeAuthState(c,!0),this.painter=new ta(c,this.transform,!!o),this.on("data",f=>{f.dataType==="source"&&this.painter.setTileLoadedFlag(!0)}),s.exported$1.testSupport(c)):this.fire(new s.ErrorEvent(new Error("Failed to initialize WebGL")))}_contextLost(d){d.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new s.Event("webglcontextlost",{originalEvent:d}))}_contextRestored(d){this._setupPainter(),this.resize(),this._update(),this.fire(new s.Event("webglcontextrestored",{originalEvent:d}))}_onMapScroll(d){if(d.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(d){return this.style?(this._styleDirty=this._styleDirty||d,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(d){return this._update(),this._renderTaskQueue.add(d)}_cancelRenderFrame(d){this._renderTaskQueue.remove(d)}_requestDomTask(d){!this.loaded()||this.loaded()&&!this.isMoving()?d():this._domRenderTaskQueue.add(d)}_render(d){let o;const c=this.painter.context.extTimerQuery,f=s.exported.now();if(this.listens("gpu-timing-frame")&&(o=c.createQueryEXT(),c.beginQueryEXT(c.TIME_ELAPSED_EXT,o)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],s.window.performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],s.window.performance.now())),this._renderTaskQueue.run(d),this._domRenderTaskQueue.run(d),this._removed)return;this._updateProjectionTransition();const _=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const S=this.transform.zoom,C=this.transform.pitch,z=s.exported.now(),P=new s.EvaluationParameters(S,{now:z,fadeDuration:_,pitch:C,transition:this.style.getTransition()});this.style.update(P)}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let v=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),v=this._updateAverageElevation(f),this.style._updateSources(this.transform),this._forceMarkerAndPopupUpdate()):v=this._updateAverageElevation(f),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,_,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:_,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new s.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new s.Event("load"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),o){const S=s.exported.now()-f;c.endQueryEXT(c.TIME_ELAPSED_EXT,o),setTimeout(()=>{const C=c.getQueryObjectEXT(o,c.QUERY_RESULT_EXT)/1e6;c.deleteQueryEXT(o),this.fire(new s.Event("gpu-timing-frame",{cpuTime:S,gpuTime:C})),s.window.performance.mark("frame-gpu",{startTime:f,detail:{gpuTime:C}})},50)}if(this.listens("gpu-timing-layer")){const S=this.painter.collectGpuTimers();setTimeout(()=>{const C=this.painter.queryGpuTimers(S);this.fire(new s.Event("gpu-timing-layer",{layerTimes:C}))},50)}if(this.listens("gpu-timing-deferred-render")){const S=this.painter.collectDeferredRenderGpuQueries();setTimeout(()=>{const C=this.painter.queryGpuTimeDeferredRender(S);this.fire(new s.Event("gpu-timing-deferred-render",{gpuTime:C}))},50)}const E=this._sourcesDirty||this._styleDirty||this._placementDirty||v;if(E||this._repaint)this.triggerRepaint();else{const S=!this.isMoving()&&this.loaded();if(S&&(v=this._updateAverageElevation(f,!0)),v)this.triggerRepaint();else if(this._triggerFrame(!1),S&&(this.fire(new s.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const C=this._calculateSpeedIndex();this.fire(new s.Event("speedindexcompleted",{speedIndex:C})),this.speedIndexTiming=!1}}!this._loaded||this._fullyLoaded||E||(this._fullyLoaded=!0,s.LivePerformanceUtils.mark(s.PerformanceMarkers.fullLoad),this._performanceMetricsCollection&&s.postPerformanceEvent(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate())}_forceMarkerAndPopupUpdate(d){for(const o of this._markers)d&&!this.getRenderWorldCopies()&&(o._lngLat=o._lngLat.wrap()),o._update();for(const o of this._popups)!d||this.getRenderWorldCopies()||o._trackPointer||(o._lngLat=o._lngLat.wrap()),o._update()}_updateAverageElevation(d,o=!1){const c=f=>(this.transform.averageElevation=f,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return this.transform.averageElevation!==0&&c(0);if((o||d-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(d)){const f=this.transform.averageElevation;let _=this.transform.sampleAverageElevation(),v=!1;this.transform.elevation&&(v=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(_)?_=0:this._averageElevationLastSampledAt=d;const E=Math.abs(f-_);if(E>1){if(this._isInitialLoad||v)return this._averageElevation.jumpTo(_),c(_);this._averageElevation.easeTo(_,d,300)}else if(E>1e-4)return this._averageElevation.jumpTo(_),c(_)}return!!this._averageElevation.isEasing(d)&&c(this._averageElevation.getValue(d))}_authenticate(){s.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,d=>{if(d&&(d.message===s.AUTH_ERR_MSG||d.status===401)){const o=this.painter.context.gl;s.storeAuthState(o,!1),this._logoControl instanceof Mh&&this._logoControl._updateLogo(),o&&o.clear(o.DEPTH_BUFFER_BIT|o.COLOR_BUFFER_BIT|o.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new s.ErrorEvent(new Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")))}}),s.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_updateTerrain(){const d=this._isDragging();this.painter.updateTerrain(this.style,d)}_calculateSpeedIndex(){const d=this.painter.canvasCopy(),o=this.painter.getCanvasCopiesAndTimestamps();o.timeStamps.push(performance.now());const c=this.painter.context.gl,f=c.createFramebuffer();function _(v){c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_2D,v,0);const E=new Uint8Array(c.drawingBufferWidth*c.drawingBufferHeight*4);return c.readPixels(0,0,c.drawingBufferWidth,c.drawingBufferHeight,c.RGBA,c.UNSIGNED_BYTE,E),E}return c.bindFramebuffer(c.FRAMEBUFFER,f),this._canvasPixelComparison(_(d),o.canvasCopies.map(_),o.timeStamps)}_canvasPixelComparison(d,o,c){let f=c[1]-c[0];const _=d.length/4;for(let v=0;v{const c=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,c&&this._render(o)}))}_preloadTiles(d){const o=this.style?Object.values(this.style._sourceCaches):[];return s.asyncAll(o,(c,f)=>c._preloadTiles(d,f),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(d){this._trackResize&&this.resize({originalEvent:d})._update()}_onVisibilityChange(){s.window.document.visibilityState==="hidden"&&this._visibilityHidden++}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(d){this._showTileBoundaries!==d&&(this._showTileBoundaries=d,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(d){this._showTerrainWireframe!==d&&(this._showTerrainWireframe=d,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(d){this._speedIndexTiming!==d&&(this._speedIndexTiming=d,this._update())}get showPadding(){return!!this._showPadding}set showPadding(d){this._showPadding!==d&&(this._showPadding=d,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(d){this._showCollisionBoxes!==d&&(this._showCollisionBoxes=d,d?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(d){this._showOverdrawInspector!==d&&(this._showOverdrawInspector=d,this._update())}get repaint(){return!!this._repaint}set repaint(d){this._repaint!==d&&(this._repaint=d,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(d){this._vertices=d,this._update()}get showTileAABBs(){return!!this._showTileAABBs}set showTileAABBs(d){this._showTileAABBs!==d&&(this._showTileAABBs=d,d&&this._update())}_setCacheLimits(d,o){s.setCacheLimits(d,o)}get version(){return s.version}},NavigationControl:class{constructor(d){this.options=s.extend({},r_,d),this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",o=>o.preventDefault()),this.options.showZoom&&(s.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",o=>{this._map&&this._map.zoomIn({},{originalEvent:o})}),oe("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",o=>{this._map&&this._map.zoomOut({},{originalEvent:o})}),oe("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(s.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",o=>{const c=this._map;c&&(this.options.visualizePitch?c.resetNorthPitch({},{originalEvent:o}):c.resetNorth({},{originalEvent:o}))}),this._compassIcon=oe("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}_updateZoomButtons(){const d=this._map;if(!d)return;const o=d.getZoom(),c=o===d.getMaxZoom(),f=o===d.getMinZoom();this._zoomInButton.disabled=c,this._zoomOutButton.disabled=f,this._zoomInButton.setAttribute("aria-disabled",c.toString()),this._zoomOutButton.setAttribute("aria-disabled",f.toString())}_rotateCompassArrow(){const d=this._map;if(!d)return;const o=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(d.transform.pitch*(Math.PI/180)),.5)}) rotateX(${d.transform.pitch}deg) rotateZ(${d.transform.angle*(180/Math.PI)}deg)`:`rotate(${d.transform.angle*(180/Math.PI)}deg)`;d._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=o)})}onAdd(d){return this._map=d,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),d.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&d.on("pitch",this._rotateCompassArrow),d.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new o_(d,this._compass,this.options.visualizePitch)),this._container}onRemove(){const d=this._map;d&&(this._container.remove(),this.options.showZoom&&d.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&d.off("pitch",this._rotateCompassArrow),d.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0)}_createButton(d,o){const c=oe("button",d,this._container);return c.type="button",c.addEventListener("click",o),c}_setButtonTitle(d,o){if(!this._map)return;const c=this._map._getUIString(`NavigationControl.${o}`);d.setAttribute("aria-label",c),d.firstElementChild&&d.firstElementChild.setAttribute("title",c)}},GeolocateControl:class extends s.Evented{constructor(d){super(),this.options=s.extend({geolocation:s.window.navigator.geolocation},Lh,d),s.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=ra(this._updateMarkerRotation,20),this._numberOfWatches=0}onAdd(d){return this._map=d,this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){this._geolocationWatchID!==void 0&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1}_checkGeolocationSupport(d){const o=(c=!!this.options.geolocation)=>{this._supportsGeolocation=c,d(c)};this._supportsGeolocation!==void 0?d(this._supportsGeolocation):s.window.navigator.permissions!==void 0?s.window.navigator.permissions.query({name:"geolocation"}).then(c=>o(c.state!=="denied")).catch(()=>o()):o()}_isOutOfMapMaxBounds(d){const o=this._map.getMaxBounds(),c=d.coords;return!!o&&(c.longitudeo.getEast()||c.latitudeo.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}}_onSuccess(d){if(this._map){if(this._isOutOfMapMaxBounds(d))return this._setErrorState(),this.fire(new s.Event("outofmaxbounds",d)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=d,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(d),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(d),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new s.Event("geolocate",d)),this._finish()}}_updateCamera(d){const o=new s.LngLat(d.coords.longitude,d.coords.latitude),c=d.coords.accuracy,f=this._map.getBearing(),_=s.extend({bearing:f},this.options.fitBoundsOptions);this._map.fitBounds(o.toBounds(c),_,{geolocateSource:!0})}_updateMarker(d){if(d){const o=new s.LngLat(d.coords.longitude,d.coords.latitude);this._accuracyCircleMarker.setLngLat(o).addTo(this._map),this._userLocationDotMarker.setLngLat(o).addTo(this._map),this._accuracy=d.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){const d=this._map.transform,o=s.mercatorZfromAltitude(1,d._center.lat)*d.worldSize,c=Math.ceil(2*this._accuracy*o);this._circleElement.style.width=`${c}px`,this._circleElement.style.height=`${c}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&typeof this._heading=="number"?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(d){if(this._map){if(this.options.trackUserLocation)if(d.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const o=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(d.code===3&&this._noTimeout)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new s.Event("error",d)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(d){if(this._map!==void 0){if(this._container.addEventListener("contextmenu",o=>o.preventDefault()),this._geolocateButton=oe("button","mapboxgl-ctrl-geolocate",this._container),oe("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",d===!1){s.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const o=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}else{const o=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=oe("div","mapboxgl-user-location"),this._dotElement.appendChild(oe("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(oe("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new st({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=oe("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new st({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",o=>{o.geolocateSource||this._watchState!=="ACTIVE_LOCK"||o.originalEvent&&o.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new s.Event("trackuserlocationend")))})}}_onDeviceOrientation(d){this._userLocationDotMarker&&(d.webkitCompassHeading?this._heading=d.webkitCompassHeading:d.absolute===!0&&(this._heading=-1*d.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return s.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new s.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new s.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let d;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(d={maximumAge:6e5,timeout:0},this._noTimeout=!0):(d=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,d),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){const d=()=>{s.window.addEventListener("ondeviceorientationabsolute"in s.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientation)};s.window.DeviceMotionEvent!==void 0&&typeof s.window.DeviceMotionEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(o=>{o==="granted"&&d()}).catch(console.error):d()}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),s.window.removeEventListener("deviceorientation",this._onDeviceOrientation),s.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},AttributionControl:ht,ScaleControl:class{constructor(d){this.options=s.extend({},Rh,d),this._isNumberFormatSupported=function(){try{return new Intl.NumberFormat("en",{style:"unit",unitDisplay:"short",unit:"meter"}),!0}catch{return!1}}(),s.bindAll(["_update","_setScale","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_update(){const d=this.options.maxWidth||100,o=this._map,c=o._containerHeight/2,f=o._containerWidth/2-d/2,_=o.unproject([f,c]),v=o.unproject([f+d,c]),E=_.distanceTo(v);if(this.options.unit==="imperial"){const S=3.2808*E;S>5280?this._setScale(d,S/5280,"mile"):this._setScale(d,S,"foot")}else this.options.unit==="nautical"?this._setScale(d,E/1852,"nautical-mile"):E>=1e3?this._setScale(d,E/1e3,"kilometer"):this._setScale(d,E,"meter")}_setScale(d,o,c){this._map._requestDomTask(()=>{const f=function(v){const E=Math.pow(10,`${Math.floor(v)}`.length-1);let S=v/E;return S=S>=10?10:S>=5?5:S>=3?3:S>=2?2:S>=1?1:function(C){const z=Math.pow(10,Math.ceil(-Math.log(C)/Math.LN10));return Math.round(C*z)/z}(S),E*S}(o),_=f/o;this._container.innerHTML=this._isNumberFormatSupported&&c!=="nautical-mile"?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"short",unit:c}).format(f):`${f} ${Dh[c]}`,this._container.style.width=d*_+"px"})}onAdd(d){return this._map=d,this._language=d.getLanguage(),this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-scale",d.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0}_setLanguage(d){this._language=d,this._update()}setUnit(d){this.options.unit=d,this._update()}},FullscreenControl:class{constructor(d){this._fullscreen=!1,d&&d.container&&(d.container instanceof s.window.HTMLElement?this._container=d.container:s.warnOnce("Full screen control 'container' must be a DOM element.")),s.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in s.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in s.window.document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(d){return this._map=d,this._container||(this._container=this._map.getContainer()),this._controlContainer=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",s.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,s.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!s.window.document.fullscreenEnabled&&!s.window.document.webkitFullscreenEnabled)}_setupUI(){const d=this._fullscreenButton=oe("button","mapboxgl-ctrl-fullscreen",this._controlContainer);oe("span","mapboxgl-ctrl-icon",d).setAttribute("aria-hidden","true"),d.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),s.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){const d=this._getTitle();this._fullscreenButton.setAttribute("aria-label",d),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",d)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(s.window.document.fullscreenElement||s.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())}_onClickFullscreen(){this._isFullscreen()?s.window.document.exitFullscreen?s.window.document.exitFullscreen():s.window.document.webkitCancelFullScreen&&s.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends s.Evented{constructor(d){super(),this.options=s.extend(Object.create(Ph),d),s.bindAll(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(d&&d.className?d.className.trim().split(/\s+/):[])}addTo(d){return this._map&&this.remove(),this._map=d,this.options.closeOnClick&&d.on("preclick",this._onClose),this.options.closeOnMove&&d.on("move",this._onClose),d.on("remove",this.remove),this._update(),d._addPopup(this),this._focusFirstElement(),this._trackPointer?(d.on("mousemove",this._onMouseEvent),d.on("mouseup",this._onMouseEvent),d._canvasContainer.classList.add("mapboxgl-track-pointer")):d.on("move",this._update),this.fire(new s.Event("open")),this}isOpen(){return!!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const d=this._map;return d&&(d.off("move",this._update),d.off("move",this._onClose),d.off("preclick",this._onClose),d.off("click",this._onClose),d.off("remove",this.remove),d.off("mousemove",this._onMouseEvent),d.off("mouseup",this._onMouseEvent),d.off("drag",this._onMouseEvent),d._canvasContainer&&d._canvasContainer.classList.remove("mapboxgl-track-pointer"),d._removePopup(this),this._map=void 0),this.fire(new s.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(d){this._lngLat=s.LngLat.convert(d),this._pos=null,this._trackPointer=!1,this._update();const o=this._map;return o&&(o.on("move",this._update),o.off("mousemove",this._onMouseEvent),o._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const d=this._map;return d&&(d.off("move",this._update),d.on("mousemove",this._onMouseEvent),d.on("drag",this._onMouseEvent),d._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(d){return this.setDOMContent(s.window.document.createTextNode(d))}setHTML(d){const o=s.window.document.createDocumentFragment(),c=s.window.document.createElement("body");let f;for(c.innerHTML=d;f=c.firstChild,f;)o.appendChild(f);return this.setDOMContent(o)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(d){return this.options.maxWidth=d,this._update(),this}setDOMContent(d){let o=this._content;if(o)for(;o.hasChildNodes();)o.firstChild&&o.removeChild(o.firstChild);else o=this._content=oe("div","mapboxgl-popup-content",this._container||void 0);if(o.appendChild(d),this.options.closeButton){const c=this._closeButton=oe("button","mapboxgl-popup-close-button",o);c.type="button",c.setAttribute("aria-label","Close popup"),c.setAttribute("aria-hidden","true"),c.innerHTML="×",c.addEventListener("click",this._onClose)}return this._update(),this._focusFirstElement(),this}addClassName(d){return this._classList.add(d),this._updateClassList(),this}removeClassName(d){return this._classList.delete(d),this._updateClassList(),this}setOffset(d){return this.options.offset=d,this._update(),this}toggleClassName(d){let o;return this._classList.delete(d)?o=!1:(this._classList.add(d),o=!0),this._updateClassList(),o}_onMouseEvent(d){this._update(d.point)}_getAnchor(d){if(this.options.anchor)return this.options.anchor;const o=this._map,c=this._container,f=this._pos;if(!o||!c||!f)return"bottom";const _=c.offsetWidth,v=c.offsetHeight,E=f.x<_/2,S=f.x>o.transform.width-_/2;if(f.y+do.transform.height-v){if(E)return"bottom-left";if(S)return"bottom-right"}return E?"left":S?"right":"bottom"}_updateClassList(){const d=this._container;if(!d)return;const o=[...this._classList];o.push("mapboxgl-popup"),this._anchor&&o.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&o.push("mapboxgl-popup-track-pointer"),d.className=o.join(" ")}_update(d){const o=this._map,c=this._content;if(!o||!this._lngLat&&!this._trackPointer||!c)return;let f=this._container;if(f||(f=this._container=oe("div","mapboxgl-popup",o.getContainer()),this._tip=oe("div","mapboxgl-popup-tip",f),f.appendChild(c)),this.options.maxWidth&&f.style.maxWidth!==this.options.maxWidth&&(f.style.maxWidth=this.options.maxWidth),o.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=aa(this._lngLat,this._pos,o.transform)),!this._trackPointer||d){const _=this._pos=this._trackPointer&&d?d:o.project(this._lngLat),v=tf(this.options.offset),E=this._anchor=this._getAnchor(v.y),S=tf(this.options.offset,E),C=_.add(S).round();o._requestDomTask(()=>{this._container&&E&&(this._container.style.transform=`${_s[E]} translate(${C.x}px,${C.y}px)`)})}if(!this._marker&&o._showingGlobe()){const _=s.isLngLatBehindGlobe(o.transform,this._lngLat)?0:1;this._setOpacity(_)}this._updateClassList()}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const d=this._container.querySelector(i_);d&&d.focus()}_onClose(){this.remove()}_setOpacity(d){this._container&&(this._container.style.opacity=`${d}`),this._content&&(this._content.style.pointerEvents=d?"auto":"none")}},Marker:st,Style:jr,LngLat:s.LngLat,LngLatBounds:s.LngLatBounds,Point:s.Point,MercatorCoordinate:s.MercatorCoordinate,FreeCameraOptions:Up,Evented:s.Evented,config:s.config,prewarm:function(){$s().acquire(Fr)},clearPrewarmedResources:function(){const d=Ci;d&&(d.isPreloaded()&&d.numActive()===1?(d.release(Fr),Ci=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return s.config.ACCESS_TOKEN},set accessToken(d){s.config.ACCESS_TOKEN=d},get baseApiUrl(){return s.config.API_URL},set baseApiUrl(d){s.config.API_URL=d},get workerCount(){return ii.workerCount},set workerCount(d){ii.workerCount=d},get maxParallelImageRequests(){return s.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(d){s.config.MAX_PARALLEL_IMAGE_REQUESTS=d},clearStorage(d){s.clearTileCache(d)},workerUrl:"",workerClass:null,setNow:s.exported.setNow,restoreNow:s.exported.restoreNow};return la});var T=g;return T})})(KA);var wx=KA.exports;const b4=sv(wx),E4=AM({__proto__:null,default:b4},[wx]);const e0="pk.eyJ1IjoicnVyYWxpbm5vIiwiYSI6ImNqeHl0cW0xODBlMm0zY2x0dXltYzRuazUifQ.zZBovoCHzLIW0wCZveEKzA",p2="/examples/cori.data.rin/rin_service_areas.geojson";function T4(){var x;const t=ft.useContext(_A),i=ft.useRef(null),l=ft.useMemo(()=>(T,s,M,F)=>{console.log("Set popup: ",i.current);const q=new wx.Popup;return F.hasOwnProperty(M)?(q.setLngLat([T,s]),q.setText(F[M])):q.setText("Hello world!"),q},[]);let h=!1;function g(T,s,M,F,q,X,oe){return ft.createElement(yA,{ref:T,longitude:s,latitude:M,color:F,popup:q(s,M,X,oe),key:oe[X]+"-marker"})}return ft.useEffect(()=>{if(t&&!t.data.hasOwnProperty("placeData")&&!h){console.log("Initial place data fetch..."),console.log(p2),h=!0;const T=window.document.getElementById("info-wrapper");T!==null&&(T.style.opacity="1.0",T.style.position="absolute",T.style.background=`rgba(46, 60, 67, 0.5) url('${t.baseURL}/images/loading.gif') no-repeat fixed center`,T.style.backgroundSize="20px"),t.setData({...(t==null?void 0:t.data)||{},placeData:null}),t==null||t.apiClient.get(p2).then(s=>{s&&s.hasOwnProperty("data")&&(console.log("Data result:",s.data.features),t.setData({...t.data,placeData:s.data.features}),h=!1,T!==null&&(T.style.opacity="0.0",T.style.pointerEvents="none",setTimeout(()=>{T.style.background="transparent"},533)))}).catch(s=>{console.error("Error fetching data:",s),h=!1,T!==null&&(T.style.opacity="0.0",T.style.pointerEvents="none",setTimeout(()=>{T.style.background="transparent"},533))})}},[t==null?void 0:t.data]),ft.createElement(ft.Fragment,null,ft.createElement("div",{className:"slippy-map"},ft.createElement(Z3,{mapboxAccessToken:e0,initialViewState:{latitude:40,longitude:-100,pitch:45,zoom:3.5},style:{width:600,height:400},mapStyle:`https://api.mapbox.com/styles/v1/ruralinno/cl010e7b7001p15pe3l0306hv?access_token=${e0}`},!!(t!=null&&t.data)&&!!((x=t==null?void 0:t.data)!=null&&x.placeData)&&t.data.placeData.length>0&&!!i&&typeof i!==void 0&&t.data.placeData.map(T=>{console.log(T);const s=typeof T.geometry.coordinates[0]=="number"?T.geometry.coordinates[0]:0,M=typeof T.geometry.coordinates[1]=="number"?T.geometry.coordinates[1]:0;return g(i,s,M,"#247dc9",l,"rin_community",T.properties)}),ft.createElement(i4,{mapboxAccessToken:e0,position:"top-right"}),ft.createElement(H3,{position:"top-right"}),ft.createElement(W3,{position:"top-right"}),ft.createElement(X3,{position:"bottom-left",unit:"imperial"}))),ft.createElement("div",{id:"info-wrapper",style:{pointerEvents:"none",position:"absolute",top:0,minWidth:"100vw",minHeight:"100vh",transition:"opacity 5.05s ease-in-out 0.025s",opacity:"initial",background:"transparent",backgroundSize:"20px",zIndex:100}}))}const S4="https://cori-risi-apps.s3.amazonaws.com";function A4(t){TS(t).render(ft.createElement(ft.StrictMode,null,ft.createElement(m3,{baseURL:S4},ft.createElement(T4,null))))}A4(document.getElementById("app")); diff --git a/assets/index-1c2d9ba0.css b/assets/index-1c2d9ba0.css new file mode 100644 index 0000000..ed466c7 --- /dev/null +++ b/assets/index-1c2d9ba0.css @@ -0,0 +1 @@ +.mapboxgl-map{-webkit-tap-highlight-color:rgb(0 0 0/0);font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:rgba(0,0,0,.7);color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}:root,[data-amplify-theme]{--amplify-components-button-link-color: #ffffff;--amplify-components-button-link-loading-background-color: #2c3e50;--amplify-components-button-link-loading-border-color: #1a242f;--amplify-components-button-link-disabled-background-color: #2c3e50;--amplify-components-button-link-disabled-border-color: #1a242f;--amplify-components-button-link-active-border-color: #1a242f;--amplify-components-button-link-focus-border-color: #1a242f;--amplify-components-button-link-hover-border-color: #1a242f;--amplify-components-button-link-border-color: #1a242f;--amplify-components-button-link-background-color: #2c3e50;--amplify-components-button-menu-background-color: #2c3e50;--amplify-components-button-primary-background-color: #2c3e50;--amplify-components-button-primary-active-background-color: #1a242f;--amplify-components-button-primary-active-border-color: #1a242f;--amplify-components-button-primary-focus-background-color: #1a242f;--amplify-components-button-primary-focus-border-color: #1a242f;--amplify-components-button-primary-hover-background-color: #1a242f;--amplify-components-button-primary-hover-border-color: #1a242f;--amplify-components-button-primary-loading-border-color: #1a242f;--amplify-components-button-primary-disabled-border-color: #1a242f;--amplify-components-button-primary-border-color: #1a242f;--amplify-components-button-disabled-background-color: #2c3e50;--amplify-components-button-loading-background-color: #2c3e50;--amplify-components-tabs-item-active-color: #18bc9c;--amplify-components-tabs-item-border-style: 4px solid #2c3e50;--amplify-components-tabs-item-active-border-color: #2c3e50}[data-amplify-theme=default-theme] [data-amplify-authenticator] [data-amplify-router]{background-color:var(--amplify-components-authenticator-router-background-color);box-shadow:var(--amplify-components-authenticator-router-box-shadow);border-color:transparent}.ApiContextProvider_amplify-button--primary__x3TB9{border-width:var(--amplify-components-button-primary-border-width);background-color:var(--amplify-components-button-primary-background-color);border-color:var(--amplify-components-button-primary-border-color);color:var(--amplify-components-button-primary-color);--amplify-internal-button-disabled-border-color: var( --amplify-components-button-primary-disabled-border-color );--amplify-internal-button-disabled-background-color: var( --amplify-components-button-primary-disabled-background-color );--amplify-internal-button-disabled-color: var( --amplify-components-button-primary-disabled-color );--amplify-internal-button-loading-background-color: var( --amplify-components-button-primary-loading-background-color );--amplify-internal-button-loading-border-color: var( --amplify-components-button-primary-loading-border-color );--amplify-internal-button-loading-color: var( --amplify-components-button-primary-loading-color )}.ApiContextProvider_amplify-button--primary__x3TB9:hover{background-color:var(--amplify-components-button-primary-hover-background-color);border-color:var(--amplify-components-button-primary-hover-border-color);color:var(--amplify-components-button-primary-hover-color)}.ApiContextProvider_amplify-button--primary__x3TB9:focus{background-color:var(--amplify-components-button-primary-focus-background-color);border-color:var(--amplify-components-button-primary-focus-border-color);color:var(--amplify-components-button-primary-focus-color);box-shadow:var(--amplify-components-button-primary-focus-box-shadow)}.ApiContextProvider_amplify-button--primary__x3TB9:active{background-color:var(--amplify-components-button-primary-active-background-color);border-color:var(--amplify-components-button-primary-active-border-color);color:var(--amplify-components-button-primary-active-color)}.ApiContextProvider_amplify-tabs-item__-6nTX[data-state=active]{color:var(--amplify-components-tabs-item-active-color);border-color:var(--amplify-components-tabs-item-active-border-color);background-color:var(--amplify-components-tabs-item-active-background-color);transition-property:none}.ApiContextProvider_amplify-input__ycAUW.ApiContextProvider_amplify-field-group__control__cRTcr{text-align:left}.CategoricalLegend-module_categorical-legend__KiFcS{display:flex;flex-wrap:wrap;margin:1.5rem 0px}.CategoricalLegend-module_categorical-legend__KiFcS .CategoricalLegend-module_entry__4zxZU{display:flex;justify-content:space-around;margin:0 20px 5px 0}.CategoricalLegend-module_categorical-legend__KiFcS .CategoricalLegend-module_entry__4zxZU .CategoricalLegend-module_key__1Hgb-{height:1rem;width:1rem;opacity:.9}.CategoricalLegend-module_categorical-legend__KiFcS .CategoricalLegend-module_entry__4zxZU p{line-height:1rem;font-size:1rem;margin:0 0 0 6px}.HoverInfo-module_tooltip__3wVpX{width:320px;border:1px solid black;background-color:#fff;padding:10px;position:absolute;z-index:10;pointer-events:none}.HoverInfo-module_tooltip__3wVpX h3{margin:.5rem 0rem}.HoverInfo-module_tooltip__3wVpX .HoverInfo-module_details__4eyQ7{margin:.1rem 0rem;line-height:1.6}.HoverInfo-module_tooltip__3wVpX .HoverInfo-module_prop-score__DKjwo{font-weight:400;margin:0}.slippy-map{position:relative;width:100vw;height:100vh}.slippy-map>*{overflow:hidden}.slippy-map>.mapboxgl-map{width:100%!important;height:100%!important}.tooltip{width:320px;border:1px solid black;background-color:#fff;padding:10px;position:absolute;z-index:10;pointer-events:none}.tooltip h3{margin:.5rem 0rem}.tooltip .details{margin:.1rem 0rem;line-height:1.6}.tooltip .prop-score{font-weight:400;margin:0}.tooltip .click-prompt{font-style:italic;font-weight:600;margin-top:5px}.tooltip p{margin:0}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body{font-family:Montserrat,Arial,Helvetica,sans-serif}h1{font-size:2rem}h2{font-size:1.8rem}h3{font-size:1.6rem}h4{font-size:1.4rem}h5{font-size:1.2rem}h6{font-size:1rem}h1,h2,h3,h4,h5,h6{font-family:Montserrat,Arial,Helvetica,sans-serif;margin-top:.5em;margin-bottom:.5em}p,a{font-family:Montserrat,Arial,Helvetica,sans-serif;line-height:1.4}a{margin-top:0;margin-bottom:0;color:#00835d;text-decoration:underline;font-weight:700}a:hover{text-decoration:underline;cursor:pointer}.control-panel{position:absolute;top:0;right:0;max-width:320px;background:#fff;box-shadow:0 2px 4px #0000004d;padding:12px 24px;margin:20px;font-size:13px;line-height:2;color:#6b6b76;text-transform:uppercase;outline:none;z-index:2}.mapboxgl-ctrl,.mapboxgl-popup{font-family:Bitter,serif}.mapboxgl-popup .mapboxgl-popup-content{font-family:Bitter,serif!important;font-size:12pt;background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:12px 20px;pointer-events:auto;position:relative} diff --git a/assets/index-7d5d06d7.js b/assets/index-7d5d06d7.js new file mode 100644 index 0000000..8441398 --- /dev/null +++ b/assets/index-7d5d06d7.js @@ -0,0 +1,1388 @@ +function AM(t,i){for(var l=0;lh[g]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const g of document.querySelectorAll('link[rel="modulepreload"]'))h(g);new MutationObserver(g=>{for(const x of g)if(x.type==="childList")for(const T of x.addedNodes)T.tagName==="LINK"&&T.rel==="modulepreload"&&h(T)}).observe(document,{childList:!0,subtree:!0});function l(g){const x={};return g.integrity&&(x.integrity=g.integrity),g.referrerPolicy&&(x.referrerPolicy=g.referrerPolicy),g.crossOrigin==="use-credentials"?x.credentials="include":g.crossOrigin==="anonymous"?x.credentials="omit":x.credentials="same-origin",x}function h(g){if(g.ep)return;g.ep=!0;const x=l(g);fetch(g.href,x)}})();var Co=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function sv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var f2={exports:{}},Yt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var up=Symbol.for("react.element"),CM=Symbol.for("react.portal"),IM=Symbol.for("react.fragment"),MM=Symbol.for("react.strict_mode"),kM=Symbol.for("react.profiler"),PM=Symbol.for("react.provider"),zM=Symbol.for("react.context"),LM=Symbol.for("react.forward_ref"),RM=Symbol.for("react.suspense"),DM=Symbol.for("react.memo"),OM=Symbol.for("react.lazy"),Jw=Symbol.iterator;function BM(t){return t===null||typeof t!="object"?null:(t=Jw&&t[Jw]||t["@@iterator"],typeof t=="function"?t:null)}var m2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g2=Object.assign,_2={};function Lu(t,i,l){this.props=t,this.context=i,this.refs=_2,this.updater=l||m2}Lu.prototype.isReactComponent={};Lu.prototype.setState=function(t,i){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,i,"setState")};Lu.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function y2(){}y2.prototype=Lu.prototype;function av(t,i,l){this.props=t,this.context=i,this.refs=_2,this.updater=l||m2}var lv=av.prototype=new y2;lv.constructor=av;g2(lv,Lu.prototype);lv.isPureReactComponent=!0;var Qw=Array.isArray,v2=Object.prototype.hasOwnProperty,cv={current:null},x2={key:!0,ref:!0,__self:!0,__source:!0};function w2(t,i,l){var h,g={},x=null,T=null;if(i!=null)for(h in i.ref!==void 0&&(T=i.ref),i.key!==void 0&&(x=""+i.key),i)v2.call(i,h)&&!x2.hasOwnProperty(h)&&(g[h]=i[h]);var s=arguments.length-2;if(s===1)g.children=l;else if(1>>1,dn=Ke[Bt];if(0>>1;Bt<_n;){var ei=2*(Bt+1)-1,Wi=Ke[ei],ti=ei+1,pi=Ke[ti];if(0>g(Wi,xt))tig(pi,Wi)?(Ke[Bt]=pi,Ke[ti]=xt,Bt=ti):(Ke[Bt]=Wi,Ke[ei]=xt,Bt=ei);else if(tig(pi,xt))Ke[Bt]=pi,Ke[ti]=xt,Bt=ti;else break e}}return Tt}function g(Ke,Tt){var xt=Ke.sortIndex-Tt.sortIndex;return xt!==0?xt:Ke.id-Tt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var x=performance;t.unstable_now=function(){return x.now()}}else{var T=Date,s=T.now();t.unstable_now=function(){return T.now()-s}}var M=[],F=[],q=1,X=null,oe=3,Ae=!1,fe=!1,ke=!1,ze=typeof setTimeout=="function"?setTimeout:null,ue=typeof clearTimeout=="function"?clearTimeout:null,re=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function le(Ke){for(var Tt=l(F);Tt!==null;){if(Tt.callback===null)h(F);else if(Tt.startTime<=Ke)h(F),Tt.sortIndex=Tt.expirationTime,i(M,Tt);else break;Tt=l(F)}}function De(Ke){if(ke=!1,le(Ke),!fe)if(l(M)!==null)fe=!0,wr(je);else{var Tt=l(F);Tt!==null&&Or(De,Tt.startTime-Ke)}}function je(Ke,Tt){fe=!1,ke&&(ke=!1,ue(ut),ut=-1),Ae=!0;var xt=oe;try{for(le(Tt),X=l(M);X!==null&&(!(X.expirationTime>Tt)||Ke&&!di());){var Bt=X.callback;if(typeof Bt=="function"){X.callback=null,oe=X.priorityLevel;var dn=Bt(X.expirationTime<=Tt);Tt=t.unstable_now(),typeof dn=="function"?X.callback=dn:X===l(M)&&h(M),le(Tt)}else h(M);X=l(M)}if(X!==null)var _n=!0;else{var ei=l(F);ei!==null&&Or(De,ei.startTime-Tt),_n=!1}return _n}finally{X=null,oe=xt,Ae=!1}}var tt=!1,lt=null,ut=-1,Ve=5,jt=-1;function di(){return!(t.unstable_now()-jtKe||125Bt?(Ke.sortIndex=xt,i(F,Ke),l(M)===null&&Ke===l(F)&&(ke?(ue(ut),ut=-1):ke=!0,Or(De,xt-Bt))):(Ke.sortIndex=dn,i(M,Ke),fe||Ae||(fe=!0,wr(je))),Ke},t.unstable_shouldYield=di,t.unstable_wrapCallback=function(Ke){var Tt=oe;return function(){var xt=oe;oe=Tt;try{return Ke.apply(this,arguments)}finally{oe=xt}}}})(S2);T2.exports=S2;var VM=T2.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var GM=ft,Lr=VM;function it(t){for(var i="https://reactjs.org/docs/error-decoder.html?invariant="+t,l=1;l"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),t0=Object.prototype.hasOwnProperty,$M=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,tb={},nb={};function qM(t){return t0.call(nb,t)?!0:t0.call(tb,t)?!1:$M.test(t)?nb[t]=!0:(tb[t]=!0,!1)}function ZM(t,i,l,h){if(l!==null&&l.type===0)return!1;switch(typeof i){case"function":case"symbol":return!0;case"boolean":return h?!1:l!==null?!l.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function WM(t,i,l,h){if(i===null||typeof i>"u"||ZM(t,i,l,h))return!0;if(h)return!1;if(l!==null)switch(l.type){case 3:return!i;case 4:return i===!1;case 5:return isNaN(i);case 6:return isNaN(i)||1>i}return!1}function tr(t,i,l,h,g,x,T){this.acceptsBooleans=i===2||i===3||i===4,this.attributeName=h,this.attributeNamespace=g,this.mustUseProperty=l,this.propertyName=t,this.type=i,this.sanitizeURL=x,this.removeEmptyString=T}var Pi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Pi[t]=new tr(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var i=t[0];Pi[i]=new tr(i,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Pi[t]=new tr(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Pi[t]=new tr(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Pi[t]=new tr(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Pi[t]=new tr(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Pi[t]=new tr(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Pi[t]=new tr(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Pi[t]=new tr(t,5,!1,t.toLowerCase(),null,!1,!1)});var hv=/[\-:]([a-z])/g;function dv(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Pi[t]=new tr(t,1,!1,t.toLowerCase(),null,!1,!1)});Pi.xlinkHref=new tr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Pi[t]=new tr(t,1,!1,t.toLowerCase(),null,!0,!0)});function pv(t,i,l,h){var g=Pi.hasOwnProperty(i)?Pi[i]:null;(g!==null?g.type!==0:h||!(2s||g[T]!==x[s]){var M=` +`+g[T].replace(" at new "," at ");return t.displayName&&M.includes("")&&(M=M.replace("",t.displayName)),M}while(1<=T&&0<=s);break}}}finally{vy=!1,Error.prepareStackTrace=l}return(t=t?t.displayName||t.name:"")?Id(t):""}function HM(t){switch(t.tag){case 5:return Id(t.type);case 16:return Id("Lazy");case 13:return Id("Suspense");case 19:return Id("SuspenseList");case 0:case 2:case 15:return t=xy(t.type,!1),t;case 11:return t=xy(t.type.render,!1),t;case 1:return t=xy(t.type,!0),t;default:return""}}function o0(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case ru:return"Fragment";case iu:return"Portal";case n0:return"Profiler";case fv:return"StrictMode";case i0:return"Suspense";case r0:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case I2:return(t.displayName||"Context")+".Consumer";case C2:return(t._context.displayName||"Context")+".Provider";case mv:var i=t.render;return t=t.displayName,t||(t=i.displayName||i.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case gv:return i=t.displayName||null,i!==null?i:o0(t.type)||"Memo";case Ea:i=t._payload,t=t._init;try{return o0(t(i))}catch{}}return null}function XM(t){var i=t.type;switch(t.tag){case 24:return"Cache";case 9:return(i.displayName||"Context")+".Consumer";case 10:return(i._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=i.render,t=t.displayName||t.name||"",i.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return o0(i);case 8:return i===fv?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i}return null}function Fa(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function k2(t){var i=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function KM(t){var i=k2(t)?"checked":"value",l=Object.getOwnPropertyDescriptor(t.constructor.prototype,i),h=""+t[i];if(!t.hasOwnProperty(i)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var g=l.get,x=l.set;return Object.defineProperty(t,i,{configurable:!0,get:function(){return g.call(this)},set:function(T){h=""+T,x.call(this,T)}}),Object.defineProperty(t,i,{enumerable:l.enumerable}),{getValue:function(){return h},setValue:function(T){h=""+T},stopTracking:function(){t._valueTracker=null,delete t[i]}}}}function qf(t){t._valueTracker||(t._valueTracker=KM(t))}function P2(t){if(!t)return!1;var i=t._valueTracker;if(!i)return!0;var l=i.getValue(),h="";return t&&(h=k2(t)?t.checked?"true":"false":t.value),t=h,t!==l?(i.setValue(t),!0):!1}function Pm(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function s0(t,i){var l=i.checked;return Xn({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:l??t._wrapperState.initialChecked})}function rb(t,i){var l=i.defaultValue==null?"":i.defaultValue,h=i.checked!=null?i.checked:i.defaultChecked;l=Fa(i.value!=null?i.value:l),t._wrapperState={initialChecked:h,initialValue:l,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function z2(t,i){i=i.checked,i!=null&&pv(t,"checked",i,!1)}function a0(t,i){z2(t,i);var l=Fa(i.value),h=i.type;if(l!=null)h==="number"?(l===0&&t.value===""||t.value!=l)&&(t.value=""+l):t.value!==""+l&&(t.value=""+l);else if(h==="submit"||h==="reset"){t.removeAttribute("value");return}i.hasOwnProperty("value")?l0(t,i.type,l):i.hasOwnProperty("defaultValue")&&l0(t,i.type,Fa(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(t.defaultChecked=!!i.defaultChecked)}function ob(t,i,l){if(i.hasOwnProperty("value")||i.hasOwnProperty("defaultValue")){var h=i.type;if(!(h!=="submit"&&h!=="reset"||i.value!==void 0&&i.value!==null))return;i=""+t._wrapperState.initialValue,l||i===t.value||(t.value=i),t.defaultValue=i}l=t.name,l!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,l!==""&&(t.name=l)}function l0(t,i,l){(i!=="number"||Pm(t.ownerDocument)!==t)&&(l==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+l&&(t.defaultValue=""+l))}var Md=Array.isArray;function gu(t,i,l,h){if(t=t.options,i){i={};for(var g=0;g"+i.valueOf().toString()+"",i=Zf.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;i.firstChild;)t.appendChild(i.firstChild)}});function Gd(t,i){if(i){var l=t.firstChild;if(l&&l===t.lastChild&&l.nodeType===3){l.nodeValue=i;return}}t.textContent=i}var zd={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},YM=["Webkit","ms","Moz","O"];Object.keys(zd).forEach(function(t){YM.forEach(function(i){i=i+t.charAt(0).toUpperCase()+t.substring(1),zd[i]=zd[t]})});function O2(t,i,l){return i==null||typeof i=="boolean"||i===""?"":l||typeof i!="number"||i===0||zd.hasOwnProperty(t)&&zd[t]?(""+i).trim():i+"px"}function B2(t,i){t=t.style;for(var l in i)if(i.hasOwnProperty(l)){var h=l.indexOf("--")===0,g=O2(l,i[l],h);l==="float"&&(l="cssFloat"),h?t.setProperty(l,g):t[l]=g}}var JM=Xn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function h0(t,i){if(i){if(JM[t]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(it(137,t));if(i.dangerouslySetInnerHTML!=null){if(i.children!=null)throw Error(it(60));if(typeof i.dangerouslySetInnerHTML!="object"||!("__html"in i.dangerouslySetInnerHTML))throw Error(it(61))}if(i.style!=null&&typeof i.style!="object")throw Error(it(62))}}function d0(t,i){if(t.indexOf("-")===-1)return typeof i.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var p0=null;function _v(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var f0=null,_u=null,yu=null;function lb(t){if(t=pp(t)){if(typeof f0!="function")throw Error(it(280));var i=t.stateNode;i&&(i=fg(i),f0(t.stateNode,t.type,i))}}function F2(t){_u?yu?yu.push(t):yu=[t]:_u=t}function N2(){if(_u){var t=_u,i=yu;if(yu=_u=null,lb(t),i)for(t=0;t>>=0,t===0?32:31-(ck(t)/uk|0)|0}var Wf=64,Hf=4194304;function kd(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Dm(t,i){var l=t.pendingLanes;if(l===0)return 0;var h=0,g=t.suspendedLanes,x=t.pingedLanes,T=l&268435455;if(T!==0){var s=T&~g;s!==0?h=kd(s):(x&=T,x!==0&&(h=kd(x)))}else T=l&~g,T!==0?h=kd(T):x!==0&&(h=kd(x));if(h===0)return 0;if(i!==0&&i!==h&&!(i&g)&&(g=h&-h,x=i&-i,g>=x||g===16&&(x&4194240)!==0))return i;if(h&4&&(h|=l&16),i=t.entangledLanes,i!==0)for(t=t.entanglements,i&=h;0l;l++)i.push(t);return i}function hp(t,i,l){t.pendingLanes|=i,i!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,i=31-Io(i),t[i]=l}function fk(t,i){var l=t.pendingLanes&~i;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=i,t.mutableReadLanes&=i,t.entangledLanes&=i,i=t.entanglements;var h=t.eventTimes;for(t=t.expirationTimes;0=Rd),_b=String.fromCharCode(32),yb=!1;function oT(t,i){switch(t){case"keyup":return Vk.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function sT(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ou=!1;function $k(t,i){switch(t){case"compositionend":return sT(i);case"keypress":return i.which!==32?null:(yb=!0,_b);case"textInput":return t=i.data,t===_b&&yb?null:t;default:return null}}function qk(t,i){if(ou)return t==="compositionend"||!Sv&&oT(t,i)?(t=iT(),gm=bv=Ca=null,ou=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:l,offset:i-t};t=h}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=bb(l)}}function uT(t,i){return t&&i?t===i?!0:t&&t.nodeType===3?!1:i&&i.nodeType===3?uT(t,i.parentNode):"contains"in t?t.contains(i):t.compareDocumentPosition?!!(t.compareDocumentPosition(i)&16):!1:!1}function hT(){for(var t=window,i=Pm();i instanceof t.HTMLIFrameElement;){try{var l=typeof i.contentWindow.location.href=="string"}catch{l=!1}if(l)t=i.contentWindow;else break;i=Pm(t.document)}return i}function Av(t){var i=t&&t.nodeName&&t.nodeName.toLowerCase();return i&&(i==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||i==="textarea"||t.contentEditable==="true")}function eP(t){var i=hT(),l=t.focusedElem,h=t.selectionRange;if(i!==l&&l&&l.ownerDocument&&uT(l.ownerDocument.documentElement,l)){if(h!==null&&Av(l)){if(i=h.start,t=h.end,t===void 0&&(t=i),"selectionStart"in l)l.selectionStart=i,l.selectionEnd=Math.min(t,l.value.length);else if(t=(i=l.ownerDocument||document)&&i.defaultView||window,t.getSelection){t=t.getSelection();var g=l.textContent.length,x=Math.min(h.start,g);h=h.end===void 0?x:Math.min(h.end,g),!t.extend&&x>h&&(g=h,h=x,x=g),g=Eb(l,x);var T=Eb(l,h);g&&T&&(t.rangeCount!==1||t.anchorNode!==g.node||t.anchorOffset!==g.offset||t.focusNode!==T.node||t.focusOffset!==T.offset)&&(i=i.createRange(),i.setStart(g.node,g.offset),t.removeAllRanges(),x>h?(t.addRange(i),t.extend(T.node,T.offset)):(i.setEnd(T.node,T.offset),t.addRange(i)))}}for(i=[],t=l;t=t.parentNode;)t.nodeType===1&&i.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,su=null,x0=null,Od=null,w0=!1;function Tb(t,i,l){var h=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;w0||su==null||su!==Pm(h)||(h=su,"selectionStart"in h&&Av(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),Od&&Xd(Od,h)||(Od=h,h=Fm(x0,"onSelect"),0cu||(t.current=C0[cu],C0[cu]=null,cu--)}function Mn(t,i){cu++,C0[cu]=t.current,t.current=i}var Na={},qi=Ga(Na),gr=Ga(!1),Zl=Na;function Su(t,i){var l=t.type.contextTypes;if(!l)return Na;var h=t.stateNode;if(h&&h.__reactInternalMemoizedUnmaskedChildContext===i)return h.__reactInternalMemoizedMaskedChildContext;var g={},x;for(x in l)g[x]=i[x];return h&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=i,t.__reactInternalMemoizedMaskedChildContext=g),g}function _r(t){return t=t.childContextTypes,t!=null}function Um(){Rn(gr),Rn(qi)}function Pb(t,i,l){if(qi.current!==Na)throw Error(it(168));Mn(qi,i),Mn(gr,l)}function xT(t,i,l){var h=t.stateNode;if(i=i.childContextTypes,typeof h.getChildContext!="function")return l;h=h.getChildContext();for(var g in h)if(!(g in i))throw Error(it(108,XM(t)||"Unknown",g));return Xn({},l,h)}function jm(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Na,Zl=qi.current,Mn(qi,t),Mn(gr,gr.current),!0}function zb(t,i,l){var h=t.stateNode;if(!h)throw Error(it(169));l?(t=xT(t,i,Zl),h.__reactInternalMemoizedMergedChildContext=t,Rn(gr),Rn(qi),Mn(qi,t)):Rn(gr),Mn(gr,l)}var Ms=null,mg=!1,Ry=!1;function wT(t){Ms===null?Ms=[t]:Ms.push(t)}function dP(t){mg=!0,wT(t)}function $a(){if(!Ry&&Ms!==null){Ry=!0;var t=0,i=bn;try{var l=Ms;for(bn=1;t>=T,g-=T,zs=1<<32-Io(i)+g|l<ut?(Ve=lt,lt=null):Ve=lt.sibling;var jt=oe(ue,lt,le[ut],De);if(jt===null){lt===null&&(lt=Ve);break}t&<&&jt.alternate===null&&i(ue,lt),re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt,lt=Ve}if(ut===le.length)return l(ue,lt),Bn&&Bl(ue,ut),je;if(lt===null){for(;utut?(Ve=lt,lt=null):Ve=lt.sibling;var di=oe(ue,lt,jt.value,De);if(di===null){lt===null&&(lt=Ve);break}t&<&&di.alternate===null&&i(ue,lt),re=x(di,re,ut),tt===null?je=di:tt.sibling=di,tt=di,lt=Ve}if(jt.done)return l(ue,lt),Bn&&Bl(ue,ut),je;if(lt===null){for(;!jt.done;ut++,jt=le.next())jt=X(ue,jt.value,De),jt!==null&&(re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt);return Bn&&Bl(ue,ut),je}for(lt=h(ue,lt);!jt.done;ut++,jt=le.next())jt=Ae(lt,ue,ut,jt.value,De),jt!==null&&(t&&jt.alternate!==null&<.delete(jt.key===null?ut:jt.key),re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt);return t&<.forEach(function(St){return i(ue,St)}),Bn&&Bl(ue,ut),je}function ze(ue,re,le,De){if(typeof le=="object"&&le!==null&&le.type===ru&&le.key===null&&(le=le.props.children),typeof le=="object"&&le!==null){switch(le.$$typeof){case $f:e:{for(var je=le.key,tt=re;tt!==null;){if(tt.key===je){if(je=le.type,je===ru){if(tt.tag===7){l(ue,tt.sibling),re=g(tt,le.props.children),re.return=ue,ue=re;break e}}else if(tt.elementType===je||typeof je=="object"&&je!==null&&je.$$typeof===Ea&&Db(je)===tt.type){l(ue,tt.sibling),re=g(tt,le.props),re.ref=Ed(ue,tt,le),re.return=ue,ue=re;break e}l(ue,tt);break}else i(ue,tt);tt=tt.sibling}le.type===ru?(re=ql(le.props.children,ue.mode,De,le.key),re.return=ue,ue=re):(De=Tm(le.type,le.key,le.props,null,ue.mode,De),De.ref=Ed(ue,re,le),De.return=ue,ue=De)}return T(ue);case iu:e:{for(tt=le.key;re!==null;){if(re.key===tt)if(re.tag===4&&re.stateNode.containerInfo===le.containerInfo&&re.stateNode.implementation===le.implementation){l(ue,re.sibling),re=g(re,le.children||[]),re.return=ue,ue=re;break e}else{l(ue,re);break}else i(ue,re);re=re.sibling}re=Vy(le,ue.mode,De),re.return=ue,ue=re}return T(ue);case Ea:return tt=le._init,ze(ue,re,tt(le._payload),De)}if(Md(le))return fe(ue,re,le,De);if(yd(le))return ke(ue,re,le,De);tm(ue,le)}return typeof le=="string"&&le!==""||typeof le=="number"?(le=""+le,re!==null&&re.tag===6?(l(ue,re.sibling),re=g(re,le),re.return=ue,ue=re):(l(ue,re),re=jy(le,ue.mode,De),re.return=ue,ue=re),T(ue)):l(ue,re)}return ze}var Cu=ST(!0),AT=ST(!1),$m=Ga(null),qm=null,du=null,kv=null;function Pv(){kv=du=qm=null}function zv(t){var i=$m.current;Rn($m),t._currentValue=i}function k0(t,i,l){for(;t!==null;){var h=t.alternate;if((t.childLanes&i)!==i?(t.childLanes|=i,h!==null&&(h.childLanes|=i)):h!==null&&(h.childLanes&i)!==i&&(h.childLanes|=i),t===l)break;t=t.return}}function xu(t,i){qm=t,kv=du=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&i&&(mr=!0),t.firstContext=null)}function Qr(t){var i=t._currentValue;if(kv!==t)if(t={context:t,memoizedValue:i,next:null},du===null){if(qm===null)throw Error(it(308));du=t,qm.dependencies={lanes:0,firstContext:t}}else du=du.next=t;return i}var jl=null;function Lv(t){jl===null?jl=[t]:jl.push(t)}function CT(t,i,l,h){var g=i.interleaved;return g===null?(l.next=l,Lv(i)):(l.next=g.next,g.next=l),i.interleaved=l,Bs(t,h)}function Bs(t,i){t.lanes|=i;var l=t.alternate;for(l!==null&&(l.lanes|=i),l=t,t=t.return;t!==null;)t.childLanes|=i,l=t.alternate,l!==null&&(l.childLanes|=i),l=t,t=t.return;return l.tag===3?l.stateNode:null}var Ta=!1;function Rv(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function IT(t,i){t=t.updateQueue,i.updateQueue===t&&(i.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Rs(t,i){return{eventTime:t,lane:i,tag:0,payload:null,callback:null,next:null}}function La(t,i,l){var h=t.updateQueue;if(h===null)return null;if(h=h.shared,nn&2){var g=h.pending;return g===null?i.next=i:(i.next=g.next,g.next=i),h.pending=i,Bs(t,l)}return g=h.interleaved,g===null?(i.next=i,Lv(h)):(i.next=g.next,g.next=i),h.interleaved=i,Bs(t,l)}function ym(t,i,l){if(i=i.updateQueue,i!==null&&(i=i.shared,(l&4194240)!==0)){var h=i.lanes;h&=t.pendingLanes,l|=h,i.lanes=l,vv(t,l)}}function Ob(t,i){var l=t.updateQueue,h=t.alternate;if(h!==null&&(h=h.updateQueue,l===h)){var g=null,x=null;if(l=l.firstBaseUpdate,l!==null){do{var T={eventTime:l.eventTime,lane:l.lane,tag:l.tag,payload:l.payload,callback:l.callback,next:null};x===null?g=x=T:x=x.next=T,l=l.next}while(l!==null);x===null?g=x=i:x=x.next=i}else g=x=i;l={baseState:h.baseState,firstBaseUpdate:g,lastBaseUpdate:x,shared:h.shared,effects:h.effects},t.updateQueue=l;return}t=l.lastBaseUpdate,t===null?l.firstBaseUpdate=i:t.next=i,l.lastBaseUpdate=i}function Zm(t,i,l,h){var g=t.updateQueue;Ta=!1;var x=g.firstBaseUpdate,T=g.lastBaseUpdate,s=g.shared.pending;if(s!==null){g.shared.pending=null;var M=s,F=M.next;M.next=null,T===null?x=F:T.next=F,T=M;var q=t.alternate;q!==null&&(q=q.updateQueue,s=q.lastBaseUpdate,s!==T&&(s===null?q.firstBaseUpdate=F:s.next=F,q.lastBaseUpdate=M))}if(x!==null){var X=g.baseState;T=0,q=F=M=null,s=x;do{var oe=s.lane,Ae=s.eventTime;if((h&oe)===oe){q!==null&&(q=q.next={eventTime:Ae,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var fe=t,ke=s;switch(oe=i,Ae=l,ke.tag){case 1:if(fe=ke.payload,typeof fe=="function"){X=fe.call(Ae,X,oe);break e}X=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=ke.payload,oe=typeof fe=="function"?fe.call(Ae,X,oe):fe,oe==null)break e;X=Xn({},X,oe);break e;case 2:Ta=!0}}s.callback!==null&&s.lane!==0&&(t.flags|=64,oe=g.effects,oe===null?g.effects=[s]:oe.push(s))}else Ae={eventTime:Ae,lane:oe,tag:s.tag,payload:s.payload,callback:s.callback,next:null},q===null?(F=q=Ae,M=X):q=q.next=Ae,T|=oe;if(s=s.next,s===null){if(s=g.shared.pending,s===null)break;oe=s,s=oe.next,oe.next=null,g.lastBaseUpdate=oe,g.shared.pending=null}}while(1);if(q===null&&(M=X),g.baseState=M,g.firstBaseUpdate=F,g.lastBaseUpdate=q,i=g.shared.interleaved,i!==null){g=i;do T|=g.lane,g=g.next;while(g!==i)}else x===null&&(g.shared.lanes=0);Xl|=T,t.lanes=T,t.memoizedState=X}}function Bb(t,i,l){if(t=i.effects,i.effects=null,t!==null)for(i=0;il?l:4,t(!0);var h=Oy.transition;Oy.transition={};try{t(!1),i()}finally{bn=l,Oy.transition=h}}function qT(){return eo().memoizedState}function gP(t,i,l){var h=Da(t);if(l={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null},ZT(t))WT(i,l);else if(l=CT(t,i,l,h),l!==null){var g=Qi();Mo(l,t,h,g),HT(l,i,h)}}function _P(t,i,l){var h=Da(t),g={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null};if(ZT(t))WT(i,g);else{var x=t.alternate;if(t.lanes===0&&(x===null||x.lanes===0)&&(x=i.lastRenderedReducer,x!==null))try{var T=i.lastRenderedState,s=x(T,l);if(g.hasEagerState=!0,g.eagerState=s,zo(s,T)){var M=i.interleaved;M===null?(g.next=g,Lv(i)):(g.next=M.next,M.next=g),i.interleaved=g;return}}catch{}finally{}l=CT(t,i,g,h),l!==null&&(g=Qi(),Mo(l,t,h,g),HT(l,i,h))}}function ZT(t){var i=t.alternate;return t===Hn||i!==null&&i===Hn}function WT(t,i){Bd=Hm=!0;var l=t.pending;l===null?i.next=i:(i.next=l.next,l.next=i),t.pending=i}function HT(t,i,l){if(l&4194240){var h=i.lanes;h&=t.pendingLanes,l|=h,i.lanes=l,vv(t,l)}}var Xm={readContext:Qr,useCallback:Vi,useContext:Vi,useEffect:Vi,useImperativeHandle:Vi,useInsertionEffect:Vi,useLayoutEffect:Vi,useMemo:Vi,useReducer:Vi,useRef:Vi,useState:Vi,useDebugValue:Vi,useDeferredValue:Vi,useTransition:Vi,useMutableSource:Vi,useSyncExternalStore:Vi,useId:Vi,unstable_isNewReconciler:!1},yP={readContext:Qr,useCallback:function(t,i){return Qo().memoizedState=[t,i===void 0?null:i],t},useContext:Qr,useEffect:Nb,useImperativeHandle:function(t,i,l){return l=l!=null?l.concat([t]):null,xm(4194308,4,UT.bind(null,i,t),l)},useLayoutEffect:function(t,i){return xm(4194308,4,t,i)},useInsertionEffect:function(t,i){return xm(4,2,t,i)},useMemo:function(t,i){var l=Qo();return i=i===void 0?null:i,t=t(),l.memoizedState=[t,i],t},useReducer:function(t,i,l){var h=Qo();return i=l!==void 0?l(i):i,h.memoizedState=h.baseState=i,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},h.queue=t,t=t.dispatch=gP.bind(null,Hn,t),[h.memoizedState,t]},useRef:function(t){var i=Qo();return t={current:t},i.memoizedState=t},useState:Fb,useDebugValue:Vv,useDeferredValue:function(t){return Qo().memoizedState=t},useTransition:function(){var t=Fb(!1),i=t[0];return t=mP.bind(null,t[1]),Qo().memoizedState=t,[i,t]},useMutableSource:function(){},useSyncExternalStore:function(t,i,l){var h=Hn,g=Qo();if(Bn){if(l===void 0)throw Error(it(407));l=l()}else{if(l=i(),Si===null)throw Error(it(349));Hl&30||zT(h,i,l)}g.memoizedState=l;var x={value:l,getSnapshot:i};return g.queue=x,Nb(RT.bind(null,h,x,t),[t]),h.flags|=2048,ip(9,LT.bind(null,h,x,l,i),void 0,null),l},useId:function(){var t=Qo(),i=Si.identifierPrefix;if(Bn){var l=Ls,h=zs;l=(h&~(1<<32-Io(h)-1)).toString(32)+l,i=":"+i+"R"+l,l=tp++,0<\/script>",t=t.removeChild(t.firstChild)):typeof h.is=="string"?t=T.createElement(l,{is:h.is}):(t=T.createElement(l),l==="select"&&(T=t,h.multiple?T.multiple=!0:h.size&&(T.size=h.size))):t=T.createElementNS(t,l),t[es]=i,t[Jd]=h,rS(t,i,!1,!1),i.stateNode=t;e:{switch(T=d0(l,h),l){case"dialog":Ln("cancel",t),Ln("close",t),g=h;break;case"iframe":case"object":case"embed":Ln("load",t),g=h;break;case"video":case"audio":for(g=0;gku&&(i.flags|=128,h=!0,Td(x,!1),i.lanes=4194304)}else{if(!h)if(t=Wm(T),t!==null){if(i.flags|=128,h=!0,l=t.updateQueue,l!==null&&(i.updateQueue=l,i.flags|=4),Td(x,!0),x.tail===null&&x.tailMode==="hidden"&&!T.alternate&&!Bn)return Gi(i),null}else 2*ni()-x.renderingStartTime>ku&&l!==1073741824&&(i.flags|=128,h=!0,Td(x,!1),i.lanes=4194304);x.isBackwards?(T.sibling=i.child,i.child=T):(l=x.last,l!==null?l.sibling=T:i.child=T,x.last=T)}return x.tail!==null?(i=x.tail,x.rendering=i,x.tail=i.sibling,x.renderingStartTime=ni(),i.sibling=null,l=Wn.current,Mn(Wn,h?l&1|2:l&1),i):(Gi(i),null);case 22:case 23:return Hv(),h=i.memoizedState!==null,t!==null&&t.memoizedState!==null!==h&&(i.flags|=8192),h&&i.mode&1?Mr&1073741824&&(Gi(i),i.subtreeFlags&6&&(i.flags|=8192)):Gi(i),null;case 24:return null;case 25:return null}throw Error(it(156,i.tag))}function AP(t,i){switch(Iv(i),i.tag){case 1:return _r(i.type)&&Um(),t=i.flags,t&65536?(i.flags=t&-65537|128,i):null;case 3:return Iu(),Rn(gr),Rn(qi),Bv(),t=i.flags,t&65536&&!(t&128)?(i.flags=t&-65537|128,i):null;case 5:return Ov(i),null;case 13:if(Rn(Wn),t=i.memoizedState,t!==null&&t.dehydrated!==null){if(i.alternate===null)throw Error(it(340));Au()}return t=i.flags,t&65536?(i.flags=t&-65537|128,i):null;case 19:return Rn(Wn),null;case 4:return Iu(),null;case 10:return zv(i.type._context),null;case 22:case 23:return Hv(),null;case 24:return null;default:return null}}var im=!1,$i=!1,CP=typeof WeakSet=="function"?WeakSet:Set,yt=null;function pu(t,i){var l=t.ref;if(l!==null)if(typeof l=="function")try{l(null)}catch(h){Qn(t,i,h)}else l.current=null}function N0(t,i,l){try{l()}catch(h){Qn(t,i,h)}}var Kb=!1;function IP(t,i){if(b0=Om,t=hT(),Av(t)){if("selectionStart"in t)var l={start:t.selectionStart,end:t.selectionEnd};else e:{l=(l=t.ownerDocument)&&l.defaultView||window;var h=l.getSelection&&l.getSelection();if(h&&h.rangeCount!==0){l=h.anchorNode;var g=h.anchorOffset,x=h.focusNode;h=h.focusOffset;try{l.nodeType,x.nodeType}catch{l=null;break e}var T=0,s=-1,M=-1,F=0,q=0,X=t,oe=null;t:for(;;){for(var Ae;X!==l||g!==0&&X.nodeType!==3||(s=T+g),X!==x||h!==0&&X.nodeType!==3||(M=T+h),X.nodeType===3&&(T+=X.nodeValue.length),(Ae=X.firstChild)!==null;)oe=X,X=Ae;for(;;){if(X===t)break t;if(oe===l&&++F===g&&(s=T),oe===x&&++q===h&&(M=T),(Ae=X.nextSibling)!==null)break;X=oe,oe=X.parentNode}X=Ae}l=s===-1||M===-1?null:{start:s,end:M}}else l=null}l=l||{start:0,end:0}}else l=null;for(E0={focusedElem:t,selectionRange:l},Om=!1,yt=i;yt!==null;)if(i=yt,t=i.child,(i.subtreeFlags&1028)!==0&&t!==null)t.return=i,yt=t;else for(;yt!==null;){i=yt;try{var fe=i.alternate;if(i.flags&1024)switch(i.tag){case 0:case 11:case 15:break;case 1:if(fe!==null){var ke=fe.memoizedProps,ze=fe.memoizedState,ue=i.stateNode,re=ue.getSnapshotBeforeUpdate(i.elementType===i.type?ke:To(i.type,ke),ze);ue.__reactInternalSnapshotBeforeUpdate=re}break;case 3:var le=i.stateNode.containerInfo;le.nodeType===1?le.textContent="":le.nodeType===9&&le.documentElement&&le.removeChild(le.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(it(163))}}catch(De){Qn(i,i.return,De)}if(t=i.sibling,t!==null){t.return=i.return,yt=t;break}yt=i.return}return fe=Kb,Kb=!1,fe}function Fd(t,i,l){var h=i.updateQueue;if(h=h!==null?h.lastEffect:null,h!==null){var g=h=h.next;do{if((g.tag&t)===t){var x=g.destroy;g.destroy=void 0,x!==void 0&&N0(i,l,x)}g=g.next}while(g!==h)}}function yg(t,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var l=i=i.next;do{if((l.tag&t)===t){var h=l.create;l.destroy=h()}l=l.next}while(l!==i)}}function U0(t){var i=t.ref;if(i!==null){var l=t.stateNode;switch(t.tag){case 5:t=l;break;default:t=l}typeof i=="function"?i(t):i.current=t}}function aS(t){var i=t.alternate;i!==null&&(t.alternate=null,aS(i)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(i=t.stateNode,i!==null&&(delete i[es],delete i[Jd],delete i[A0],delete i[uP],delete i[hP])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function lS(t){return t.tag===5||t.tag===3||t.tag===4}function Yb(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||lS(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function j0(t,i,l){var h=t.tag;if(h===5||h===6)t=t.stateNode,i?l.nodeType===8?l.parentNode.insertBefore(t,i):l.insertBefore(t,i):(l.nodeType===8?(i=l.parentNode,i.insertBefore(t,l)):(i=l,i.appendChild(t)),l=l._reactRootContainer,l!=null||i.onclick!==null||(i.onclick=Nm));else if(h!==4&&(t=t.child,t!==null))for(j0(t,i,l),t=t.sibling;t!==null;)j0(t,i,l),t=t.sibling}function V0(t,i,l){var h=t.tag;if(h===5||h===6)t=t.stateNode,i?l.insertBefore(t,i):l.appendChild(t);else if(h!==4&&(t=t.child,t!==null))for(V0(t,i,l),t=t.sibling;t!==null;)V0(t,i,l),t=t.sibling}var Mi=null,So=!1;function xa(t,i,l){for(l=l.child;l!==null;)cS(t,i,l),l=l.sibling}function cS(t,i,l){if(ts&&typeof ts.onCommitFiberUnmount=="function")try{ts.onCommitFiberUnmount(ug,l)}catch{}switch(l.tag){case 5:$i||pu(l,i);case 6:var h=Mi,g=So;Mi=null,xa(t,i,l),Mi=h,So=g,Mi!==null&&(So?(t=Mi,l=l.stateNode,t.nodeType===8?t.parentNode.removeChild(l):t.removeChild(l)):Mi.removeChild(l.stateNode));break;case 18:Mi!==null&&(So?(t=Mi,l=l.stateNode,t.nodeType===8?Ly(t.parentNode,l):t.nodeType===1&&Ly(t,l),Wd(t)):Ly(Mi,l.stateNode));break;case 4:h=Mi,g=So,Mi=l.stateNode.containerInfo,So=!0,xa(t,i,l),Mi=h,So=g;break;case 0:case 11:case 14:case 15:if(!$i&&(h=l.updateQueue,h!==null&&(h=h.lastEffect,h!==null))){g=h=h.next;do{var x=g,T=x.destroy;x=x.tag,T!==void 0&&(x&2||x&4)&&N0(l,i,T),g=g.next}while(g!==h)}xa(t,i,l);break;case 1:if(!$i&&(pu(l,i),h=l.stateNode,typeof h.componentWillUnmount=="function"))try{h.props=l.memoizedProps,h.state=l.memoizedState,h.componentWillUnmount()}catch(s){Qn(l,i,s)}xa(t,i,l);break;case 21:xa(t,i,l);break;case 22:l.mode&1?($i=(h=$i)||l.memoizedState!==null,xa(t,i,l),$i=h):xa(t,i,l);break;default:xa(t,i,l)}}function Jb(t){var i=t.updateQueue;if(i!==null){t.updateQueue=null;var l=t.stateNode;l===null&&(l=t.stateNode=new CP),i.forEach(function(h){var g=BP.bind(null,t,h);l.has(h)||(l.add(h),h.then(g,g))})}}function Eo(t,i){var l=i.deletions;if(l!==null)for(var h=0;hg&&(g=T),h&=~x}if(h=g,h=ni()-h,h=(120>h?120:480>h?480:1080>h?1080:1920>h?1920:3e3>h?3e3:4320>h?4320:1960*kP(h/1960))-h,10t?16:t,Ia===null)var h=!1;else{if(t=Ia,Ia=null,Jm=0,nn&6)throw Error(it(331));var g=nn;for(nn|=4,yt=t.current;yt!==null;){var x=yt,T=x.child;if(yt.flags&16){var s=x.deletions;if(s!==null){for(var M=0;Mni()-Zv?$l(t,0):qv|=l),yr(t,i)}function _S(t,i){i===0&&(t.mode&1?(i=Hf,Hf<<=1,!(Hf&130023424)&&(Hf=4194304)):i=1);var l=Qi();t=Bs(t,i),t!==null&&(hp(t,i,l),yr(t,l))}function OP(t){var i=t.memoizedState,l=0;i!==null&&(l=i.retryLane),_S(t,l)}function BP(t,i){var l=0;switch(t.tag){case 13:var h=t.stateNode,g=t.memoizedState;g!==null&&(l=g.retryLane);break;case 19:h=t.stateNode;break;default:throw Error(it(314))}h!==null&&h.delete(i),_S(t,l)}var yS;yS=function(t,i,l){if(t!==null)if(t.memoizedProps!==i.pendingProps||gr.current)mr=!0;else{if(!(t.lanes&l)&&!(i.flags&128))return mr=!1,TP(t,i,l);mr=!!(t.flags&131072)}else mr=!1,Bn&&i.flags&1048576&&bT(i,Gm,i.index);switch(i.lanes=0,i.tag){case 2:var h=i.type;wm(t,i),t=i.pendingProps;var g=Su(i,qi.current);xu(i,l),g=Nv(null,i,h,t,g,l);var x=Uv();return i.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,_r(h)?(x=!0,jm(i)):x=!1,i.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Rv(i),g.updater=_g,i.stateNode=g,g._reactInternals=i,z0(i,h,t,l),i=D0(null,i,h,!0,x,l)):(i.tag=0,Bn&&x&&Cv(i),Ji(null,i,g,l),i=i.child),i;case 16:h=i.elementType;e:{switch(wm(t,i),t=i.pendingProps,g=h._init,h=g(h._payload),i.type=h,g=i.tag=NP(h),t=To(h,t),g){case 0:i=R0(null,i,h,t,l);break e;case 1:i=Wb(null,i,h,t,l);break e;case 11:i=qb(null,i,h,t,l);break e;case 14:i=Zb(null,i,h,To(h.type,t),l);break e}throw Error(it(306,h,""))}return i;case 0:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),R0(t,i,h,g,l);case 1:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),Wb(t,i,h,g,l);case 3:e:{if(tS(i),t===null)throw Error(it(387));h=i.pendingProps,x=i.memoizedState,g=x.element,IT(t,i),Zm(i,h,null,l);var T=i.memoizedState;if(h=T.element,x.isDehydrated)if(x={element:h,isDehydrated:!1,cache:T.cache,pendingSuspenseBoundaries:T.pendingSuspenseBoundaries,transitions:T.transitions},i.updateQueue.baseState=x,i.memoizedState=x,i.flags&256){g=Mu(Error(it(423)),i),i=Hb(t,i,h,l,g);break e}else if(h!==g){g=Mu(Error(it(424)),i),i=Hb(t,i,h,l,g);break e}else for(kr=za(i.stateNode.containerInfo.firstChild),Pr=i,Bn=!0,Ao=null,l=AT(i,null,h,l),i.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling;else{if(Au(),h===g){i=Fs(t,i,l);break e}Ji(t,i,h,l)}i=i.child}return i;case 5:return MT(i),t===null&&M0(i),h=i.type,g=i.pendingProps,x=t!==null?t.memoizedProps:null,T=g.children,T0(h,g)?T=null:x!==null&&T0(h,x)&&(i.flags|=32),eS(t,i),Ji(t,i,T,l),i.child;case 6:return t===null&&M0(i),null;case 13:return nS(t,i,l);case 4:return Dv(i,i.stateNode.containerInfo),h=i.pendingProps,t===null?i.child=Cu(i,null,h,l):Ji(t,i,h,l),i.child;case 11:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),qb(t,i,h,g,l);case 7:return Ji(t,i,i.pendingProps,l),i.child;case 8:return Ji(t,i,i.pendingProps.children,l),i.child;case 12:return Ji(t,i,i.pendingProps.children,l),i.child;case 10:e:{if(h=i.type._context,g=i.pendingProps,x=i.memoizedProps,T=g.value,Mn($m,h._currentValue),h._currentValue=T,x!==null)if(zo(x.value,T)){if(x.children===g.children&&!gr.current){i=Fs(t,i,l);break e}}else for(x=i.child,x!==null&&(x.return=i);x!==null;){var s=x.dependencies;if(s!==null){T=x.child;for(var M=s.firstContext;M!==null;){if(M.context===h){if(x.tag===1){M=Rs(-1,l&-l),M.tag=2;var F=x.updateQueue;if(F!==null){F=F.shared;var q=F.pending;q===null?M.next=M:(M.next=q.next,q.next=M),F.pending=M}}x.lanes|=l,M=x.alternate,M!==null&&(M.lanes|=l),k0(x.return,l,i),s.lanes|=l;break}M=M.next}}else if(x.tag===10)T=x.type===i.type?null:x.child;else if(x.tag===18){if(T=x.return,T===null)throw Error(it(341));T.lanes|=l,s=T.alternate,s!==null&&(s.lanes|=l),k0(T,l,i),T=x.sibling}else T=x.child;if(T!==null)T.return=x;else for(T=x;T!==null;){if(T===i){T=null;break}if(x=T.sibling,x!==null){x.return=T.return,T=x;break}T=T.return}x=T}Ji(t,i,g.children,l),i=i.child}return i;case 9:return g=i.type,h=i.pendingProps.children,xu(i,l),g=Qr(g),h=h(g),i.flags|=1,Ji(t,i,h,l),i.child;case 14:return h=i.type,g=To(h,i.pendingProps),g=To(h.type,g),Zb(t,i,h,g,l);case 15:return JT(t,i,i.type,i.pendingProps,l);case 17:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),wm(t,i),i.tag=1,_r(h)?(t=!0,jm(i)):t=!1,xu(i,l),XT(i,h,g),z0(i,h,g,l),D0(null,i,h,!0,t,l);case 19:return iS(t,i,l);case 22:return QT(t,i,l)}throw Error(it(156,i.tag))};function vS(t,i){return Z2(t,i)}function FP(t,i,l,h){this.tag=t,this.key=l,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=h,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yr(t,i,l,h){return new FP(t,i,l,h)}function Kv(t){return t=t.prototype,!(!t||!t.isReactComponent)}function NP(t){if(typeof t=="function")return Kv(t)?1:0;if(t!=null){if(t=t.$$typeof,t===mv)return 11;if(t===gv)return 14}return 2}function Oa(t,i){var l=t.alternate;return l===null?(l=Yr(t.tag,i,t.key,t.mode),l.elementType=t.elementType,l.type=t.type,l.stateNode=t.stateNode,l.alternate=t,t.alternate=l):(l.pendingProps=i,l.type=t.type,l.flags=0,l.subtreeFlags=0,l.deletions=null),l.flags=t.flags&14680064,l.childLanes=t.childLanes,l.lanes=t.lanes,l.child=t.child,l.memoizedProps=t.memoizedProps,l.memoizedState=t.memoizedState,l.updateQueue=t.updateQueue,i=t.dependencies,l.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},l.sibling=t.sibling,l.index=t.index,l.ref=t.ref,l}function Tm(t,i,l,h,g,x){var T=2;if(h=t,typeof t=="function")Kv(t)&&(T=1);else if(typeof t=="string")T=5;else e:switch(t){case ru:return ql(l.children,g,x,i);case fv:T=8,g|=8;break;case n0:return t=Yr(12,l,i,g|2),t.elementType=n0,t.lanes=x,t;case i0:return t=Yr(13,l,i,g),t.elementType=i0,t.lanes=x,t;case r0:return t=Yr(19,l,i,g),t.elementType=r0,t.lanes=x,t;case M2:return xg(l,g,x,i);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case C2:T=10;break e;case I2:T=9;break e;case mv:T=11;break e;case gv:T=14;break e;case Ea:T=16,h=null;break e}throw Error(it(130,t==null?t:typeof t,""))}return i=Yr(T,l,i,g),i.elementType=t,i.type=h,i.lanes=x,i}function ql(t,i,l,h){return t=Yr(7,t,h,i),t.lanes=l,t}function xg(t,i,l,h){return t=Yr(22,t,h,i),t.elementType=M2,t.lanes=l,t.stateNode={isHidden:!1},t}function jy(t,i,l){return t=Yr(6,t,null,i),t.lanes=l,t}function Vy(t,i,l){return i=Yr(4,t.children!==null?t.children:[],t.key,i),i.lanes=l,i.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},i}function UP(t,i,l,h,g){this.tag=i,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=by(0),this.expirationTimes=by(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=by(0),this.identifierPrefix=h,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Yv(t,i,l,h,g,x,T,s,M){return t=new UP(t,i,l,s,M),i===1?(i=1,x===!0&&(i|=8)):i=0,x=Yr(3,null,null,i),t.current=x,x.stateNode=t,x.memoizedState={element:h,isDehydrated:l,cache:null,transitions:null,pendingSuspenseBoundaries:null},Rv(x),t}function jP(t,i,l){var h=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(ES)}catch(t){console.error(t)}}ES(),E2.exports=Rr;var tx=E2.exports,TS,sE=tx;TS=sE.createRoot,sE.hydrateRoot;const ZP="Logging",WP="NoHubcallbackProvidedException";var Ir;(function(t){t.DEBUG="DEBUG",t.ERROR="ERROR",t.INFO="INFO",t.WARN="WARN",t.VERBOSE="VERBOSE",t.NONE="NONE"})(Ir||(Ir={}));const aE={VERBOSE:1,DEBUG:2,INFO:3,WARN:4,ERROR:5,NONE:6};class ko{constructor(i,l=Ir.WARN){this.name=i,this.level=l,this._pluggables=[]}_padding(i){return i<10?"0"+i:""+i}_ts(){const i=new Date;return[this._padding(i.getMinutes()),this._padding(i.getSeconds())].join(":")+"."+i.getMilliseconds()}configure(i){return i?(this._config=i,this._config):this._config}_log(i,...l){let h=this.level;ko.LOG_LEVEL&&(h=ko.LOG_LEVEL),typeof window<"u"&&window.LOG_LEVEL&&(h=window.LOG_LEVEL);const g=aE[h];if(!(aE[i]>=g))return;let T=console.log.bind(console);i===Ir.ERROR&&console.error&&(T=console.error.bind(console)),i===Ir.WARN&&console.warn&&(T=console.warn.bind(console)),ko.BIND_ALL_LOG_LEVELS&&(i===Ir.INFO&&console.info&&(T=console.info.bind(console)),i===Ir.DEBUG&&console.debug&&(T=console.debug.bind(console)));const s=`[${i}] ${this._ts()} ${this.name}`;let M="";if(l.length===1&&typeof l[0]=="string")M=`${s} - ${l[0]}`,T(M);else if(l.length===1)M=`${s} ${l[0]}`,T(s,l[0]);else if(typeof l[0]=="string"){let F=l.slice(1);F.length===1&&(F=F[0]),M=`${s} - ${l[0]} ${F}`,T(`${s} - ${l[0]}`,F)}else M=`${s} ${l}`,T(s,l);for(const F of this._pluggables){const q={message:M,timestamp:Date.now()};F.pushLogs([q])}}log(...i){this._log(Ir.INFO,...i)}info(...i){this._log(Ir.INFO,...i)}warn(...i){this._log(Ir.WARN,...i)}error(...i){this._log(Ir.ERROR,...i)}debug(...i){this._log(Ir.DEBUG,...i)}verbose(...i){this._log(Ir.VERBOSE,...i)}addPluggable(i){i&&i.getCategoryName()===ZP&&(this._pluggables.push(i),i.configure(this._config))}listPluggables(){return this._pluggables}}ko.LOG_LEVEL=null;ko.BIND_ALL_LOG_LEVELS=!1;class is extends Error{constructor({message:i,name:l,recoverySuggestion:h,underlyingError:g}){super(i),this.name=l,this.underlyingError=g,this.recoverySuggestion=h,this.constructor=is,Object.setPrototypeOf(this,is.prototype)}}var op;(function(t){t.NoEndpointId="NoEndpointId",t.PlatformNotSupported="PlatformNotSupported",t.Unknown="Unknown",t.NetworkError="NetworkError"})(op||(op={}));const SS=(t,i=is)=>(l,h,g)=>{const{message:x,recoverySuggestion:T}=t[h];if(!l)throw new i({name:h,message:g?`${x} ${g}`:x,recoverySuggestion:T})},tg=typeof Symbol<"u"?Symbol("amplify_default"):"@@amplify_default",Ad=new ko("Hub");class HP{constructor(i){this.listeners=new Map,this.protectedChannels=["core","auth","api","analytics","interactions","pubsub","storage","ui","xr"],this.name=i}_remove(i,l){const h=this.listeners.get(i);if(!h){Ad.warn(`No listeners for ${i}`);return}this.listeners.set(i,[...h.filter(({callback:g})=>g!==l)])}dispatch(i,l,h,g){typeof i=="string"&&this.protectedChannels.indexOf(i)>-1&&(g===tg||Ad.warn(`WARNING: ${i} is protected and dispatching on it can have unintended consequences`));const x={channel:i,payload:{...l},source:h,patternInfo:[]};try{this._toListeners(x)}catch(T){Ad.error(T)}}listen(i,l,h="noname"){let g;if(typeof l!="function")throw new is({name:WP,message:"No callback supplied to Hub"});g=l;let x=this.listeners.get(i);return x||(x=[],this.listeners.set(i,x)),x.push({name:h,callback:g}),()=>{this._remove(i,g)}}_toListeners(i){const{channel:l,payload:h}=i,g=this.listeners.get(l);g&&g.forEach(x=>{Ad.debug(`Dispatching to ${l} with `,h);try{x.callback(i)}catch(T){Ad.error(T)}})}}const W0=new HP("__default__"),XP=()=>{if(typeof window<"u"&&typeof window.atob=="function")return window.atob;if(typeof atob=="function")return atob;throw new is({name:"Base64EncoderError",message:"Cannot resolve the `atob` function from the environment."})},KP={convert(t){return XP()(t)}};var ks;(function(t){t.AuthTokenConfigException="AuthTokenConfigException",t.AuthUserPoolAndIdentityPoolException="AuthUserPoolAndIdentityPoolException",t.AuthUserPoolException="AuthUserPoolException",t.InvalidIdentityPoolIdException="InvalidIdentityPoolIdException",t.OAuthNotConfigureException="OAuthNotConfigureException"})(ks||(ks={}));const YP={[ks.AuthTokenConfigException]:{message:"Auth Token Provider not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app."},[ks.AuthUserPoolAndIdentityPoolException]:{message:"Auth UserPool or IdentityPool not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app with UserPoolId and IdentityPoolId."},[ks.AuthUserPoolException]:{message:"Auth UserPool not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app with userPoolId and userPoolClientId."},[ks.InvalidIdentityPoolIdException]:{message:"Invalid identity pool id provided.",recoverySuggestion:"Make sure a valid identityPoolId is given in the config."},[ks.OAuthNotConfigureException]:{message:"oauth param not configured.",recoverySuggestion:"Make sure to call Amplify.configure with oauth parameter in your app."}},AS=SS(YP);function pr(t){let i=!0;t?i=!!t.userPoolId&&!!t.userPoolClientId:i=!1,AS(i,ks.AuthUserPoolException)}function Sm(t){const i=!!(t!=null&&t.identityPoolId);AS(i,ks.InvalidIdentityPoolIdException)}function sp(t){const i=t.split(".");if(i.length!==3)throw new Error("Invalid token");try{const h=i[1].replace(/-/g,"+").replace(/_/g,"/"),g=decodeURIComponent(KP.convert(h).split("").map(T=>`%${`00${T.charCodeAt(0).toString(16)}`.slice(-2)}`).join("")),x=JSON.parse(g);return{toString:()=>t,payload:x}}catch{throw new Error("Invalid token payload")}}const CS=t=>{const i=Reflect.ownKeys(t);for(const l of i){const h=t[l];(h&&typeof h=="object"||typeof h=="function")&&CS(h)}return Object.freeze(t)},JP=new ko("parseAWSExports"),QP={API_KEY:"apiKey",AWS_IAM:"iam",AMAZON_COGNITO_USER_POOLS:"userPool",OPENID_CONNECT:"oidc",NONE:"none",AWS_LAMBDA:"lambda",LAMBDA:"lambda"},ez=(t={})=>{var ei,Wi,ti,pi,rs,Br;if(!Object.prototype.hasOwnProperty.call(t,"aws_project_region"))throw new is({name:"InvalidParameterException",message:"Invalid config parameter.",recoverySuggestion:"Ensure passing the config object imported from `amplifyconfiguration.json`."});const{aws_appsync_apiKey:i,aws_appsync_authenticationType:l,aws_appsync_graphqlEndpoint:h,aws_appsync_region:g,aws_bots_config:x,aws_cognito_identity_pool_id:T,aws_cognito_sign_up_verification_method:s,aws_cognito_mfa_configuration:M,aws_cognito_mfa_types:F,aws_cognito_password_protection_settings:q,aws_cognito_verification_mechanisms:X,aws_cognito_signup_attributes:oe,aws_cognito_social_providers:Ae,aws_cognito_username_attributes:fe,aws_mandatory_sign_in:ke,aws_mobile_analytics_app_id:ze,aws_mobile_analytics_app_region:ue,aws_user_files_s3_bucket:re,aws_user_files_s3_bucket_region:le,aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing:De,aws_user_pools_id:je,aws_user_pools_web_client_id:tt,geo:lt,oauth:ut,predictions:Ve,aws_cloud_logic_custom:jt,Notifications:di,modelIntrospection:St}=t,Vt={};ze&&(Vt.Analytics={Pinpoint:{appId:ze,region:ue}});const{InAppMessaging:zi,Push:Li}=di??{};if(zi!=null&&zi.AWSPinpoint||Li!=null&&Li.AWSPinpoint){if(zi!=null&&zi.AWSPinpoint){const{appId:yn,region:Mt}=zi.AWSPinpoint;Vt.Notifications={InAppMessaging:{Pinpoint:{appId:yn,region:Mt}}}}if(Li!=null&&Li.AWSPinpoint){const{appId:yn,region:Mt}=Li.AWSPinpoint;Vt.Notifications={...Vt.Notifications,PushNotification:{Pinpoint:{appId:yn,region:Mt}}}}}if(Array.isArray(x)&&(Vt.Interactions={LexV1:Object.fromEntries(x.map(yn=>[yn.name,yn]))}),h){const yn=QP[l];yn||JP.debug(`Invalid authentication type ${l}. Falling back to IAM.`),Vt.API={GraphQL:{endpoint:h,apiKey:i,region:g,defaultAuthMode:yn??"iam"}},St&&(Vt.API.GraphQL.modelIntrospection=St)}const wr=M?{status:M&&M.toLowerCase(),totpEnabled:(F==null?void 0:F.includes("TOTP"))??!1,smsEnabled:(F==null?void 0:F.includes("SMS"))??!1}:void 0,Or=q?{minLength:q.passwordPolicyMinLength,requireLowercase:((ei=q.passwordPolicyCharacters)==null?void 0:ei.includes("REQUIRES_LOWERCASE"))??!1,requireUppercase:((Wi=q.passwordPolicyCharacters)==null?void 0:Wi.includes("REQUIRES_UPPERCASE"))??!1,requireNumbers:((ti=q.passwordPolicyCharacters)==null?void 0:ti.includes("REQUIRES_NUMBERS"))??!1,requireSpecialCharacters:((pi=q.passwordPolicyCharacters)==null?void 0:pi.includes("REQUIRES_SYMBOLS"))??!1}:void 0,Tt=Array.from(new Set([...X??[],...oe??[]])).reduce((yn,Mt)=>({...yn,[Mt.toLowerCase()]:{required:!0}}),{}),xt=(fe==null?void 0:fe.includes("EMAIL"))??!1,Bt=(fe==null?void 0:fe.includes("PHONE_NUMBER"))??!1;(T||je)&&(Vt.Auth={Cognito:{identityPoolId:T,allowGuestAccess:ke!=="enable",signUpVerificationMethod:s,userAttributes:Tt,userPoolClientId:tt,userPoolId:je,mfa:wr,passwordFormat:Or,loginWith:{username:!(xt||Bt),email:xt,phone:Bt}}});const dn=ut?Object.keys(ut).length>0:!1,_n=Ae?Ae.length>0:!1;if(Vt.Auth&&dn&&(Vt.Auth.Cognito.loginWith={...Vt.Auth.Cognito.loginWith,oauth:{...tz(ut),..._n&&{providers:nz(Ae)}}}),re&&(Vt.Storage={S3:{bucket:re,region:le,dangerouslyConnectToHttpEndpointForTesting:De}}),lt){const{amazon_location_service:yn}=lt;Vt.Geo={LocationService:{maps:yn.maps,geofenceCollections:yn.geofenceCollections,searchIndices:yn.search_indices,region:yn.region}}}if(jt&&(Vt.API={...Vt.API,REST:jt.reduce((yn,Mt)=>{const{name:Ro,endpoint:Ai,region:Do,service:vn}=Mt;return{...yn,[Ro]:{endpoint:Ai,...vn?{service:vn}:void 0,...Do?{region:Do}:void 0}}},{})}),Ve){const{VoiceId:yn}=((Br=(rs=Ve==null?void 0:Ve.convert)==null?void 0:rs.speechGenerator)==null?void 0:Br.defaults)??{};Vt.Predictions=yn?{...Ve,convert:{...Ve.convert,speechGenerator:{...Ve.convert.speechGenerator,defaults:{voiceId:yn}}}}:Ve}return Vt},lE=t=>(t==null?void 0:t.split(","))??[],tz=({domain:t,scope:i,redirectSignIn:l,redirectSignOut:h,responseType:g})=>({domain:t,scopes:i,redirectSignIn:lE(l),redirectSignOut:lE(h),responseType:g}),nz=t=>t.map(i=>{const l=i.toLowerCase();return l.charAt(0).toUpperCase()+l.slice(1)}),iz=Symbol("oauth-listener");function rz(t){const{version:i}=t;return i?i.startsWith("1"):!1}function oz(t){if(!t)return;const{bucket_name:i,aws_region:l,buckets:h}=t;return{S3:{bucket:i,region:l,buckets:h&&gz(h)}}}function sz(t){if(!t)return;const{user_pool_id:i,user_pool_client_id:l,identity_pool_id:h,password_policy:g,mfa_configuration:x,mfa_methods:T,unauthenticated_identities_enabled:s,oauth:M,username_attributes:F,standard_required_attributes:q}=t,X={Cognito:{userPoolId:i,userPoolClientId:l}};return h&&(X.Cognito={...X.Cognito,identityPoolId:h}),g&&(X.Cognito.passwordFormat={requireLowercase:g.require_lowercase,requireNumbers:g.require_numbers,requireUppercase:g.require_uppercase,requireSpecialCharacters:g.require_symbols,minLength:g.min_length??6}),x&&(X.Cognito.mfa={status:mz(x),smsEnabled:T==null?void 0:T.includes("SMS"),totpEnabled:T==null?void 0:T.includes("TOTP")}),s&&(X.Cognito.allowGuestAccess=s),M&&(X.Cognito.loginWith={oauth:{domain:M.domain,redirectSignIn:M.redirect_sign_in_uri,redirectSignOut:M.redirect_sign_out_uri,responseType:M.response_type==="token"?"token":"code",scopes:M.scopes,providers:fz(M.identity_providers)}}),F&&(X.Cognito.loginWith={...X.Cognito.loginWith,email:F.includes("email"),phone:F.includes("phone_number"),username:F.includes("username")}),q&&(X.Cognito.userAttributes=q.reduce((oe,Ae)=>({...oe,[Ae]:{required:!0}}),{})),X}function az(t){if(!(t!=null&&t.amazon_pinpoint))return;const{amazon_pinpoint:i}=t;return{Pinpoint:{appId:i.app_id,region:i.aws_region}}}function lz(t){if(!t)return;const{aws_region:i,geofence_collections:l,maps:h,search_indices:g}=t;return{LocationService:{region:i,searchIndices:g,geofenceCollections:l,maps:h}}}function cz(t){if(!t)return;const{aws_region:i,default_authorization_type:l,url:h,api_key:g,model_introspection:x}=t;return{GraphQL:{endpoint:h,defaultAuthMode:pz(l),region:i,apiKey:g,modelIntrospection:x}}}function uz(t){if(!t)return;const{aws_region:i,channels:l,amazon_pinpoint_app_id:h}=t,g=l.includes("IN_APP_MESSAGING"),x=l.includes("APNS")||l.includes("FCM");if(!(g||x))return;const T={};return g&&(T.InAppMessaging={Pinpoint:{appId:h,region:i}}),x&&(T.PushNotification={Pinpoint:{appId:h,region:i}}),T}function hz(t){const i={};return t.storage&&(i.Storage=oz(t.storage)),t.auth&&(i.Auth=sz(t.auth)),t.analytics&&(i.Analytics=az(t.analytics)),t.geo&&(i.Geo=lz(t.geo)),t.data&&(i.API=cz(t.data)),t.notifications&&(i.Notifications=uz(t.notifications)),i}const dz={AMAZON_COGNITO_USER_POOLS:"userPool",API_KEY:"apiKey",AWS_IAM:"iam",AWS_LAMBDA:"lambda",OPENID_CONNECT:"oidc"};function pz(t){return dz[t]}const cE={GOOGLE:"Google",LOGIN_WITH_AMAZON:"Amazon",FACEBOOK:"Facebook",SIGN_IN_WITH_APPLE:"Apple"};function fz(t=[]){return t.reduce((i,l)=>(cE[l]!==void 0&&i.push(cE[l]),i),[])}function mz(t){return t==="OPTIONAL"?"optional":t==="REQUIRED"?"on":"off"}function gz(t){const i={};return t.forEach(({name:l,bucket_name:h,aws_region:g})=>{if(l in i)throw new Error(`Duplicate friendly name found: ${l}. Name must be unique.`);i[l]={bucketName:h,region:g}}),i}const IS=t=>Object.keys(t).some(i=>i.startsWith("aws_"))?ez(t):rz(t)?hz(t):t;function uE({expiresAt:t,clockDrift:i}){return Date.now()+i>t}class _z{configure(i,l){this.authConfig=i,this.authOptions=l}async fetchAuthSession(i={}){var x,T,s,M,F,q;let l,h;const g=await this.getTokens(i);return g?(h=(T=(x=g.accessToken)==null?void 0:x.payload)==null?void 0:T.sub,l=await((M=(s=this.authOptions)==null?void 0:s.credentialsProvider)==null?void 0:M.getCredentialsAndIdentityId({authConfig:this.authConfig,tokens:g,authenticated:!0,forceRefresh:i.forceRefresh}))):l=await((q=(F=this.authOptions)==null?void 0:F.credentialsProvider)==null?void 0:q.getCredentialsAndIdentityId({authConfig:this.authConfig,authenticated:!1,forceRefresh:i.forceRefresh})),{tokens:g,credentials:l==null?void 0:l.credentials,identityId:l==null?void 0:l.identityId,userSub:h}}async clearCredentials(){var i,l;await((l=(i=this.authOptions)==null?void 0:i.credentialsProvider)==null?void 0:l.clearCredentialsAndIdentityId())}async getTokens(i){var l,h;return await((h=(l=this.authOptions)==null?void 0:l.tokenProvider)==null?void 0:h.getTokens(i))??void 0}}const yz=t=>new TextEncoder().encode(t);typeof Buffer<"u"&&Buffer.from;for(let t=0;t<256;t++){let i=t.toString(16).toLowerCase();i.length===1&&(i=`0${i}`)}var ci;(function(t){t.WebUnknown="0",t.React="1",t.NextJs="2",t.Angular="3",t.VueJs="4",t.Nuxt="5",t.Svelte="6",t.ServerSideUnknown="100",t.ReactSSR="101",t.NextJsSSR="102",t.AngularSSR="103",t.VueJsSSR="104",t.NuxtSSR="105",t.SvelteSSR="106",t.ReactNative="201",t.Expo="202"})(ci||(ci={}));var hE;(function(t){t.API="api",t.Auth="auth",t.Analytics="analytics",t.DataStore="datastore",t.Geo="geo",t.InAppMessaging="inappmessaging",t.Interactions="interactions",t.Predictions="predictions",t.PubSub="pubsub",t.PushNotification="pushnotification",t.Storage="storage"})(hE||(hE={}));var dE;(function(t){t.Record="1",t.IdentifyUser="2"})(dE||(dE={}));var pE;(function(t){t.GraphQl="1",t.Get="2",t.Post="3",t.Put="4",t.Patch="5",t.Del="6",t.Head="7"})(pE||(pE={}));var fE;(function(t){t.SignUp="1",t.ConfirmSignUp="2",t.ResendSignUpCode="3",t.SignIn="4",t.FetchMFAPreference="6",t.UpdateMFAPreference="7",t.SetUpTOTP="10",t.VerifyTOTPSetup="11",t.ConfirmSignIn="12",t.DeleteUserAttributes="15",t.DeleteUser="16",t.UpdateUserAttributes="17",t.FetchUserAttributes="18",t.ConfirmUserAttribute="22",t.SignOut="26",t.UpdatePassword="27",t.ResetPassword="28",t.ConfirmResetPassword="29",t.FederatedSignIn="30",t.RememberDevice="32",t.ForgetDevice="33",t.FetchDevices="34",t.SendUserAttributeVerificationCode="35",t.SignInWithRedirect="36"})(fE||(fE={}));var mE;(function(t){t.Subscribe="1",t.GraphQl="2"})(mE||(mE={}));var gE;(function(t){t.SearchByText="0",t.SearchByCoordinates="1",t.SearchForSuggestions="2",t.SearchByPlaceId="3",t.SaveGeofences="4",t.GetGeofence="5",t.ListGeofences="6",t.DeleteGeofences="7"})(gE||(gE={}));var _E;(function(t){t.SyncMessages="1",t.IdentifyUser="2",t.NotifyMessageInteraction="3"})(_E||(_E={}));var yE;(function(t){t.None="0"})(yE||(yE={}));var vE;(function(t){t.Convert="1",t.Identify="2",t.Interpret="3"})(vE||(vE={}));var xE;(function(t){t.Subscribe="1"})(xE||(xE={}));var wE;(function(t){t.InitializePushNotifications="1",t.IdentifyUser="2"})(wE||(wE={}));var bE;(function(t){t.UploadData="1",t.DownloadData="2",t.List="3",t.Copy="4",t.Remove="5",t.GetProperties="6",t.GetUrl="7"})(bE||(bE={}));const Sg=()=>typeof global<"u",Ou=()=>typeof window<"u",MS=()=>typeof document<"u",nx=()=>typeof process<"u",ap=(t,i)=>!!Object.keys(t).find(l=>l.startsWith(i));function vz(){const t=h=>h.startsWith("_react")||h.startsWith("__react"),i=h=>Object.keys(h).find(t),l=()=>Array.from(document.querySelectorAll("[id]"));return MS()&&l().some(i)}function xz(){return nx()&&typeof process.env<"u"&&!!Object.keys(process.env).find(t=>t.includes("react"))}function wz(){return Ou()&&ap(window,"__VUE")}function bz(){return Sg()&&ap(global,"__VUE")}function Ez(){return Ou()&&ap(window,"__SVELTE")}function Tz(){return nx()&&typeof process.env<"u"&&!!Object.keys(process.env).find(t=>t.includes("svelte"))}function Sz(){return Ou()&&window.next&&typeof window.next=="object"}function Az(){return Sg()&&(ap(global,"__next")||ap(global,"__NEXT"))}function Cz(){return Ou()&&(window.__NUXT__!==void 0||window.$nuxt!==void 0)}function Iz(){return Sg()&&typeof global.__NUXT_PATHS__<"u"}function Mz(){const t=!!(MS()&&document.querySelector("[ng-version]")),i=!!(Ou()&&typeof window.ng<"u");return t||i}function kz(){var t;return nx()&&typeof process.env=="object"&&((t={}.npm_lifecycle_script)==null?void 0:t.startsWith("ng "))||!1}function Pz(){return typeof navigator<"u"&&typeof navigator.product<"u"&&navigator.product==="ReactNative"}function zz(){return Sg()&&typeof global.expo<"u"}function Lz(){return Ou()}const Rz=[{platform:ci.Expo,detectionMethod:zz},{platform:ci.ReactNative,detectionMethod:Pz},{platform:ci.NextJs,detectionMethod:Sz},{platform:ci.Nuxt,detectionMethod:Cz},{platform:ci.Angular,detectionMethod:Mz},{platform:ci.React,detectionMethod:vz},{platform:ci.VueJs,detectionMethod:wz},{platform:ci.Svelte,detectionMethod:Ez},{platform:ci.WebUnknown,detectionMethod:Lz},{platform:ci.NextJsSSR,detectionMethod:Az},{platform:ci.NuxtSSR,detectionMethod:Iz},{platform:ci.ReactSSR,detectionMethod:xz},{platform:ci.VueJsSSR,detectionMethod:bz},{platform:ci.AngularSSR,detectionMethod:kz},{platform:ci.SvelteSSR,detectionMethod:Tz}];function Dz(){var t;return((t=Rz.find(i=>i.detectionMethod()))==null?void 0:t.platform)||ci.ServerSideUnknown}const Oz=()=>typeof window<"u"&&typeof window.document<"u";class Bz{constructor(){this.oAuthListener=void 0,this.resourcesConfig={},this.libraryOptions={},this.Auth=new _z}configure(i,l){const h=IS(i);this.resourcesConfig=h,l&&(this.libraryOptions=l),this.resourcesConfig=CS(this.resourcesConfig),this.Auth.configure(this.resourcesConfig.Auth,this.libraryOptions.Auth),W0.dispatch("core",{event:"configure",data:this.resourcesConfig},"Configure",tg),this.notifyOAuthListener()}getConfig(){return this.resourcesConfig}[iz](i){var l,h,g;(h=(l=this.resourcesConfig.Auth)==null?void 0:l.Cognito.loginWith)!=null&&h.oauth?i((g=this.resourcesConfig.Auth)==null?void 0:g.Cognito):this.oAuthListener=i}notifyOAuthListener(){var i,l,h;!((l=(i=this.resourcesConfig.Auth)==null?void 0:i.Cognito.loginWith)!=null&&l.oauth)||!this.oAuthListener||(this.oAuthListener((h=this.resourcesConfig.Auth)==null?void 0:h.Cognito),this.oAuthListener=void 0)}}const Cs=new Bz,Ag=t=>{const{headers:i,statusCode:l}=t;return{...Fz(t)?t.$metadata:{},httpStatusCode:l,requestId:i["x-amzn-requestid"]??i["x-amzn-request-id"]??i["x-amz-request-id"],extendedRequestId:i["x-amz-id-2"],cfId:i["x-amz-cf-id"]}},Fz=t=>typeof(t==null?void 0:t.$metadata)=="object",mp=async t=>{if(!t||t.statusCode<300)return;const i=await Cg(t),h=(T=>{const[s]=T.toString().split(/[,:]+/);return s.includes("#")?s.split("#")[1]:s})(t.headers["x-amzn-errortype"]??i.code??i.__type??"UnknownError"),g=i.message??i.Message??"Unknown error",x=new Error(g);return Object.assign(x,{name:h,$metadata:Ag(t)})},Cg=async t=>{if(!t.body)throw new Error("Missing response payload");const i=await t.body.json();return Object.assign(i,{$metadata:Ag(t)})},ix=(t,i,l,h)=>async(g,x)=>{const T={...h,...g},s=await T.endpointResolver(T,x),M=await i(x,s),F=await t(M,{...T});return l(F)},kS={id:"aws",outputs:{dnsSuffix:"amazonaws.com"},regionRegex:"^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$",regions:["aws-global"]},Nz={partitions:[kS,{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn"},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:["aws-cn-global"]}]},PS=t=>{const{partitions:i}=Nz;for(const{regions:l,outputs:h,regionRegex:g}of i){const x=new RegExp(g);if(l.includes(t)||x.test(t))return h.dnsSuffix}return kS.outputs.dnsSuffix},Uz=3,jz=({maxAttempts:t=Uz,retryDecider:i,computeDelay:l,abortSignal:h})=>{if(t<1)throw new Error("maxAttempts must be greater than 0");return(g,x)=>async function(s){let M,F=x.attemptsCount??0,q;const X=()=>{if(q)return EE(q,F),q;throw EE(M,F),M};for(;!(h!=null&&h.aborted)&&FF?x.attemptsCount??0:F+1,x.attemptsCount=F,await i(q,M)){if(!(h!=null&&h.aborted)&&F{if(i!=null&&i.aborted)return Promise.resolve();let l,h;const g=new Promise(x=>{h=x,l=setTimeout(x,t)});return i==null||i.addEventListener("abort",function x(T){clearTimeout(l),i==null||i.removeEventListener("abort",x),h()}),g},EE=(t,i)=>{Object.prototype.toString.call(t)==="[object Object]"&&(t.$metadata={...t.$metadata??{},attempts:i})},Gz=({userAgentHeader:t="x-amz-user-agent",userAgentValue:i=""})=>l=>async function(g){if(i.trim().length===0)return await l(g);{const x=t.toLowerCase();return g.headers[x]=g.headers[x]?`${g.headers[x]} ${i}`:i,await l(g)}},rx=(t,i)=>(l,h)=>{const g={};let x=T=>t(T,h);for(let T=i.length-1;T>=0;T--){const s=i[T];x=s(h)(x,g)}return x(l)},Gy=t=>{let i;return()=>(i||(i=t()),i)},$z=t=>!["HEAD","GET","DELETE"].includes(t.toUpperCase()),qz=async({url:t,method:i,headers:l,body:h},{abortSignal:g,cache:x,withCrossDomainCredentials:T})=>{var X;let s;try{s=await fetch(t,{method:i,headers:l,body:$z(i)?h:void 0,signal:g,cache:x,credentials:T?"include":"same-origin"})}catch(oe){throw oe instanceof TypeError?new is({name:op.NetworkError,message:"A network error has occurred.",underlyingError:oe}):oe}const M={};(X=s.headers)==null||X.forEach((oe,Ae)=>{M[Ae.toLowerCase()]=oe});const F={statusCode:s.status,headers:M,body:null},q=Object.assign(s.body??{},{text:Gy(()=>s.text()),blob:Gy(()=>s.blob()),json:Gy(()=>s.json())});return{...F,body:q}},zS=rx(qz,[Gz,jz]),Zz=5*60*1e3;function Wz(t=Zz){return h=>{const g=2**h*100+100*Math.random();return g>t?!1:g}}const TE=5*60*1e3,LS=t=>{const l=Wz(TE)(t);return l===!1?TE:l},Hz=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch","BadRequestException"],Xz=t=>!!t&&Hz.includes(t),RS=t=>async(i,l)=>{const h=l??await t(i)??void 0,g=(h==null?void 0:h.code)||(h==null?void 0:h.name),x=i==null?void 0:i.statusCode;return Qz(l)||Jz(x,g)||Xz(g)||eL(x,g)},Kz=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException"],Yz=["TimeoutError","RequestTimeout","RequestTimeoutException"],Jz=(t,i)=>t===429||!!i&&Kz.includes(i),Qz=t=>(t==null?void 0:t.name)==="Network error",eL=(t,i)=>!!t&&[500,502,503,504].includes(t)||!!i&&Yz.includes(i),H0=URL,tL="6.6.0";let jd;const Am=[];let ng=!1;const nL=10,iL=10,rL=1e3,DS=()=>{var t;if(!jd){if(jd=Dz(),ng)for(;Am.length;)(t=Am.pop())==null||t();else Am.forEach(i=>{i()});SE(ci.ServerSideUnknown,nL),SE(ci.WebUnknown,iL)}return jd},oL=t=>{ng||Am.push(t)};function sL(){jd=void 0}function SE(t,i){jd===t&&!ng&&setTimeout(()=>{sL(),ng=!0,setTimeout(DS,rL)},i)}const aL={},lL=(t,i)=>{var l,h;return(h=(l=aL[t])==null?void 0:l[i])==null?void 0:h.additionalDetails},cL="aws-amplify",uL=({category:t,action:i}={})=>{const l=[[cL,tL]];if(t&&l.push([t,i]),l.push(["framework",DS()]),t&&i){const h=lL(t,i);h&&h.forEach(g=>{l.push(g)})}return l},ox=t=>uL(t).map(([h,g])=>h&&g?`${h}/${g}`:h).join(" "),hL="cognito-identity",dL=({region:t})=>({url:new H0(`https://cognito-identity.${t}.${PS(t)}`)}),pL=()=>t=>async function(l){return l.headers["cache-control"]="no-store",t(l)},OS=rx(zS,[pL]),sx={service:hL,endpointResolver:dL,retryDecider:RS(mp),computeDelay:LS,userAgentValue:ox(),cache:"no-store"};oL(()=>{sx.userAgentValue=ox()});const BS=t=>({"content-type":"application/x-amz-json-1.1","x-amz-target":`AWSCognitoIdentityService.${t}`}),FS=({url:t},i,l)=>({headers:i,url:t,body:l,method:"POST"}),fL=(t,i)=>{const l=BS("GetId"),h=JSON.stringify(t);return FS(i,l,h)},mL=async t=>{if(t.statusCode>=300)throw await mp(t);return{IdentityId:(await Cg(t)).IdentityId,$metadata:Ag(t)}},gL=ix(OS,fL,mL,sx),_L=(t,i)=>{const l=BS("GetCredentialsForIdentity"),h=JSON.stringify(t);return FS(i,l,h)},yL=async t=>{if(t.statusCode>=300)throw await mp(t);{const i=await Cg(t);return{IdentityId:i.IdentityId,Credentials:vL(i.Credentials),$metadata:Ag(t)}}},vL=({AccessKeyId:t,SecretKey:i,SessionToken:l,Expiration:h}={})=>({AccessKeyId:t,SecretKey:i,SessionToken:l,Expiration:h&&new Date(h*1e3)}),AE=ix(OS,_L,yL,sx);class sm extends is{constructor(){super({name:op.PlatformNotSupported,message:"Function not supported on current platform"})}}class NS{constructor(i){this.storage=i}async setItem(i,l){if(!this.storage)throw new sm;this.storage.setItem(i,l)}async getItem(i){if(!this.storage)throw new sm;return this.storage.getItem(i)}async removeItem(i){if(!this.storage)throw new sm;this.storage.removeItem(i)}async clear(){if(!this.storage)throw new sm;this.storage.clear()}}class US{constructor(){this.storage=new Map}get length(){return this.storage.size}key(i){return i>this.length-1?null:Array.from(this.storage.keys())[i]}setItem(i,l){this.storage.set(i,l)}getItem(i){return this.storage.get(i)??null}removeItem(i){this.storage.delete(i)}clear(){this.storage.clear()}}const xL=()=>typeof window<"u"&&window.localStorage?window.localStorage:new US,wL=()=>typeof window<"u"&&window.sessionStorage?window.sessionStorage:new US;class bL extends NS{constructor(){super(xL())}}class EL extends NS{constructor(){super(wL())}}/*! js-cookie v3.0.5 | MIT */function am(t){for(var i=1;i"u")){T=am({},i,T),typeof T.expires=="number"&&(T.expires=new Date(Date.now()+T.expires*864e5)),T.expires&&(T.expires=T.expires.toUTCString()),g=encodeURIComponent(g).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var s="";for(var M in T)T[M]&&(s+="; "+M,T[M]!==!0&&(s+="="+T[M].split(";")[0]));return document.cookie=g+"="+t.write(x,g)+s}}function h(g){if(!(typeof document>"u"||arguments.length&&!g)){for(var x=document.cookie?document.cookie.split("; "):[],T={},s=0;sthis.removeItem(h));await Promise.all(l)}getData(){return{path:this.path,expires:this.expires,domain:this.domain,secure:this.secure,...this.sameSite&&{sameSite:this.sameSite}}}}const lp=new bL;new EL;const SL=t=>{let i;return async(...l)=>i||(i=new Promise((h,g)=>{t(...l).then(x=>{h(x)}).catch(x=>{g(x)}).finally(()=>{i=void 0})}),i)};class Kn extends is{constructor(i){super(i),this.constructor=Kn,Object.setPrototypeOf(this,Kn.prototype)}}function jS(t){if(!t||t.name==="Error"||t instanceof TypeError)throw new Kn({name:op.Unknown,message:"An unknown error has occurred.",underlyingError:t})}const VS="cognito-idp",AL=({region:t})=>{var g;const i=(g=Cs.getConfig().Auth)==null?void 0:g.Cognito,l=i==null?void 0:i.userPoolEndpoint,h=new H0(`https://${VS}.${t}.${PS(t)}`);return{url:l?new H0(l):h}},CL=()=>(t,i)=>async function(h){return h.headers["cache-control"]="no-store",t(h)},IL=rx(zS,[CL]),ML={service:VS,endpointResolver:AL,retryDecider:RS(mp),computeDelay:LS,userAgentValue:ox(),cache:"no-store"},kL=t=>({"content-type":"application/x-amz-json-1.1","x-amz-target":`AWSCognitoIdentityProviderService.${t}`}),PL=({url:t},i,l)=>({headers:i,url:t,body:l,method:"POST"}),zL=t=>(i,l)=>{const h=kL(t),g=JSON.stringify(i);return PL(l,h,g)},LL=()=>async t=>{if(t.statusCode>=300){const i=await mp(t);throw jS(i),new Kn({name:i.name,message:i.message})}else return await Cg(t)},RL=ix(IL,zL("InitiateAuth"),LL(),ML);function DL(t){const i=t==null?void 0:t.split("_")[0];if(!t||t.indexOf("_")<0||!i||typeof i!="string")throw new Kn({name:"InvalidUserPoolId",message:"Invalid user pool id provided."});return i}function K0(t){if(!t||!t.includes(":"))throw new Kn({name:"InvalidIdentityPoolIdException",message:"Invalid identity pool id provided.",recoverySuggestion:"Make sure a valid identityPoolId is given in the config."});return t.split(":")[0]}const GS="UserUnAuthenticatedException",OL="InvalidRedirectException",BL="InvalidAppSchemeException",FL="InvalidPreferredRedirectUrlException";new Kn({name:OL,message:"signInRedirect or signOutRedirect had an invalid format or was not found.",recoverySuggestion:"Please make sure the signIn/Out redirect in your oauth config is valid."});new Kn({name:BL,message:"A valid non-http app scheme was not found in the config.",recoverySuggestion:"Please make sure a valid custom app scheme is present in the config."});new Kn({name:FL,message:"The given preferredRedirectUrl does not match any items in the redirectSignOutUrls array from the config.",recoverySuggestion:"Please make sure a matching preferredRedirectUrl is provided."});const NL="InvalidOriginException";new Kn({name:NL,message:"redirect is coming from a different origin. The oauth flow needs to be initiated from the same origin",recoverySuggestion:"Please call signInWithRedirect from the same origin."});const UL="TokenRefreshException";function jL(t){if(!t||!t.idToken)throw new Kn({name:GS,message:"User needs to be authenticated to call this API.",recoverySuggestion:"Sign in before calling this API again."})}const VL=new Kn({name:UL,message:`Token refresh is not supported when authenticated with the 'implicit grant' (token) oauth flow. + Please change your oauth configuration to use 'code grant' flow.`,recoverySuggestion:`Please logout and change your Amplify configuration to use "code grant" flow. + E.g { responseType: 'code' }`}),GL=new Kn({name:GS,message:"User needs to be authenticated to call this API.",recoverySuggestion:"Sign in before calling this API again."});function $L(t){if(WL(t))throw VL;if(!ZL(t))throw GL}const qL={inflightOAuth:"inflightOAuth",oauthSignIn:"oauthSignIn",oauthPKCE:"oauthPKCE",oauthState:"oauthState"};function $S(t){return(t==null?void 0:t.accessToken)||(t==null?void 0:t.idToken)}function ZL(t){return $S(t)&&(t==null?void 0:t.refreshToken)}function WL(t){return $S(t)&&!(t!=null&&t.refreshToken)}function HL({username:t,userPoolId:i,userPoolClientId:l}){if(typeof window>"u")return;const h=window.AmazonCognitoAdvancedSecurityData;if(typeof h>"u")return;const g=h.getData(t,i,l);return g?{EncodedData:g}:{}}const XL=async({tokens:t,authConfig:i,username:l})=>{var oe,Ae;pr(i==null?void 0:i.Cognito);const h=DL(i.Cognito.userPoolId);$L(t);const g=t.refreshToken,x={REFRESH_TOKEN:g};(oe=t.deviceMetadata)!=null&&oe.deviceKey&&(x.DEVICE_KEY=t.deviceMetadata.deviceKey);const T=HL({username:l,userPoolId:i.Cognito.userPoolId,userPoolClientId:i.Cognito.userPoolClientId}),{AuthenticationResult:s}=await RL({region:h},{ClientId:(Ae=i==null?void 0:i.Cognito)==null?void 0:Ae.userPoolClientId,AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:x,UserContextData:T}),M=sp((s==null?void 0:s.AccessToken)??""),F=s!=null&&s.IdToken?sp(s.IdToken):void 0,{iat:q}=M.payload;if(!q)throw new Kn({name:"iatNotFoundException",message:"iat not found in access token"});const X=q*1e3-new Date().getTime();return{accessToken:M,idToken:F,clockDrift:X,refreshToken:g,username:l}},KL=SL(XL),YL={accessToken:"accessToken",idToken:"idToken",oidcProvider:"oidcProvider",clockDrift:"clockDrift",refreshToken:"refreshToken",deviceKey:"deviceKey",randomPasswordKey:"randomPasswordKey",deviceGroupKey:"deviceGroupKey",signInDetails:"signInDetails",oauthMetadata:"oauthMetadata"};var ig;(function(t){t.InvalidAuthTokens="InvalidAuthTokens"})(ig||(ig={}));const JL={[ig.InvalidAuthTokens]:{message:"Invalid tokens.",recoverySuggestion:"Make sure the tokens are valid."}},QL=SS(JL);class eR{constructor(){this.name="CognitoIdentityServiceProvider"}getKeyValueStorage(){if(!this.keyValueStorage)throw new Kn({name:"KeyValueStorageNotFoundException",message:"KeyValueStorage was not found in TokenStore"});return this.keyValueStorage}setKeyValueStorage(i){this.keyValueStorage=i}setAuthConfig(i){this.authConfig=i}async loadTokens(){try{const i=await this.getAuthKeys(),l=await this.getKeyValueStorage().getItem(i.accessToken);if(!l)throw new Kn({name:"NoSessionFoundException",message:"Auth session was not found. Make sure to call signIn."});const h=sp(l),g=await this.getKeyValueStorage().getItem(i.idToken),x=g?sp(g):void 0,T=await this.getKeyValueStorage().getItem(i.refreshToken)??void 0,s=await this.getKeyValueStorage().getItem(i.clockDrift)??"0",M=Number.parseInt(s),F=await this.getKeyValueStorage().getItem(i.signInDetails),q={accessToken:h,idToken:x,refreshToken:T,deviceMetadata:await this.getDeviceMetadata()??void 0,clockDrift:M,username:await this.getLastAuthUser()};return F&&(q.signInDetails=JSON.parse(F)),q}catch{return null}}async storeTokens(i){QL(i!==void 0,ig.InvalidAuthTokens),await this.clearTokens();const l=i.username;await this.getKeyValueStorage().setItem(this.getLastAuthUserKey(),l);const h=await this.getAuthKeys();await this.getKeyValueStorage().setItem(h.accessToken,i.accessToken.toString()),i.idToken&&await this.getKeyValueStorage().setItem(h.idToken,i.idToken.toString()),i.refreshToken&&await this.getKeyValueStorage().setItem(h.refreshToken,i.refreshToken),i.deviceMetadata&&(i.deviceMetadata.deviceKey&&await this.getKeyValueStorage().setItem(h.deviceKey,i.deviceMetadata.deviceKey),i.deviceMetadata.deviceGroupKey&&await this.getKeyValueStorage().setItem(h.deviceGroupKey,i.deviceMetadata.deviceGroupKey),await this.getKeyValueStorage().setItem(h.randomPasswordKey,i.deviceMetadata.randomPassword)),i.signInDetails&&await this.getKeyValueStorage().setItem(h.signInDetails,JSON.stringify(i.signInDetails)),await this.getKeyValueStorage().setItem(h.clockDrift,`${i.clockDrift}`)}async clearTokens(){const i=await this.getAuthKeys();await Promise.all([this.getKeyValueStorage().removeItem(i.accessToken),this.getKeyValueStorage().removeItem(i.idToken),this.getKeyValueStorage().removeItem(i.clockDrift),this.getKeyValueStorage().removeItem(i.refreshToken),this.getKeyValueStorage().removeItem(i.signInDetails),this.getKeyValueStorage().removeItem(this.getLastAuthUserKey()),this.getKeyValueStorage().removeItem(i.oauthMetadata)])}async getDeviceMetadata(i){const l=await this.getAuthKeys(i),h=await this.getKeyValueStorage().getItem(l.deviceKey),g=await this.getKeyValueStorage().getItem(l.deviceGroupKey),x=await this.getKeyValueStorage().getItem(l.randomPasswordKey);return x&&g&&h?{deviceKey:h,deviceGroupKey:g,randomPassword:x}:null}async clearDeviceMetadata(i){const l=await this.getAuthKeys(i);await Promise.all([this.getKeyValueStorage().removeItem(l.deviceKey),this.getKeyValueStorage().removeItem(l.deviceGroupKey),this.getKeyValueStorage().removeItem(l.randomPasswordKey)])}async getAuthKeys(i){var h;pr((h=this.authConfig)==null?void 0:h.Cognito);const l=i??await this.getLastAuthUser();return tR(this.name,`${this.authConfig.Cognito.userPoolClientId}.${l}`)}getLastAuthUserKey(){var l;pr((l=this.authConfig)==null?void 0:l.Cognito);const i=this.authConfig.Cognito.userPoolClientId;return`${this.name}.${i}.LastAuthUser`}async getLastAuthUser(){return await this.getKeyValueStorage().getItem(this.getLastAuthUserKey())??"username"}async setOAuthMetadata(i){const{oauthMetadata:l}=await this.getAuthKeys();await this.getKeyValueStorage().setItem(l,JSON.stringify(i))}async getOAuthMetadata(){const{oauthMetadata:i}=await this.getAuthKeys(),l=await this.getKeyValueStorage().getItem(i);return l&&JSON.parse(l)}}const tR=(t,i)=>ax(YL)(`${t}`,i);function ax(t){const i=Object.values({...t});return(l,h)=>i.reduce((g,x)=>({...g,[x]:`${l}.${h}.${x}`}),{})}const IE="amplify-signin-with-hostedUI",Yo="CognitoIdentityServiceProvider";class nR{constructor(i){this.keyValueStorage=i}async clearOAuthInflightData(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);await Promise.all([this.keyValueStorage.removeItem(i.inflightOAuth),this.keyValueStorage.removeItem(i.oauthPKCE),this.keyValueStorage.removeItem(i.oauthState)])}async clearOAuthData(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return await this.clearOAuthInflightData(),await this.keyValueStorage.removeItem(IE),this.keyValueStorage.removeItem(i.oauthSignIn)}loadOAuthState(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.getItem(i.oauthState)}storeOAuthState(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.setItem(l.oauthState,i)}loadPKCE(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.getItem(i.oauthPKCE)}storePKCE(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.setItem(l.oauthPKCE,i)}setAuthConfig(i){this.cognitoConfig=i}async loadOAuthInFlight(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return await this.keyValueStorage.getItem(i.inflightOAuth)==="true"}async storeOAuthInFlight(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);await this.keyValueStorage.setItem(l.inflightOAuth,`${i}`)}async loadOAuthSignIn(){var x;pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId),l=await this.keyValueStorage.getItem(IE),[h,g]=((x=await this.keyValueStorage.getItem(i.oauthSignIn))==null?void 0:x.split(","))??[];return{isOAuthSignIn:h==="true"||l==="true",preferPrivateSession:g==="true"}}async storeOAuthSignIn(i,l=!1){pr(this.cognitoConfig);const h=Jo(Yo,this.cognitoConfig.userPoolClientId);await this.keyValueStorage.setItem(h.oauthSignIn,`${i},${l}`)}}const Jo=(t,i)=>ax(qL)(t,i),ME=new nR(lp),iR=[],rR=t=>{iR.push(t)};class oR{constructor(){this.waitForInflightOAuth=Oz()?async()=>{if(await ME.loadOAuthInFlight())return this.inflightPromise?this.inflightPromise:(this.inflightPromise=new Promise((i,l)=>{rR(i)}),this.inflightPromise)}:async()=>{}}setAuthConfig(i){ME.setAuthConfig(i.Cognito),this.authConfig=i}setTokenRefresher(i){this.tokenRefresher=i}setAuthTokenStore(i){this.tokenStore=i}getTokenStore(){if(!this.tokenStore)throw new Kn({name:"EmptyTokenStoreException",message:"TokenStore not set"});return this.tokenStore}getTokenRefresher(){if(!this.tokenRefresher)throw new Kn({name:"EmptyTokenRefresherException",message:"TokenRefresher not set"});return this.tokenRefresher}async getTokens(i){var T,s,M,F,q;let l;try{pr((T=this.authConfig)==null?void 0:T.Cognito)}catch{return null}await this.waitForInflightOAuth(),this.inflightPromise=void 0,l=await this.getTokenStore().loadTokens();const h=await this.getTokenStore().getLastAuthUser();if(l===null)return null;const g=!!(l!=null&&l.idToken)&&uE({expiresAt:(((M=(s=l.idToken)==null?void 0:s.payload)==null?void 0:M.exp)??0)*1e3,clockDrift:l.clockDrift??0}),x=uE({expiresAt:(((q=(F=l.accessToken)==null?void 0:F.payload)==null?void 0:q.exp)??0)*1e3,clockDrift:l.clockDrift??0});return(i!=null&&i.forceRefresh||g||x)&&(l=await this.refreshTokens({tokens:l,username:h}),l===null)?null:{accessToken:l==null?void 0:l.accessToken,idToken:l==null?void 0:l.idToken,signInDetails:l==null?void 0:l.signInDetails}}async refreshTokens({tokens:i,username:l}){try{const{signInDetails:h}=i,g=await this.getTokenRefresher()({tokens:i,authConfig:this.authConfig,username:l});return g.signInDetails=h,await this.setTokens({tokens:g}),W0.dispatch("auth",{event:"tokenRefresh"},"Auth",tg),g}catch(h){return this.handleErrors(h)}}handleErrors(i){if(jS(i),i.message!=="Network error"&&this.clearTokens(),W0.dispatch("auth",{event:"tokenRefresh_failure",data:{error:i}},"Auth",tg),i.name.startsWith("NotAuthorizedException"))return null;throw i}async setTokens({tokens:i}){return this.getTokenStore().storeTokens(i)}async clearTokens(){return this.getTokenStore().clearTokens()}getDeviceMetadata(i){return this.getTokenStore().getDeviceMetadata(i)}clearDeviceMetadata(i){return this.getTokenStore().clearDeviceMetadata(i)}setOAuthMetadata(i){return this.getTokenStore().setOAuthMetadata(i)}getOAuthMetadata(){return this.getTokenStore().getOAuthMetadata()}}class sR{constructor(){this.authTokenStore=new eR,this.authTokenStore.setKeyValueStorage(lp),this.tokenOrchestrator=new oR,this.tokenOrchestrator.setAuthTokenStore(this.authTokenStore),this.tokenOrchestrator.setTokenRefresher(KL)}getTokens({forceRefresh:i}={forceRefresh:!1}){return this.tokenOrchestrator.getTokens({forceRefresh:i})}setKeyValueStorage(i){this.authTokenStore.setKeyValueStorage(i)}setAuthConfig(i){this.authTokenStore.setAuthConfig(i),this.tokenOrchestrator.setAuthConfig(i)}}const cm=new sR,aR={identityId:"identityId"},lR=new ko("DefaultIdentityIdStore");class cR{setAuthConfig(i){Sm(i.Cognito),this.authConfig=i,this._authKeys=uR("Cognito",i.Cognito.identityPoolId)}constructor(i){this._authKeys={},this.keyValueStorage=i}async loadIdentityId(){var i;Sm((i=this.authConfig)==null?void 0:i.Cognito);try{if(this._primaryIdentityId)return{id:this._primaryIdentityId,type:"primary"};{const l=await this.keyValueStorage.getItem(this._authKeys.identityId);return l?{id:l,type:"guest"}:null}}catch(l){return lR.log("Error getting stored IdentityId.",l),null}}async storeIdentityId(i){var l;Sm((l=this.authConfig)==null?void 0:l.Cognito),i.type==="guest"?(this.keyValueStorage.setItem(this._authKeys.identityId,i.id),this._primaryIdentityId=void 0):(this._primaryIdentityId=i.id,this.keyValueStorage.removeItem(this._authKeys.identityId))}async clearIdentityId(){this._primaryIdentityId=void 0,await this.keyValueStorage.removeItem(this._authKeys.identityId)}}const uR=(t,i)=>ax(aR)(`com.amplify.${t}`,i);function qS(t){const i=sp(t).payload.iss,l={};if(!i)throw new Kn({name:"InvalidIdTokenException",message:"Invalid Idtoken."});const h=i.replace(/(^\w+:|^)\/\//,"");return l[h]=t,l}const hR=new ko("CognitoIdentityIdProvider");async function dR({tokens:t,authConfig:i,identityIdStore:l}){l.setAuthConfig({Cognito:i});let h=await l.loadIdentityId();if(t){if(h&&h.type==="primary")return h.id;{const g=t.idToken?qS(t.idToken.toString()):{},x=await kE(g,i);h&&h.id===x&&hR.debug(`The guest identity ${h.id} has become the primary identity.`),h={id:x,type:"primary"}}}else{if(h&&h.type==="guest")return h.id;h={id:await kE({},i),type:"guest"}}return l.storeIdentityId(h),h.id}async function kE(t,i){const l=i==null?void 0:i.identityPoolId,h=K0(l),g=(await gL({region:h},{IdentityPoolId:l,Logins:t})).IdentityId;if(!g)throw new Kn({name:"GetIdResponseException",message:"Received undefined response from getId operation",recoverySuggestion:"Make sure to pass a valid identityPoolId in the configuration."});return g}const um=new ko("CognitoCredentialsProvider"),PE=50*60*1e3;class pR{constructor(i){this._nextCredentialsRefresh=0,this._identityIdStore=i}async clearCredentialsAndIdentityId(){um.debug("Clearing out credentials and identityId"),this._credentialsAndIdentityId=void 0,await this._identityIdStore.clearIdentityId()}async clearCredentials(){um.debug("Clearing out in-memory credentials"),this._credentialsAndIdentityId=void 0}async getCredentialsAndIdentityId(i){const l=i.authenticated,{tokens:h}=i,{authConfig:g}=i;try{Sm(g==null?void 0:g.Cognito)}catch{return}if(!l&&!g.Cognito.allowGuestAccess)return;const{forceRefresh:x}=i,T=this.hasTokenChanged(h),s=await dR({tokens:h,authConfig:g.Cognito,identityIdStore:this._identityIdStore});return(x||T)&&this.clearCredentials(),l?(jL(h),this.credsForOIDCTokens(g.Cognito,h,s)):this.getGuestCredentials(s,g.Cognito)}async getGuestCredentials(i,l){if(this._credentialsAndIdentityId&&!this.isPastTTL()&&this._credentialsAndIdentityId.isAuthenticatedCreds===!1)return um.info("returning stored credentials as they neither past TTL nor expired."),this._credentialsAndIdentityId;this.clearCredentials();const h=K0(l.identityPoolId),g=await AE({region:h},{IdentityId:i});if(g.Credentials&&g.Credentials.AccessKeyId&&g.Credentials.SecretKey){this._nextCredentialsRefresh=new Date().getTime()+PE;const x={credentials:{accessKeyId:g.Credentials.AccessKeyId,secretAccessKey:g.Credentials.SecretKey,sessionToken:g.Credentials.SessionToken,expiration:g.Credentials.Expiration},identityId:i},T=g.IdentityId;return T&&(x.identityId=T,this._identityIdStore.storeIdentityId({id:T,type:"guest"})),this._credentialsAndIdentityId={...x,isAuthenticatedCreds:!1},x}else throw new Kn({name:"CredentialsNotFoundException",message:"Cognito did not respond with either Credentials, AccessKeyId or SecretKey."})}async credsForOIDCTokens(i,l,h){var s;if(this._credentialsAndIdentityId&&!this.isPastTTL()&&this._credentialsAndIdentityId.isAuthenticatedCreds===!0)return um.debug("returning stored credentials as they neither past TTL nor expired."),this._credentialsAndIdentityId;this.clearCredentials();const g=l.idToken?qS(l.idToken.toString()):{},x=K0(i.identityPoolId),T=await AE({region:x},{IdentityId:h,Logins:g});if(T.Credentials&&T.Credentials.AccessKeyId&&T.Credentials.SecretKey){const M={credentials:{accessKeyId:T.Credentials.AccessKeyId,secretAccessKey:T.Credentials.SecretKey,sessionToken:T.Credentials.SessionToken,expiration:T.Credentials.Expiration},identityId:h};this._credentialsAndIdentityId={...M,isAuthenticatedCreds:!0,associatedIdToken:(s=l.idToken)==null?void 0:s.toString()},this._nextCredentialsRefresh=new Date().getTime()+PE;const F=T.IdentityId;return F&&(M.identityId=F,this._identityIdStore.storeIdentityId({id:F,type:"primary"})),M}else throw new Kn({name:"CredentialsException",message:"Cognito did not respond with either Credentials, AccessKeyId or SecretKey."})}isPastTTL(){return this._nextCredentialsRefresh===void 0?!0:this._nextCredentialsRefresh<=Date.now()}hasTokenChanged(i){var l,h;return!!i&&!!((l=this._credentialsAndIdentityId)!=null&&l.associatedIdToken)&&((h=i.idToken)==null?void 0:h.toString())!==this._credentialsAndIdentityId.associatedIdToken}}const fR=new pR(new cR(lp)),mR={configure(t,i){const l=IS(t);if(!l.Auth){Cs.configure(l,i);return}if(i!=null&&i.Auth){Cs.configure(l,i);return}if(!Cs.libraryOptions.Auth){cm.setAuthConfig(l.Auth),cm.setKeyValueStorage(i!=null&&i.ssr?new CE({sameSite:"lax"}):lp),Cs.configure(l,{...i,Auth:{tokenProvider:cm,credentialsProvider:fR}});return}if(i){i.ssr!==void 0&&cm.setKeyValueStorage(i.ssr?new CE({sameSite:"lax"}):lp),Cs.configure(l,{Auth:Cs.libraryOptions.Auth,...i});return}Cs.configure(l)},getConfig(){return Cs.getConfig()}};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */var gR={oauth:{domain:"authcori.auth.us-east-1.amazoncognito.com"}},_R="us-east-1",yR="us-east-1_QeA4600FA",vR="5eusi16g0o2q1g1rr5ehgudodm",xR="authcori.auth.us-east-1.amazoncognito.com",wR="us-east-1",bR="us-east-1:2194a76a-fa3d-4c33-999e-e3c4b2b049ee",ER=["EMAIL"],TR=["EMAIL","OPENID"],SR=["EMAIL","OPENID"],AR={passwordPolicyMinLength:8,passwordPolicyCharacters:["REQUIRES_NUMBERS","REQUIRES_LOWERCASE","REQUIRES_UPPERCASE","REQUIRES_SYMBOLS"]},CR="https://bdkxhfgus5dztobic7gvn5ymue.appsync-api.us-east-1.amazonaws.com/graphql",IR="us-east-1",MR="da2-yexc3mow25fc3amaendi4vscuq",kR="API_KEY",PR="AMAZON_COGNITO_USER_POOLS,AWS_IAM",zR={version:1,models:{Todo:{name:"Todo",fields:{id:{name:"id",isArray:!1,type:"ID",isRequired:!0,attributes:[]},content:{name:"content",isArray:!1,type:"String",isRequired:!1,attributes:[]},owner:{name:"owner",isArray:!1,type:"String",isRequired:!1,attributes:[]},createdAt:{name:"createdAt",isArray:!1,type:"AWSDateTime",isRequired:!0,attributes:[]},updatedAt:{name:"updatedAt",isArray:!1,type:"AWSDateTime",isRequired:!0,attributes:[]}},syncable:!0,pluralName:"Todos",attributes:[{type:"model",properties:{}},{type:"key",properties:{fields:["id"]}},{type:"auth",properties:{rules:[{provider:"userPools",ownerField:"owner",allow:"owner",identityClaim:"cognito:username",operations:["create","update","delete","read"]},{allow:"public",operations:["read"]}]}}],primaryKeyInfo:{isCustomPrimaryKey:!1,primaryKeyFieldName:"id",sortKeyFieldNames:[]}}},enums:{},nonModels:{}},LR={Auth:gR,aws_project_region:_R,aws_user_pools_id:yR,aws_user_pools_web_client_id:vR,aws_cognito_domain:xR,aws_cognito_region:wR,aws_cognito_identity_pool_id:bR,aws_cognito_signup_attributes:ER,aws_cognito_username_attributes:TR,aws_cognito_verification_mechanisms:SR,aws_cognito_password_protection_settings:AR,aws_appsync_graphqlEndpoint:CR,aws_appsync_region:IR,aws_appsync_apiKey:MR,aws_appsync_authenticationType:kR,aws_appsync_additionalAuthenticationTypes:PR,modelIntrospection:zR};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */mR.configure(LR);const RR={domain:void 0,region:void 0,identityPoolId:void 0,userPoolId:void 0,userPoolClientId:void 0};ft.createContext(RR);function ZS(t,i){return function(){return t.apply(i,arguments)}}const{toString:DR}=Object.prototype,{getPrototypeOf:lx}=Object,Ig=(t=>i=>{const l=DR.call(i);return t[l]||(t[l]=l.slice(8,-1).toLowerCase())})(Object.create(null)),Lo=t=>(t=t.toLowerCase(),i=>Ig(i)===t),Mg=t=>i=>typeof i===t,{isArray:Bu}=Array,cp=Mg("undefined");function OR(t){return t!==null&&!cp(t)&&t.constructor!==null&&!cp(t.constructor)&&zr(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const WS=Lo("ArrayBuffer");function BR(t){let i;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?i=ArrayBuffer.isView(t):i=t&&t.buffer&&WS(t.buffer),i}const FR=Mg("string"),zr=Mg("function"),HS=Mg("number"),kg=t=>t!==null&&typeof t=="object",NR=t=>t===!0||t===!1,Cm=t=>{if(Ig(t)!=="object")return!1;const i=lx(t);return(i===null||i===Object.prototype||Object.getPrototypeOf(i)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},UR=Lo("Date"),jR=Lo("File"),VR=Lo("Blob"),GR=Lo("FileList"),$R=t=>kg(t)&&zr(t.pipe),qR=t=>{let i;return t&&(typeof FormData=="function"&&t instanceof FormData||zr(t.append)&&((i=Ig(t))==="formdata"||i==="object"&&zr(t.toString)&&t.toString()==="[object FormData]"))},ZR=Lo("URLSearchParams"),[WR,HR,XR,KR]=["ReadableStream","Request","Response","Headers"].map(Lo),YR=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function gp(t,i,{allOwnKeys:l=!1}={}){if(t===null||typeof t>"u")return;let h,g;if(typeof t!="object"&&(t=[t]),Bu(t))for(h=0,g=t.length;h0;)if(g=l[h],i===g.toLowerCase())return g;return null}const Gl=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),KS=t=>!cp(t)&&t!==Gl;function Y0(){const{caseless:t}=KS(this)&&this||{},i={},l=(h,g)=>{const x=t&&XS(i,g)||g;Cm(i[x])&&Cm(h)?i[x]=Y0(i[x],h):Cm(h)?i[x]=Y0({},h):Bu(h)?i[x]=h.slice():i[x]=h};for(let h=0,g=arguments.length;h(gp(i,(g,x)=>{l&&zr(g)?t[x]=ZS(g,l):t[x]=g},{allOwnKeys:h}),t),QR=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),eD=(t,i,l,h)=>{t.prototype=Object.create(i.prototype,h),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:i.prototype}),l&&Object.assign(t.prototype,l)},tD=(t,i,l,h)=>{let g,x,T;const s={};if(i=i||{},t==null)return i;do{for(g=Object.getOwnPropertyNames(t),x=g.length;x-- >0;)T=g[x],(!h||h(T,t,i))&&!s[T]&&(i[T]=t[T],s[T]=!0);t=l!==!1&&lx(t)}while(t&&(!l||l(t,i))&&t!==Object.prototype);return i},nD=(t,i,l)=>{t=String(t),(l===void 0||l>t.length)&&(l=t.length),l-=i.length;const h=t.indexOf(i,l);return h!==-1&&h===l},iD=t=>{if(!t)return null;if(Bu(t))return t;let i=t.length;if(!HS(i))return null;const l=new Array(i);for(;i-- >0;)l[i]=t[i];return l},rD=(t=>i=>t&&i instanceof t)(typeof Uint8Array<"u"&&lx(Uint8Array)),oD=(t,i)=>{const h=(t&&t[Symbol.iterator]).call(t);let g;for(;(g=h.next())&&!g.done;){const x=g.value;i.call(t,x[0],x[1])}},sD=(t,i)=>{let l;const h=[];for(;(l=t.exec(i))!==null;)h.push(l);return h},aD=Lo("HTMLFormElement"),lD=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(l,h,g){return h.toUpperCase()+g}),zE=(({hasOwnProperty:t})=>(i,l)=>t.call(i,l))(Object.prototype),cD=Lo("RegExp"),YS=(t,i)=>{const l=Object.getOwnPropertyDescriptors(t),h={};gp(l,(g,x)=>{let T;(T=i(g,x,t))!==!1&&(h[x]=T||g)}),Object.defineProperties(t,h)},uD=t=>{YS(t,(i,l)=>{if(zr(t)&&["arguments","caller","callee"].indexOf(l)!==-1)return!1;const h=t[l];if(zr(h)){if(i.enumerable=!1,"writable"in i){i.writable=!1;return}i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+l+"'")})}})},hD=(t,i)=>{const l={},h=g=>{g.forEach(x=>{l[x]=!0})};return Bu(t)?h(t):h(String(t).split(i)),l},dD=()=>{},pD=(t,i)=>t!=null&&Number.isFinite(t=+t)?t:i,$y="abcdefghijklmnopqrstuvwxyz",LE="0123456789",JS={DIGIT:LE,ALPHA:$y,ALPHA_DIGIT:$y+$y.toUpperCase()+LE},fD=(t=16,i=JS.ALPHA_DIGIT)=>{let l="";const{length:h}=i;for(;t--;)l+=i[Math.random()*h|0];return l};function mD(t){return!!(t&&zr(t.append)&&t[Symbol.toStringTag]==="FormData"&&t[Symbol.iterator])}const gD=t=>{const i=new Array(10),l=(h,g)=>{if(kg(h)){if(i.indexOf(h)>=0)return;if(!("toJSON"in h)){i[g]=h;const x=Bu(h)?[]:{};return gp(h,(T,s)=>{const M=l(T,g+1);!cp(M)&&(x[s]=M)}),i[g]=void 0,x}}return h};return l(t,0)},_D=Lo("AsyncFunction"),yD=t=>t&&(kg(t)||zr(t))&&zr(t.then)&&zr(t.catch),QS=((t,i)=>t?setImmediate:i?((l,h)=>(Gl.addEventListener("message",({source:g,data:x})=>{g===Gl&&x===l&&h.length&&h.shift()()},!1),g=>{h.push(g),Gl.postMessage(l,"*")}))(`axios@${Math.random()}`,[]):l=>setTimeout(l))(typeof setImmediate=="function",zr(Gl.postMessage)),vD=typeof queueMicrotask<"u"?queueMicrotask.bind(Gl):typeof process<"u"&&process.nextTick||QS,Fe={isArray:Bu,isArrayBuffer:WS,isBuffer:OR,isFormData:qR,isArrayBufferView:BR,isString:FR,isNumber:HS,isBoolean:NR,isObject:kg,isPlainObject:Cm,isReadableStream:WR,isRequest:HR,isResponse:XR,isHeaders:KR,isUndefined:cp,isDate:UR,isFile:jR,isBlob:VR,isRegExp:cD,isFunction:zr,isStream:$R,isURLSearchParams:ZR,isTypedArray:rD,isFileList:GR,forEach:gp,merge:Y0,extend:JR,trim:YR,stripBOM:QR,inherits:eD,toFlatObject:tD,kindOf:Ig,kindOfTest:Lo,endsWith:nD,toArray:iD,forEachEntry:oD,matchAll:sD,isHTMLForm:aD,hasOwnProperty:zE,hasOwnProp:zE,reduceDescriptors:YS,freezeMethods:uD,toObjectSet:hD,toCamelCase:lD,noop:dD,toFiniteNumber:pD,findKey:XS,global:Gl,isContextDefined:KS,ALPHABET:JS,generateString:fD,isSpecCompliantForm:mD,toJSONObject:gD,isAsyncFn:_D,isThenable:yD,setImmediate:QS,asap:vD};function qt(t,i,l,h,g){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",i&&(this.code=i),l&&(this.config=l),h&&(this.request=h),g&&(this.response=g,this.status=g.status?g.status:null)}Fe.inherits(qt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Fe.toJSONObject(this.config),code:this.code,status:this.status}}});const eA=qt.prototype,tA={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{tA[t]={value:t}});Object.defineProperties(qt,tA);Object.defineProperty(eA,"isAxiosError",{value:!0});qt.from=(t,i,l,h,g,x)=>{const T=Object.create(eA);return Fe.toFlatObject(t,T,function(M){return M!==Error.prototype},s=>s!=="isAxiosError"),qt.call(T,t.message,i,l,h,g),T.cause=t,T.name=t.name,x&&Object.assign(T,x),T};const xD=null;function J0(t){return Fe.isPlainObject(t)||Fe.isArray(t)}function nA(t){return Fe.endsWith(t,"[]")?t.slice(0,-2):t}function RE(t,i,l){return t?t.concat(i).map(function(g,x){return g=nA(g),!l&&x?"["+g+"]":g}).join(l?".":""):i}function wD(t){return Fe.isArray(t)&&!t.some(J0)}const bD=Fe.toFlatObject(Fe,{},null,function(i){return/^is[A-Z]/.test(i)});function Pg(t,i,l){if(!Fe.isObject(t))throw new TypeError("target must be an object");i=i||new FormData,l=Fe.toFlatObject(l,{metaTokens:!0,dots:!1,indexes:!1},!1,function(ke,ze){return!Fe.isUndefined(ze[ke])});const h=l.metaTokens,g=l.visitor||q,x=l.dots,T=l.indexes,M=(l.Blob||typeof Blob<"u"&&Blob)&&Fe.isSpecCompliantForm(i);if(!Fe.isFunction(g))throw new TypeError("visitor must be a function");function F(fe){if(fe===null)return"";if(Fe.isDate(fe))return fe.toISOString();if(!M&&Fe.isBlob(fe))throw new qt("Blob is not supported. Use a Buffer instead.");return Fe.isArrayBuffer(fe)||Fe.isTypedArray(fe)?M&&typeof Blob=="function"?new Blob([fe]):Buffer.from(fe):fe}function q(fe,ke,ze){let ue=fe;if(fe&&!ze&&typeof fe=="object"){if(Fe.endsWith(ke,"{}"))ke=h?ke:ke.slice(0,-2),fe=JSON.stringify(fe);else if(Fe.isArray(fe)&&wD(fe)||(Fe.isFileList(fe)||Fe.endsWith(ke,"[]"))&&(ue=Fe.toArray(fe)))return ke=nA(ke),ue.forEach(function(le,De){!(Fe.isUndefined(le)||le===null)&&i.append(T===!0?RE([ke],De,x):T===null?ke:ke+"[]",F(le))}),!1}return J0(fe)?!0:(i.append(RE(ze,ke,x),F(fe)),!1)}const X=[],oe=Object.assign(bD,{defaultVisitor:q,convertValue:F,isVisitable:J0});function Ae(fe,ke){if(!Fe.isUndefined(fe)){if(X.indexOf(fe)!==-1)throw Error("Circular reference detected in "+ke.join("."));X.push(fe),Fe.forEach(fe,function(ue,re){(!(Fe.isUndefined(ue)||ue===null)&&g.call(i,ue,Fe.isString(re)?re.trim():re,ke,oe))===!0&&Ae(ue,ke?ke.concat(re):[re])}),X.pop()}}if(!Fe.isObject(t))throw new TypeError("data must be an object");return Ae(t),i}function DE(t){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(h){return i[h]})}function cx(t,i){this._pairs=[],t&&Pg(t,this,i)}const iA=cx.prototype;iA.append=function(i,l){this._pairs.push([i,l])};iA.toString=function(i){const l=i?function(h){return i.call(this,h,DE)}:DE;return this._pairs.map(function(g){return l(g[0])+"="+l(g[1])},"").join("&")};function ED(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function rA(t,i,l){if(!i)return t;const h=l&&l.encode||ED,g=l&&l.serialize;let x;if(g?x=g(i,l):x=Fe.isURLSearchParams(i)?i.toString():new cx(i,l).toString(h),x){const T=t.indexOf("#");T!==-1&&(t=t.slice(0,T)),t+=(t.indexOf("?")===-1?"?":"&")+x}return t}class TD{constructor(){this.handlers=[]}use(i,l,h){return this.handlers.push({fulfilled:i,rejected:l,synchronous:h?h.synchronous:!1,runWhen:h?h.runWhen:null}),this.handlers.length-1}eject(i){this.handlers[i]&&(this.handlers[i]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(i){Fe.forEach(this.handlers,function(h){h!==null&&i(h)})}}const OE=TD,oA={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},SD=typeof URLSearchParams<"u"?URLSearchParams:cx,AD=typeof FormData<"u"?FormData:null,CD=typeof Blob<"u"?Blob:null,ID={isBrowser:!0,classes:{URLSearchParams:SD,FormData:AD,Blob:CD},protocols:["http","https","file","blob","url","data"]},ux=typeof window<"u"&&typeof document<"u",Q0=typeof navigator=="object"&&navigator||void 0,MD=ux&&(!Q0||["ReactNative","NativeScript","NS"].indexOf(Q0.product)<0),kD=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),PD=ux&&window.location.href||"http://localhost",zD=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ux,hasStandardBrowserEnv:MD,hasStandardBrowserWebWorkerEnv:kD,navigator:Q0,origin:PD},Symbol.toStringTag,{value:"Module"})),vr={...zD,...ID};function LD(t,i){return Pg(t,new vr.classes.URLSearchParams,Object.assign({visitor:function(l,h,g,x){return vr.isNode&&Fe.isBuffer(l)?(this.append(h,l.toString("base64")),!1):x.defaultVisitor.apply(this,arguments)}},i))}function RD(t){return Fe.matchAll(/\w+|\[(\w*)]/g,t).map(i=>i[0]==="[]"?"":i[1]||i[0])}function DD(t){const i={},l=Object.keys(t);let h;const g=l.length;let x;for(h=0;h=l.length;return T=!T&&Fe.isArray(g)?g.length:T,M?(Fe.hasOwnProp(g,T)?g[T]=[g[T],h]:g[T]=h,!s):((!g[T]||!Fe.isObject(g[T]))&&(g[T]=[]),i(l,h,g[T],x)&&Fe.isArray(g[T])&&(g[T]=DD(g[T])),!s)}if(Fe.isFormData(t)&&Fe.isFunction(t.entries)){const l={};return Fe.forEachEntry(t,(h,g)=>{i(RD(h),g,l,0)}),l}return null}function OD(t,i,l){if(Fe.isString(t))try{return(i||JSON.parse)(t),Fe.trim(t)}catch(h){if(h.name!=="SyntaxError")throw h}return(l||JSON.stringify)(t)}const hx={transitional:oA,adapter:["xhr","http","fetch"],transformRequest:[function(i,l){const h=l.getContentType()||"",g=h.indexOf("application/json")>-1,x=Fe.isObject(i);if(x&&Fe.isHTMLForm(i)&&(i=new FormData(i)),Fe.isFormData(i))return g?JSON.stringify(sA(i)):i;if(Fe.isArrayBuffer(i)||Fe.isBuffer(i)||Fe.isStream(i)||Fe.isFile(i)||Fe.isBlob(i)||Fe.isReadableStream(i))return i;if(Fe.isArrayBufferView(i))return i.buffer;if(Fe.isURLSearchParams(i))return l.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),i.toString();let s;if(x){if(h.indexOf("application/x-www-form-urlencoded")>-1)return LD(i,this.formSerializer).toString();if((s=Fe.isFileList(i))||h.indexOf("multipart/form-data")>-1){const M=this.env&&this.env.FormData;return Pg(s?{"files[]":i}:i,M&&new M,this.formSerializer)}}return x||g?(l.setContentType("application/json",!1),OD(i)):i}],transformResponse:[function(i){const l=this.transitional||hx.transitional,h=l&&l.forcedJSONParsing,g=this.responseType==="json";if(Fe.isResponse(i)||Fe.isReadableStream(i))return i;if(i&&Fe.isString(i)&&(h&&!this.responseType||g)){const T=!(l&&l.silentJSONParsing)&&g;try{return JSON.parse(i)}catch(s){if(T)throw s.name==="SyntaxError"?qt.from(s,qt.ERR_BAD_RESPONSE,this,null,this.response):s}}return i}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:vr.classes.FormData,Blob:vr.classes.Blob},validateStatus:function(i){return i>=200&&i<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Fe.forEach(["delete","get","head","post","put","patch"],t=>{hx.headers[t]={}});const dx=hx,BD=Fe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),FD=t=>{const i={};let l,h,g;return t&&t.split(` +`).forEach(function(T){g=T.indexOf(":"),l=T.substring(0,g).trim().toLowerCase(),h=T.substring(g+1).trim(),!(!l||i[l]&&BD[l])&&(l==="set-cookie"?i[l]?i[l].push(h):i[l]=[h]:i[l]=i[l]?i[l]+", "+h:h)}),i},BE=Symbol("internals");function Cd(t){return t&&String(t).trim().toLowerCase()}function Im(t){return t===!1||t==null?t:Fe.isArray(t)?t.map(Im):String(t)}function ND(t){const i=Object.create(null),l=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let h;for(;h=l.exec(t);)i[h[1]]=h[2];return i}const UD=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function qy(t,i,l,h,g){if(Fe.isFunction(h))return h.call(this,i,l);if(g&&(i=l),!!Fe.isString(i)){if(Fe.isString(h))return i.indexOf(h)!==-1;if(Fe.isRegExp(h))return h.test(i)}}function jD(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(i,l,h)=>l.toUpperCase()+h)}function VD(t,i){const l=Fe.toCamelCase(" "+i);["get","set","has"].forEach(h=>{Object.defineProperty(t,h+l,{value:function(g,x,T){return this[h].call(this,i,g,x,T)},configurable:!0})})}class zg{constructor(i){i&&this.set(i)}set(i,l,h){const g=this;function x(s,M,F){const q=Cd(M);if(!q)throw new Error("header name must be a non-empty string");const X=Fe.findKey(g,q);(!X||g[X]===void 0||F===!0||F===void 0&&g[X]!==!1)&&(g[X||M]=Im(s))}const T=(s,M)=>Fe.forEach(s,(F,q)=>x(F,q,M));if(Fe.isPlainObject(i)||i instanceof this.constructor)T(i,l);else if(Fe.isString(i)&&(i=i.trim())&&!UD(i))T(FD(i),l);else if(Fe.isHeaders(i))for(const[s,M]of i.entries())x(M,s,h);else i!=null&&x(l,i,h);return this}get(i,l){if(i=Cd(i),i){const h=Fe.findKey(this,i);if(h){const g=this[h];if(!l)return g;if(l===!0)return ND(g);if(Fe.isFunction(l))return l.call(this,g,h);if(Fe.isRegExp(l))return l.exec(g);throw new TypeError("parser must be boolean|regexp|function")}}}has(i,l){if(i=Cd(i),i){const h=Fe.findKey(this,i);return!!(h&&this[h]!==void 0&&(!l||qy(this,this[h],h,l)))}return!1}delete(i,l){const h=this;let g=!1;function x(T){if(T=Cd(T),T){const s=Fe.findKey(h,T);s&&(!l||qy(h,h[s],s,l))&&(delete h[s],g=!0)}}return Fe.isArray(i)?i.forEach(x):x(i),g}clear(i){const l=Object.keys(this);let h=l.length,g=!1;for(;h--;){const x=l[h];(!i||qy(this,this[x],x,i,!0))&&(delete this[x],g=!0)}return g}normalize(i){const l=this,h={};return Fe.forEach(this,(g,x)=>{const T=Fe.findKey(h,x);if(T){l[T]=Im(g),delete l[x];return}const s=i?jD(x):String(x).trim();s!==x&&delete l[x],l[s]=Im(g),h[s]=!0}),this}concat(...i){return this.constructor.concat(this,...i)}toJSON(i){const l=Object.create(null);return Fe.forEach(this,(h,g)=>{h!=null&&h!==!1&&(l[g]=i&&Fe.isArray(h)?h.join(", "):h)}),l}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([i,l])=>i+": "+l).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(i){return i instanceof this?i:new this(i)}static concat(i,...l){const h=new this(i);return l.forEach(g=>h.set(g)),h}static accessor(i){const h=(this[BE]=this[BE]={accessors:{}}).accessors,g=this.prototype;function x(T){const s=Cd(T);h[s]||(VD(g,T),h[s]=!0)}return Fe.isArray(i)?i.forEach(x):x(i),this}}zg.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Fe.reduceDescriptors(zg.prototype,({value:t},i)=>{let l=i[0].toUpperCase()+i.slice(1);return{get:()=>t,set(h){this[l]=h}}});Fe.freezeMethods(zg);const Po=zg;function Zy(t,i){const l=this||dx,h=i||l,g=Po.from(h.headers);let x=h.data;return Fe.forEach(t,function(s){x=s.call(l,x,g.normalize(),i?i.status:void 0)}),g.normalize(),x}function aA(t){return!!(t&&t.__CANCEL__)}function Fu(t,i,l){qt.call(this,t??"canceled",qt.ERR_CANCELED,i,l),this.name="CanceledError"}Fe.inherits(Fu,qt,{__CANCEL__:!0});function lA(t,i,l){const h=l.config.validateStatus;!l.status||!h||h(l.status)?t(l):i(new qt("Request failed with status code "+l.status,[qt.ERR_BAD_REQUEST,qt.ERR_BAD_RESPONSE][Math.floor(l.status/100)-4],l.config,l.request,l))}function GD(t){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return i&&i[1]||""}function $D(t,i){t=t||10;const l=new Array(t),h=new Array(t);let g=0,x=0,T;return i=i!==void 0?i:1e3,function(M){const F=Date.now(),q=h[x];T||(T=F),l[g]=M,h[g]=F;let X=x,oe=0;for(;X!==g;)oe+=l[X++],X=X%t;if(g=(g+1)%t,g===x&&(x=(x+1)%t),F-T{l=q,g=null,x&&(clearTimeout(x),x=null),t.apply(null,F)};return[(...F)=>{const q=Date.now(),X=q-l;X>=h?T(F,q):(g=F,x||(x=setTimeout(()=>{x=null,T(g)},h-X)))},()=>g&&T(g)]}const rg=(t,i,l=3)=>{let h=0;const g=$D(50,250);return qD(x=>{const T=x.loaded,s=x.lengthComputable?x.total:void 0,M=T-h,F=g(M),q=T<=s;h=T;const X={loaded:T,total:s,progress:s?T/s:void 0,bytes:M,rate:F||void 0,estimated:F&&s&&q?(s-T)/F:void 0,event:x,lengthComputable:s!=null,[i?"download":"upload"]:!0};t(X)},l)},FE=(t,i)=>{const l=t!=null;return[h=>i[0]({lengthComputable:l,total:t,loaded:h}),i[1]]},NE=t=>(...i)=>Fe.asap(()=>t(...i)),ZD=vr.hasStandardBrowserEnv?function(){const i=vr.navigator&&/(msie|trident)/i.test(vr.navigator.userAgent),l=document.createElement("a");let h;function g(x){let T=x;return i&&(l.setAttribute("href",T),T=l.href),l.setAttribute("href",T),{href:l.href,protocol:l.protocol?l.protocol.replace(/:$/,""):"",host:l.host,search:l.search?l.search.replace(/^\?/,""):"",hash:l.hash?l.hash.replace(/^#/,""):"",hostname:l.hostname,port:l.port,pathname:l.pathname.charAt(0)==="/"?l.pathname:"/"+l.pathname}}return h=g(window.location.href),function(T){const s=Fe.isString(T)?g(T):T;return s.protocol===h.protocol&&s.host===h.host}}():function(){return function(){return!0}}(),WD=vr.hasStandardBrowserEnv?{write(t,i,l,h,g,x){const T=[t+"="+encodeURIComponent(i)];Fe.isNumber(l)&&T.push("expires="+new Date(l).toGMTString()),Fe.isString(h)&&T.push("path="+h),Fe.isString(g)&&T.push("domain="+g),x===!0&&T.push("secure"),document.cookie=T.join("; ")},read(t){const i=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return i?decodeURIComponent(i[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function HD(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function XD(t,i){return i?t.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):t}function cA(t,i){return t&&!HD(i)?XD(t,i):i}const UE=t=>t instanceof Po?{...t}:t;function Yl(t,i){i=i||{};const l={};function h(F,q,X){return Fe.isPlainObject(F)&&Fe.isPlainObject(q)?Fe.merge.call({caseless:X},F,q):Fe.isPlainObject(q)?Fe.merge({},q):Fe.isArray(q)?q.slice():q}function g(F,q,X){if(Fe.isUndefined(q)){if(!Fe.isUndefined(F))return h(void 0,F,X)}else return h(F,q,X)}function x(F,q){if(!Fe.isUndefined(q))return h(void 0,q)}function T(F,q){if(Fe.isUndefined(q)){if(!Fe.isUndefined(F))return h(void 0,F)}else return h(void 0,q)}function s(F,q,X){if(X in i)return h(F,q);if(X in t)return h(void 0,F)}const M={url:x,method:x,data:x,baseURL:T,transformRequest:T,transformResponse:T,paramsSerializer:T,timeout:T,timeoutMessage:T,withCredentials:T,withXSRFToken:T,adapter:T,responseType:T,xsrfCookieName:T,xsrfHeaderName:T,onUploadProgress:T,onDownloadProgress:T,decompress:T,maxContentLength:T,maxBodyLength:T,beforeRedirect:T,transport:T,httpAgent:T,httpsAgent:T,cancelToken:T,socketPath:T,responseEncoding:T,validateStatus:s,headers:(F,q)=>g(UE(F),UE(q),!0)};return Fe.forEach(Object.keys(Object.assign({},t,i)),function(q){const X=M[q]||g,oe=X(t[q],i[q],q);Fe.isUndefined(oe)&&X!==s||(l[q]=oe)}),l}const uA=t=>{const i=Yl({},t);let{data:l,withXSRFToken:h,xsrfHeaderName:g,xsrfCookieName:x,headers:T,auth:s}=i;i.headers=T=Po.from(T),i.url=rA(cA(i.baseURL,i.url),t.params,t.paramsSerializer),s&&T.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let M;if(Fe.isFormData(l)){if(vr.hasStandardBrowserEnv||vr.hasStandardBrowserWebWorkerEnv)T.setContentType(void 0);else if((M=T.getContentType())!==!1){const[F,...q]=M?M.split(";").map(X=>X.trim()).filter(Boolean):[];T.setContentType([F||"multipart/form-data",...q].join("; "))}}if(vr.hasStandardBrowserEnv&&(h&&Fe.isFunction(h)&&(h=h(i)),h||h!==!1&&ZD(i.url))){const F=g&&x&&WD.read(x);F&&T.set(g,F)}return i},KD=typeof XMLHttpRequest<"u",YD=KD&&function(t){return new Promise(function(l,h){const g=uA(t);let x=g.data;const T=Po.from(g.headers).normalize();let{responseType:s,onUploadProgress:M,onDownloadProgress:F}=g,q,X,oe,Ae,fe;function ke(){Ae&&Ae(),fe&&fe(),g.cancelToken&&g.cancelToken.unsubscribe(q),g.signal&&g.signal.removeEventListener("abort",q)}let ze=new XMLHttpRequest;ze.open(g.method.toUpperCase(),g.url,!0),ze.timeout=g.timeout;function ue(){if(!ze)return;const le=Po.from("getAllResponseHeaders"in ze&&ze.getAllResponseHeaders()),je={data:!s||s==="text"||s==="json"?ze.responseText:ze.response,status:ze.status,statusText:ze.statusText,headers:le,config:t,request:ze};lA(function(lt){l(lt),ke()},function(lt){h(lt),ke()},je),ze=null}"onloadend"in ze?ze.onloadend=ue:ze.onreadystatechange=function(){!ze||ze.readyState!==4||ze.status===0&&!(ze.responseURL&&ze.responseURL.indexOf("file:")===0)||setTimeout(ue)},ze.onabort=function(){ze&&(h(new qt("Request aborted",qt.ECONNABORTED,t,ze)),ze=null)},ze.onerror=function(){h(new qt("Network Error",qt.ERR_NETWORK,t,ze)),ze=null},ze.ontimeout=function(){let De=g.timeout?"timeout of "+g.timeout+"ms exceeded":"timeout exceeded";const je=g.transitional||oA;g.timeoutErrorMessage&&(De=g.timeoutErrorMessage),h(new qt(De,je.clarifyTimeoutError?qt.ETIMEDOUT:qt.ECONNABORTED,t,ze)),ze=null},x===void 0&&T.setContentType(null),"setRequestHeader"in ze&&Fe.forEach(T.toJSON(),function(De,je){ze.setRequestHeader(je,De)}),Fe.isUndefined(g.withCredentials)||(ze.withCredentials=!!g.withCredentials),s&&s!=="json"&&(ze.responseType=g.responseType),F&&([oe,fe]=rg(F,!0),ze.addEventListener("progress",oe)),M&&ze.upload&&([X,Ae]=rg(M),ze.upload.addEventListener("progress",X),ze.upload.addEventListener("loadend",Ae)),(g.cancelToken||g.signal)&&(q=le=>{ze&&(h(!le||le.type?new Fu(null,t,ze):le),ze.abort(),ze=null)},g.cancelToken&&g.cancelToken.subscribe(q),g.signal&&(g.signal.aborted?q():g.signal.addEventListener("abort",q)));const re=GD(g.url);if(re&&vr.protocols.indexOf(re)===-1){h(new qt("Unsupported protocol "+re+":",qt.ERR_BAD_REQUEST,t));return}ze.send(x||null)})},JD=(t,i)=>{const{length:l}=t=t?t.filter(Boolean):[];if(i||l){let h=new AbortController,g;const x=function(F){if(!g){g=!0,s();const q=F instanceof Error?F:this.reason;h.abort(q instanceof qt?q:new Fu(q instanceof Error?q.message:q))}};let T=i&&setTimeout(()=>{T=null,x(new qt(`timeout ${i} of ms exceeded`,qt.ETIMEDOUT))},i);const s=()=>{t&&(T&&clearTimeout(T),T=null,t.forEach(F=>{F.unsubscribe?F.unsubscribe(x):F.removeEventListener("abort",x)}),t=null)};t.forEach(F=>F.addEventListener("abort",x));const{signal:M}=h;return M.unsubscribe=()=>Fe.asap(s),M}},QD=JD,e3=function*(t,i){let l=t.byteLength;if(!i||l{const g=t3(t,i);let x=0,T,s=M=>{T||(T=!0,h&&h(M))};return new ReadableStream({async pull(M){try{const{done:F,value:q}=await g.next();if(F){s(),M.close();return}let X=q.byteLength;if(l){let oe=x+=X;l(oe)}M.enqueue(new Uint8Array(q))}catch(F){throw s(F),F}},cancel(M){return s(M),g.return()}},{highWaterMark:2})},Lg=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",hA=Lg&&typeof ReadableStream=="function",i3=Lg&&(typeof TextEncoder=="function"?(t=>i=>t.encode(i))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),dA=(t,...i)=>{try{return!!t(...i)}catch{return!1}},r3=hA&&dA(()=>{let t=!1;const i=new Request(vr.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!i}),VE=64*1024,ev=hA&&dA(()=>Fe.isReadableStream(new Response("").body)),og={stream:ev&&(t=>t.body)};Lg&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(i=>{!og[i]&&(og[i]=Fe.isFunction(t[i])?l=>l[i]():(l,h)=>{throw new qt(`Response type '${i}' is not supported`,qt.ERR_NOT_SUPPORT,h)})})})(new Response);const o3=async t=>{if(t==null)return 0;if(Fe.isBlob(t))return t.size;if(Fe.isSpecCompliantForm(t))return(await new Request(vr.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(Fe.isArrayBufferView(t)||Fe.isArrayBuffer(t))return t.byteLength;if(Fe.isURLSearchParams(t)&&(t=t+""),Fe.isString(t))return(await i3(t)).byteLength},s3=async(t,i)=>{const l=Fe.toFiniteNumber(t.getContentLength());return l??o3(i)},a3=Lg&&(async t=>{let{url:i,method:l,data:h,signal:g,cancelToken:x,timeout:T,onDownloadProgress:s,onUploadProgress:M,responseType:F,headers:q,withCredentials:X="same-origin",fetchOptions:oe}=uA(t);F=F?(F+"").toLowerCase():"text";let Ae=QD([g,x&&x.toAbortSignal()],T),fe;const ke=Ae&&Ae.unsubscribe&&(()=>{Ae.unsubscribe()});let ze;try{if(M&&r3&&l!=="get"&&l!=="head"&&(ze=await s3(q,h))!==0){let je=new Request(i,{method:"POST",body:h,duplex:"half"}),tt;if(Fe.isFormData(h)&&(tt=je.headers.get("content-type"))&&q.setContentType(tt),je.body){const[lt,ut]=FE(ze,rg(NE(M)));h=jE(je.body,VE,lt,ut)}}Fe.isString(X)||(X=X?"include":"omit");const ue="credentials"in Request.prototype;fe=new Request(i,{...oe,signal:Ae,method:l.toUpperCase(),headers:q.normalize().toJSON(),body:h,duplex:"half",credentials:ue?X:void 0});let re=await fetch(fe);const le=ev&&(F==="stream"||F==="response");if(ev&&(s||le&&ke)){const je={};["status","statusText","headers"].forEach(Ve=>{je[Ve]=re[Ve]});const tt=Fe.toFiniteNumber(re.headers.get("content-length")),[lt,ut]=s&&FE(tt,rg(NE(s),!0))||[];re=new Response(jE(re.body,VE,lt,()=>{ut&&ut(),ke&&ke()}),je)}F=F||"text";let De=await og[Fe.findKey(og,F)||"text"](re,t);return!le&&ke&&ke(),await new Promise((je,tt)=>{lA(je,tt,{data:De,headers:Po.from(re.headers),status:re.status,statusText:re.statusText,config:t,request:fe})})}catch(ue){throw ke&&ke(),ue&&ue.name==="TypeError"&&/fetch/i.test(ue.message)?Object.assign(new qt("Network Error",qt.ERR_NETWORK,t,fe),{cause:ue.cause||ue}):qt.from(ue,ue&&ue.code,t,fe)}}),tv={http:xD,xhr:YD,fetch:a3};Fe.forEach(tv,(t,i)=>{if(t){try{Object.defineProperty(t,"name",{value:i})}catch{}Object.defineProperty(t,"adapterName",{value:i})}});const GE=t=>`- ${t}`,l3=t=>Fe.isFunction(t)||t===null||t===!1,pA={getAdapter:t=>{t=Fe.isArray(t)?t:[t];const{length:i}=t;let l,h;const g={};for(let x=0;x`adapter ${s} `+(M===!1?"is not supported by the environment":"is not available in the build"));let T=i?x.length>1?`since : +`+x.map(GE).join(` +`):" "+GE(x[0]):"as no adapter specified";throw new qt("There is no suitable adapter to dispatch the request "+T,"ERR_NOT_SUPPORT")}return h},adapters:tv};function Wy(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Fu(null,t)}function $E(t){return Wy(t),t.headers=Po.from(t.headers),t.data=Zy.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),pA.getAdapter(t.adapter||dx.adapter)(t).then(function(h){return Wy(t),h.data=Zy.call(t,t.transformResponse,h),h.headers=Po.from(h.headers),h},function(h){return aA(h)||(Wy(t),h&&h.response&&(h.response.data=Zy.call(t,t.transformResponse,h.response),h.response.headers=Po.from(h.response.headers))),Promise.reject(h)})}const fA="1.7.7",px={};["object","boolean","number","function","string","symbol"].forEach((t,i)=>{px[t]=function(h){return typeof h===t||"a"+(i<1?"n ":" ")+t}});const qE={};px.transitional=function(i,l,h){function g(x,T){return"[Axios v"+fA+"] Transitional option '"+x+"'"+T+(h?". "+h:"")}return(x,T,s)=>{if(i===!1)throw new qt(g(T," has been removed"+(l?" in "+l:"")),qt.ERR_DEPRECATED);return l&&!qE[T]&&(qE[T]=!0,console.warn(g(T," has been deprecated since v"+l+" and will be removed in the near future"))),i?i(x,T,s):!0}};function c3(t,i,l){if(typeof t!="object")throw new qt("options must be an object",qt.ERR_BAD_OPTION_VALUE);const h=Object.keys(t);let g=h.length;for(;g-- >0;){const x=h[g],T=i[x];if(T){const s=t[x],M=s===void 0||T(s,x,t);if(M!==!0)throw new qt("option "+x+" must be "+M,qt.ERR_BAD_OPTION_VALUE);continue}if(l!==!0)throw new qt("Unknown option "+x,qt.ERR_BAD_OPTION)}}const nv={assertOptions:c3,validators:px},wa=nv.validators;class sg{constructor(i){this.defaults=i,this.interceptors={request:new OE,response:new OE}}async request(i,l){try{return await this._request(i,l)}catch(h){if(h instanceof Error){let g;Error.captureStackTrace?Error.captureStackTrace(g={}):g=new Error;const x=g.stack?g.stack.replace(/^.+\n/,""):"";try{h.stack?x&&!String(h.stack).endsWith(x.replace(/^.+\n.+\n/,""))&&(h.stack+=` +`+x):h.stack=x}catch{}}throw h}}_request(i,l){typeof i=="string"?(l=l||{},l.url=i):l=i||{},l=Yl(this.defaults,l);const{transitional:h,paramsSerializer:g,headers:x}=l;h!==void 0&&nv.assertOptions(h,{silentJSONParsing:wa.transitional(wa.boolean),forcedJSONParsing:wa.transitional(wa.boolean),clarifyTimeoutError:wa.transitional(wa.boolean)},!1),g!=null&&(Fe.isFunction(g)?l.paramsSerializer={serialize:g}:nv.assertOptions(g,{encode:wa.function,serialize:wa.function},!0)),l.method=(l.method||this.defaults.method||"get").toLowerCase();let T=x&&Fe.merge(x.common,x[l.method]);x&&Fe.forEach(["delete","get","head","post","put","patch","common"],fe=>{delete x[fe]}),l.headers=Po.concat(T,x);const s=[];let M=!0;this.interceptors.request.forEach(function(ke){typeof ke.runWhen=="function"&&ke.runWhen(l)===!1||(M=M&&ke.synchronous,s.unshift(ke.fulfilled,ke.rejected))});const F=[];this.interceptors.response.forEach(function(ke){F.push(ke.fulfilled,ke.rejected)});let q,X=0,oe;if(!M){const fe=[$E.bind(this),void 0];for(fe.unshift.apply(fe,s),fe.push.apply(fe,F),oe=fe.length,q=Promise.resolve(l);X{if(!h._listeners)return;let x=h._listeners.length;for(;x-- >0;)h._listeners[x](g);h._listeners=null}),this.promise.then=g=>{let x;const T=new Promise(s=>{h.subscribe(s),x=s}).then(g);return T.cancel=function(){h.unsubscribe(x)},T},i(function(x,T,s){h.reason||(h.reason=new Fu(x,T,s),l(h.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(i){if(this.reason){i(this.reason);return}this._listeners?this._listeners.push(i):this._listeners=[i]}unsubscribe(i){if(!this._listeners)return;const l=this._listeners.indexOf(i);l!==-1&&this._listeners.splice(l,1)}toAbortSignal(){const i=new AbortController,l=h=>{i.abort(h)};return this.subscribe(l),i.signal.unsubscribe=()=>this.unsubscribe(l),i.signal}static source(){let i;return{token:new fx(function(g){i=g}),cancel:i}}}const u3=fx;function h3(t){return function(l){return t.apply(null,l)}}function d3(t){return Fe.isObject(t)&&t.isAxiosError===!0}const iv={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(iv).forEach(([t,i])=>{iv[i]=t});const p3=iv;function mA(t){const i=new Mm(t),l=ZS(Mm.prototype.request,i);return Fe.extend(l,Mm.prototype,i,{allOwnKeys:!0}),Fe.extend(l,i,null,{allOwnKeys:!0}),l.create=function(g){return mA(Yl(t,g))},l}const hi=mA(dx);hi.Axios=Mm;hi.CanceledError=Fu;hi.CancelToken=u3;hi.isCancel=aA;hi.VERSION=fA;hi.toFormData=Pg;hi.AxiosError=qt;hi.Cancel=hi.CanceledError;hi.all=function(i){return Promise.all(i)};hi.spread=h3;hi.isAxiosError=d3;hi.mergeConfig=Yl;hi.AxiosHeaders=Po;hi.formToJSON=t=>sA(Fe.isHTMLForm(t)?new FormData(t):t);hi.getAdapter=pA.getAdapter;hi.HttpStatusCode=p3;hi.default=hi;const f3=hi;/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */const mu="https://cori-data-api.ruralinnovation.us/",rv=f3.create({baseURL:mu,headers:{"Content-Type":"application/json"}}),Hy={},gA={apiClient:rv,authenticated:!1,authenticated_user:null,autoSignOut:null,baseURL:mu,token:null,data:{get:()=>Hy,set:t=>{for(const i in t)t.hasOwnProperty[i]&&(Hy[i]=t)}},setData:t=>{for(const i in t)t.hasOwnProperty[i]&&(Hy[i]=t)}},_A=ft.createContext(gA);let hm=!1,ZE=!1;function m3(t){const[i,l]=ft.useState(Object.assign(Object.assign({},gA),{baseURL:t.baseURL?t.baseURL:mu,setData:h}));function h(g){const x=i;l(Object.assign(Object.assign({},x),{data:Object.assign(Object.assign({},x.data),g),setData:h}))}return t.baseURL&&t.baseURL.length>0&&rv.interceptors.request.use(g=>(g.baseURL=t.baseURL,console.log("API baseURL updated:",g.baseURL),g),g=>Promise.reject(g)),ft.useEffect(()=>{if(l(Object.assign(Object.assign({},i),{autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:g}=t;g(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL?t.baseURL:mu})),t.fetchAuthSession){const{fetchAuthSession:g}=t;g().then(T=>{if(!hm){const s=T.tokens;if(console.log("API tokens:",s),s&&s.hasOwnProperty("idToken")&&(hm=!0,console.log("API Session is authenticated:",hm),console.log("API Session config:",T),console.log("idToken:",s.idToken),rv.interceptors.request.use(M=>{const F=s.idToken;return F&&(M.headers.Authorization=`Bearer ${F}`),t.baseURL&&(M.baseURL=t.baseURL),M},M=>Promise.reject(M)),l(Object.assign(Object.assign({},i),{authenticated:!0,autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:M}=t;M(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL||mu,token:s.idToken})),t.getCurrentUser)){const{getCurrentUser:M}=t;M().then(q=>{ZE||(ZE=!0,console.log("API User is authenticated:",hm),console.log("API User:",q),console.log("API User type:",q.constructor.name),l(Object.assign(Object.assign({},i),{authenticated:!0,authenticated_user:q,autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:X}=t;X(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL||mu,token:s.idToken})))})}}})}},[]),_y.createElement(_y.Fragment,null,_y.createElement(_A.Provider,{value:i},t.children))}const g3="modulepreload",_3=function(t){return"/"+t},WE={},y3=function(i,l,h){if(!l||l.length===0)return i();const g=document.getElementsByTagName("link");return Promise.all(l.map(x=>{if(x=_3(x),x in WE)return;WE[x]=!0;const T=x.endsWith(".css"),s=T?'[rel="stylesheet"]':"";if(!!h)for(let q=g.length-1;q>=0;q--){const X=g[q];if(X.href===x&&(!T||X.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${x}"]${s}`))return;const F=document.createElement("link");if(F.rel=T?"stylesheet":g3,T||(F.as="script",F.crossOrigin=""),F.href=x,document.head.appendChild(F),T)return new Promise((q,X)=>{F.addEventListener("load",q),F.addEventListener("error",()=>X(new Error(`Unable to preload CSS for ${x}`)))})})).then(()=>i()).catch(x=>{const T=new Event("vite:preloadError",{cancelable:!0});if(T.payload=x,window.dispatchEvent(T),!T.defaultPrevented)throw x})},v3=ft.createContext(null);function x3(t,i){const l=Array.isArray(t)?t[0]:t?t.x:0,h=Array.isArray(t)?t[1]:t?t.y:0,g=Array.isArray(i)?i[0]:i?i.x:0,x=Array.isArray(i)?i[1]:i?i.y:0;return l===g&&h===x}function Ps(t,i){if(t===i)return!0;if(!t||!i)return!1;if(Array.isArray(t)){if(!Array.isArray(i)||t.length!==i.length)return!1;for(let l=0;l{let g=null;"interactive"in h&&(g=Object.assign({},h),delete g.interactive);const x=i[h.ref];if(x){g=g||Object.assign({},h),delete g.ref;for(const T of b3)T in x&&(g[T]=x[T])}return g||h});return{...t,layers:l}}const JE={version:8,sources:{},layers:[]},QE={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},Xy={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},e2={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},E3=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],T3=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class Pu{constructor(i,l,h){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=g=>{const x=this.props[e2[g.type]];x?x(g):g.type==="error"&&console.error(g.error)},this._onPointerEvent=g=>{(g.type==="mousemove"||g.type==="mouseout")&&this._updateHover(g);const x=this.props[QE[g.type]];x&&(this.props.interactiveLayerIds&&g.type!=="mouseover"&&g.type!=="mouseout"&&(g.features=this._hoveredFeatures||this._queryRenderedFeatures(g.point)),x(g),delete g.features)},this._onCameraEvent=g=>{if(!this._internalUpdate){const x=this.props[Xy[g.type]];x&&x(g)}g.type in this._deferredEvents&&(this._deferredEvents[g.type]=!1)},this._MapClass=i,this.props=l,this._initialize(h)}get map(){return this._map}get transform(){return this._renderTransform}setProps(i){const l=this.props;this.props=i;const h=this._updateSettings(i,l);h&&this._createShadowTransform(this._map);const g=this._updateSize(i),x=this._updateViewState(i,!0);this._updateStyle(i,l),this._updateStyleComponents(i,l),this._updateHandlers(i,l),(h||g||x&&!this._map.isMoving())&&this.redraw()}static reuse(i,l){const h=Pu.savedMaps.pop();if(!h)return null;const g=h.map,x=g.getContainer();for(l.className=x.className;x.childNodes.length>0;)l.appendChild(x.childNodes[0]);g._container=l;const T=g._resizeObserver;T&&(T.disconnect(),T.observe(l)),h.setProps({...i,styleDiffing:!1}),g.resize();const{initialViewState:s}=i;return s&&(s.bounds?g.fitBounds(s.bounds,{...s.fitBoundsOptions,duration:0}):h._updateViewState(s,!1)),g.isStyleLoaded()?g.fire("load"):g.once("styledata",()=>g.fire("load")),g._update(),h}_initialize(i){const{props:l}=this,{mapStyle:h=JE}=l,g={...l,...l.initialViewState,accessToken:l.mapboxAccessToken||S3()||null,container:i,style:YE(h)},x=g.initialViewState||g.viewState||g;if(Object.assign(g,{center:[x.longitude||0,x.latitude||0],zoom:x.zoom||0,pitch:x.pitch||0,bearing:x.bearing||0}),l.gl){const q=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=q,l.gl)}const T=new this._MapClass(g);x.padding&&T.setPadding(x.padding),l.cursor&&(T.getCanvas().style.cursor=l.cursor),this._createShadowTransform(T);const s=T._render;T._render=q=>{this._inRender=!0,s.call(T,q),this._inRender=!1};const M=T._renderTaskQueue.run;T._renderTaskQueue.run=q=>{M.call(T._renderTaskQueue,q),this._onBeforeRepaint()},T.on("render",()=>this._onAfterRepaint());const F=T.fire;T.fire=this._fireEvent.bind(this,F),T.on("resize",()=>{this._renderTransform.resize(T.transform.width,T.transform.height)}),T.on("styledata",()=>{this._updateStyleComponents(this.props,{}),HE(T.transform,this._renderTransform)}),T.on("sourcedata",()=>this._updateStyleComponents(this.props,{}));for(const q in QE)T.on(q,this._onPointerEvent);for(const q in Xy)T.on(q,this._onCameraEvent);for(const q in e2)T.on(q,this._onEvent);this._map=T}recycle(){const l=this.map.getContainer().querySelector("[mapboxgl-children]");l==null||l.remove(),Pu.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const i=this._map;!this._inRender&&i.style&&(i._frame&&(i._frame.cancel(),i._frame=null),i._render())}_createShadowTransform(i){const l=w3(i.transform);i.painter.transform=l,this._renderTransform=l}_updateSize(i){const{viewState:l}=i;if(l){const h=this._map;if(l.width!==h.transform.width||l.height!==h.transform.height)return h.resize(),!0}return!1}_updateViewState(i,l){if(this._internalUpdate)return!1;const h=this._map,g=this._renderTransform,{zoom:x,pitch:T,bearing:s}=g,M=h.isMoving();M&&(g.cameraElevationReference="sea");const F=KE(g,{...XE(h.transform),...i});if(M&&(g.cameraElevationReference="ground"),F&&l){const q=this._deferredEvents;q.move=!0,q.zoom||(q.zoom=x!==g.zoom),q.rotate||(q.rotate=s!==g.bearing),q.pitch||(q.pitch=T!==g.pitch)}return M||KE(h.transform,i),F}_updateSettings(i,l){const h=this._map;let g=!1;for(const x of E3)if(x in i&&!Ps(i[x],l[x])){g=!0;const T=h[`set${x[0].toUpperCase()}${x.slice(1)}`];T==null||T.call(h,i[x])}return g}_updateStyle(i,l){if(i.cursor!==l.cursor&&(this._map.getCanvas().style.cursor=i.cursor||""),i.mapStyle!==l.mapStyle){const{mapStyle:h=JE,styleDiffing:g=!0}=i,x={diff:g};return"localIdeographFontFamily"in i&&(x.localIdeographFontFamily=i.localIdeographFontFamily),this._map.setStyle(YE(h),x),!0}return!1}_updateStyleComponents(i,l){const h=this._map;let g=!1;return h.isStyleLoaded()&&("light"in i&&h.setLight&&!Ps(i.light,l.light)&&(g=!0,h.setLight(i.light)),"fog"in i&&h.setFog&&!Ps(i.fog,l.fog)&&(g=!0,h.setFog(i.fog)),"terrain"in i&&h.setTerrain&&!Ps(i.terrain,l.terrain)&&(!i.terrain||h.getSource(i.terrain.source))&&(g=!0,h.setTerrain(i.terrain))),g}_updateHandlers(i,l){var h,g;const x=this._map;let T=!1;for(const s of T3){const M=(h=i[s])!==null&&h!==void 0?h:!0,F=(g=l[s])!==null&&g!==void 0?g:!0;Ps(M,F)||(T=!0,M?x[s].enable(M):x[s].disable())}return T}_queryRenderedFeatures(i){const l=this._map,h=l.transform,{interactiveLayerIds:g=[]}=this.props;try{return l.transform=this._renderTransform,l.queryRenderedFeatures(i,{layers:g.filter(l.getLayer.bind(l))})}catch{return[]}finally{l.transform=h}}_updateHover(i){var l;const{props:h}=this;if(h.interactiveLayerIds&&(h.onMouseMove||h.onMouseEnter||h.onMouseLeave)){const x=i.type,T=((l=this._hoveredFeatures)===null||l===void 0?void 0:l.length)>0,s=this._queryRenderedFeatures(i.point),M=s.length>0;!M&&T&&(i.type="mouseleave",this._onPointerEvent(i)),this._hoveredFeatures=s,M&&!T&&(i.type="mouseenter",this._onPointerEvent(i)),i.type=x}else this._hoveredFeatures=null}_fireEvent(i,l,h){const g=this._map,x=g.transform,T=typeof l=="string"?l:l.type;return T==="move"&&this._updateViewState(this.props,!1),T in Xy&&(typeof l=="object"&&(l.viewState=XE(x)),this._map.isMoving())?(g.transform=this._renderTransform,i.call(g,l,h),g.transform=x,g):(i.call(g,l,h),g)}_onBeforeRepaint(){const i=this._map;this._internalUpdate=!0;for(const h in this._deferredEvents)this._deferredEvents[h]&&i.fire(h);this._internalUpdate=!1;const l=this._map.transform;i.transform=this._renderTransform,this._onAfterRepaint=()=>{HE(this._renderTransform,l),i.transform=l}}}Pu.savedMaps=[];function S3(){let t=null;if(typeof location<"u"){const i=/access_token=([^&\/]*)/.exec(location.search);t=i&&i[1]}try{t=t||void 0}catch{}try{t=t||{}.REACT_APP_MAPBOX_ACCESS_TOKEN}catch{}return t}const A3=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function C3(t){if(!t)return null;const i=t.map,l={getMap:()=>i,getCenter:()=>t.transform.center,getZoom:()=>t.transform.zoom,getBearing:()=>t.transform.bearing,getPitch:()=>t.transform.pitch,getPadding:()=>t.transform.padding,getBounds:()=>t.transform.getBounds(),project:h=>{const g=i.transform;i.transform=t.transform;const x=i.project(h);return i.transform=g,x},unproject:h=>{const g=i.transform;i.transform=t.transform;const x=i.unproject(h);return i.transform=g,x},queryTerrainElevation:(h,g)=>{const x=i.transform;i.transform=t.transform;const T=i.queryTerrainElevation(h,g);return i.transform=x,T},queryRenderedFeatures:(h,g)=>{const x=i.transform;i.transform=t.transform;const T=i.queryRenderedFeatures(h,g);return i.transform=x,T}};for(const h of I3(i))!(h in l)&&!A3.includes(h)&&(l[h]=i[h].bind(i));return l}function I3(t){const i=new Set;let l=t;for(;l;){for(const h of Object.getOwnPropertyNames(l))h[0]!=="_"&&typeof t[h]=="function"&&h!=="fire"&&h!=="setEventedParent"&&i.add(h);l=Object.getPrototypeOf(l)}return Array.from(i)}const M3=typeof document<"u"?ft.useLayoutEffect:ft.useEffect,k3=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];function P3(t,i){for(const h of k3)h in i&&(t[h]=i[h]);const{RTLTextPlugin:l="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=i;l&&t.getRTLTextPluginStatus&&t.getRTLTextPluginStatus()==="unavailable"&&t.setRTLTextPlugin(l,h=>{h&&console.error(h)},!0)}const Rg=ft.createContext(null);function z3(t,i,l){const h=ft.useContext(v3),[g,x]=ft.useState(null),T=ft.useRef(),{current:s}=ft.useRef({mapLib:null,map:null});ft.useEffect(()=>{const q=t.mapLib;let X=!0,oe;return Promise.resolve(q||l).then(Ae=>{if(!X)return;if(!Ae)throw new Error("Invalid mapLib");const fe="Map"in Ae?Ae:Ae.default;if(!fe.Map)throw new Error("Invalid mapLib");if(P3(fe,t),!fe.supported||fe.supported(t))t.reuseMaps&&(oe=Pu.reuse(t,T.current)),oe||(oe=new Pu(fe.Map,t,T.current)),s.map=C3(oe),s.mapLib=fe,x(oe),h==null||h.onMapMount(s.map,t.id);else throw new Error("Map is not supported by this browser")}).catch(Ae=>{const{onError:fe}=t;fe?fe({type:"error",target:null,originalEvent:null,error:Ae}):console.error(Ae)}),()=>{X=!1,oe&&(h==null||h.onMapUnmount(t.id),t.reuseMaps?oe.recycle():oe.destroy())}},[]),M3(()=>{g&&g.setProps(t)}),ft.useImperativeHandle(i,()=>s.map,[g]);const M=ft.useMemo(()=>({position:"relative",width:"100%",height:"100%",...t.style}),[t.style]),F={height:"100%"};return ft.createElement("div",{id:t.id,ref:T,style:M},g&&ft.createElement(Rg.Provider,{value:s},ft.createElement("div",{"mapboxgl-children":"",style:F},t.children)))}const L3=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function ec(t,i){if(!t||!i)return;const l=t.style;for(const h in i){const g=i[h];Number.isFinite(g)&&!L3.test(h)?l[h]=`${g}px`:l[h]=g}}function R3(t,i){const{map:l,mapLib:h}=ft.useContext(Rg),g=ft.useRef({props:t});g.current.props=t;const x=ft.useMemo(()=>{let ke=!1;ft.Children.forEach(t.children,re=>{re&&(ke=!0)});const ze={...t,element:ke?document.createElement("div"):null},ue=new h.Marker(ze);return ue.setLngLat([t.longitude,t.latitude]),ue.getElement().addEventListener("click",re=>{var le,De;(De=(le=g.current.props).onClick)===null||De===void 0||De.call(le,{type:"click",target:ue,originalEvent:re})}),ue.on("dragstart",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDragStart)===null||De===void 0||De.call(le,je)}),ue.on("drag",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDrag)===null||De===void 0||De.call(le,je)}),ue.on("dragend",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDragEnd)===null||De===void 0||De.call(le,je)}),ue},[]);ft.useEffect(()=>(x.addTo(l.getMap()),()=>{x.remove()}),[]);const{longitude:T,latitude:s,offset:M,style:F,draggable:q=!1,popup:X=null,rotation:oe=0,rotationAlignment:Ae="auto",pitchAlignment:fe="auto"}=t;return ft.useEffect(()=>{ec(x.getElement(),F)},[F]),ft.useImperativeHandle(i,()=>x,[]),(x.getLngLat().lng!==T||x.getLngLat().lat!==s)&&x.setLngLat([T,s]),M&&!x3(x.getOffset(),M)&&x.setOffset(M),x.isDraggable()!==q&&x.setDraggable(q),x.getRotation()!==oe&&x.setRotation(oe),x.getRotationAlignment()!==Ae&&x.setRotationAlignment(Ae),x.getPitchAlignment()!==fe&&x.setPitchAlignment(fe),x.getPopup()!==X&&x.setPopup(X),tx.createPortal(t.children,x.getElement())}const D3=ft.memo(ft.forwardRef(R3));function t2(t){return new Set(t?t.trim().split(/\s+/):[])}function O3(t,i){const{map:l,mapLib:h}=ft.useContext(Rg),g=ft.useMemo(()=>document.createElement("div"),[]),x=ft.useRef({props:t});x.current.props=t;const T=ft.useMemo(()=>{const s={...t},M=new h.Popup(s);return M.setLngLat([t.longitude,t.latitude]),M.once("open",F=>{var q,X;(X=(q=x.current.props).onOpen)===null||X===void 0||X.call(q,F)}),M},[]);if(ft.useEffect(()=>{const s=M=>{var F,q;(q=(F=x.current.props).onClose)===null||q===void 0||q.call(F,M)};return T.on("close",s),T.setDOMContent(g).addTo(l.getMap()),()=>{T.off("close",s),T.isOpen()&&T.remove()}},[]),ft.useEffect(()=>{ec(T.getElement(),t.style)},[t.style]),ft.useImperativeHandle(i,()=>T,[]),T.isOpen()&&((T.getLngLat().lng!==t.longitude||T.getLngLat().lat!==t.latitude)&&T.setLngLat([t.longitude,t.latitude]),t.offset&&!Ps(T.options.offset,t.offset)&&T.setOffset(t.offset),(T.options.anchor!==t.anchor||T.options.maxWidth!==t.maxWidth)&&(T.options.anchor=t.anchor,T.setMaxWidth(t.maxWidth)),T.options.className!==t.className)){const s=t2(T.options.className),M=t2(t.className);for(const F of s)M.has(F)||T.removeClassName(F);for(const F of M)s.has(F)||T.addClassName(F);T.options.className=t.className}return tx.createPortal(t.children,g)}ft.memo(ft.forwardRef(O3));function Nu(t,i,l,h){const g=ft.useContext(Rg),x=ft.useMemo(()=>t(g),[]);return ft.useEffect(()=>{const T=h||l||i,s=typeof i=="function"&&typeof l=="function"?i:null,M=typeof l=="function"?l:typeof i=="function"?i:null,{map:F}=g;return F.hasControl(x)||(F.addControl(x,T==null?void 0:T.position),s&&s(g)),()=>{M&&M(g),F.hasControl(x)&&F.removeControl(x)}},[]),x}function B3(t){const i=Nu(({mapLib:l})=>new l.AttributionControl(t),{position:t.position});return ft.useEffect(()=>{ec(i._container,t.style)},[t.style]),null}ft.memo(B3);function F3(t){const i=Nu(({mapLib:l})=>new l.FullscreenControl({container:t.containerId&&document.getElementById(t.containerId)}),{position:t.position});return ft.useEffect(()=>{ec(i._controlContainer,t.style)},[t.style]),null}ft.memo(F3);function N3(t,i){const l=ft.useRef({props:t}),h=Nu(({mapLib:g})=>{const x=new g.GeolocateControl(t),T=x._setupUI;return x._setupUI=s=>{x._container.hasChildNodes()||T(s)},x.on("geolocate",s=>{var M,F;(F=(M=l.current.props).onGeolocate)===null||F===void 0||F.call(M,s)}),x.on("error",s=>{var M,F;(F=(M=l.current.props).onError)===null||F===void 0||F.call(M,s)}),x.on("outofmaxbounds",s=>{var M,F;(F=(M=l.current.props).onOutOfMaxBounds)===null||F===void 0||F.call(M,s)}),x.on("trackuserlocationstart",s=>{var M,F;(F=(M=l.current.props).onTrackUserLocationStart)===null||F===void 0||F.call(M,s)}),x.on("trackuserlocationend",s=>{var M,F;(F=(M=l.current.props).onTrackUserLocationEnd)===null||F===void 0||F.call(M,s)}),x},{position:t.position});return l.current.props=t,ft.useImperativeHandle(i,()=>h,[]),ft.useEffect(()=>{ec(h._container,t.style)},[t.style]),null}const U3=ft.memo(ft.forwardRef(N3));function j3(t){const i=Nu(({mapLib:l})=>new l.NavigationControl(t),{position:t.position});return ft.useEffect(()=>{ec(i._container,t.style)},[t.style]),null}const V3=ft.memo(j3);function G3(t){const i=Nu(({mapLib:x})=>new x.ScaleControl(t),{position:t.position}),l=ft.useRef(t),h=l.current;l.current=t;const{style:g}=t;return t.maxWidth!==void 0&&t.maxWidth!==h.maxWidth&&(i.options.maxWidth=t.maxWidth),t.unit!==void 0&&t.unit!==h.unit&&i.setUnit(t.unit),ft.useEffect(()=>{ec(i._container,g)},[g]),null}const $3=ft.memo(G3),q3=y3(()=>Promise.resolve().then(()=>E4),void 0),Z3=(()=>ft.forwardRef(function(i,l){return z3(i,l,q3)}))(),yA=D3,W3=V3,H3=U3,X3=$3;var Uu=Y3,K3=Object.prototype.hasOwnProperty;function Y3(){for(var t={},i=0;i-1};Zi.prototype.value=function(t){if(this.selected=t,this.el.value=this.getItemValue(t),document.createEvent){var i=document.createEvent("HTMLEvents");i.initEvent("change",!0,!1),this.el.dispatchEvent(i)}else this.el.fireEvent("onchange")};Zi.prototype.getCandidates=function(t){var i={pre:"",post:"",extract:(function(h){return this.getItemValue(h)}).bind(this)},l;this.options.filter?(l=t5.filter(this.query,this.data,i),l=l.map((function(h){return{original:h.original,string:this.render(h.original,h.string)}}).bind(this))):l=this.data.map((function(h){var g=this.render(h);return{original:h,string:g}}).bind(this)),t(l)};Zi.prototype.getItemValue=function(t){return t};Zi.prototype.render=function(t,i){if(i)return i;for(var l=t.original?this.getItemValue(t.original):this.getItemValue(t),h=this.normalize(l),g=h.lastIndexOf(this.query);g>-1;){var x=g+this.query.length;l=l.slice(0,g)+""+l.slice(g,x)+""+l.slice(x),g=h.slice(0,g).lastIndexOf(this.query)}return l};Zi.prototype.renderError=function(t){this.list.drawError(t)};var i5=Zi,xA=i5,r5=xA;typeof window<"u"&&(window.Suggestions=xA);var o5="Expected a function",n2=0/0,s5="[object Symbol]",a5=/^\s+|\s+$/g,l5=/^[-+]0x[0-9a-f]+$/i,c5=/^0b[01]+$/i,u5=/^0o[0-7]+$/i,h5=parseInt,d5=typeof Co=="object"&&Co&&Co.Object===Object&&Co,p5=typeof self=="object"&&self&&self.Object===Object&&self,f5=d5||p5||Function("return this")(),m5=Object.prototype,g5=m5.toString,_5=Math.max,y5=Math.min,Ky=function(){return f5.Date.now()};function v5(t,i,l){var h,g,x,T,s,M,F=0,q=!1,X=!1,oe=!0;if(typeof t!="function")throw new TypeError(o5);i=i2(i)||0,ov(l)&&(q=!!l.leading,X="maxWait"in l,x=X?_5(i2(l.maxWait)||0,i):x,oe="trailing"in l?!!l.trailing:oe);function Ae(tt){var lt=h,ut=g;return h=g=void 0,F=tt,T=t.apply(ut,lt),T}function fe(tt){return F=tt,s=setTimeout(ue,i),q?Ae(tt):T}function ke(tt){var lt=tt-M,ut=tt-F,Ve=i-lt;return X?y5(Ve,x-ut):Ve}function ze(tt){var lt=tt-M,ut=tt-F;return M===void 0||lt>=i||lt<0||X&&ut>=x}function ue(){var tt=Ky();if(ze(tt))return re(tt);s=setTimeout(ue,ke(tt))}function re(tt){return s=void 0,oe&&h?Ae(tt):(h=g=void 0,T)}function le(){s!==void 0&&clearTimeout(s),F=0,h=M=g=s=void 0}function De(){return s===void 0?T:re(Ky())}function je(){var tt=Ky(),lt=ze(tt);if(h=arguments,g=this,M=tt,lt){if(s===void 0)return fe(M);if(X)return s=setTimeout(ue,i),Ae(M)}return s===void 0&&(s=setTimeout(ue,i)),T}return je.cancel=le,je.flush=De,je}function ov(t){var i=typeof t;return!!t&&(i=="object"||i=="function")}function x5(t){return!!t&&typeof t=="object"}function w5(t){return typeof t=="symbol"||x5(t)&&g5.call(t)==s5}function i2(t){if(typeof t=="number")return t;if(w5(t))return n2;if(ov(t)){var i=typeof t.valueOf=="function"?t.valueOf():t;t=ov(i)?i+"":i}if(typeof t!="string")return t===0?t:+t;t=t.replace(a5,"");var l=c5.test(t);return l||u5.test(t)?h5(t.slice(2),l?2:8):l5.test(t)?n2:+t}var b5=v5,mx={exports:{}},bu=typeof Reflect=="object"?Reflect:null,r2=bu&&typeof bu.apply=="function"?bu.apply:function(i,l,h){return Function.prototype.apply.call(i,l,h)},km;bu&&typeof bu.ownKeys=="function"?km=bu.ownKeys:Object.getOwnPropertySymbols?km=function(i){return Object.getOwnPropertyNames(i).concat(Object.getOwnPropertySymbols(i))}:km=function(i){return Object.getOwnPropertyNames(i)};function E5(t){console&&console.warn&&console.warn(t)}var wA=Number.isNaN||function(i){return i!==i};function Sn(){Sn.init.call(this)}mx.exports=Sn;mx.exports.once=C5;Sn.EventEmitter=Sn;Sn.prototype._events=void 0;Sn.prototype._eventsCount=0;Sn.prototype._maxListeners=void 0;var o2=10;function Dg(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(Sn,"defaultMaxListeners",{enumerable:!0,get:function(){return o2},set:function(t){if(typeof t!="number"||t<0||wA(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");o2=t}});Sn.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Sn.prototype.setMaxListeners=function(i){if(typeof i!="number"||i<0||wA(i))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+i+".");return this._maxListeners=i,this};function bA(t){return t._maxListeners===void 0?Sn.defaultMaxListeners:t._maxListeners}Sn.prototype.getMaxListeners=function(){return bA(this)};Sn.prototype.emit=function(i){for(var l=[],h=1;h0&&(T=l[0]),T instanceof Error)throw T;var s=new Error("Unhandled error."+(T?" ("+T.message+")":""));throw s.context=T,s}var M=x[i];if(M===void 0)return!1;if(typeof M=="function")r2(M,this,l);else for(var F=M.length,q=CA(M,F),h=0;h0&&T.length>g&&!T.warned){T.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+T.length+" "+String(i)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=i,s.count=T.length,E5(s)}return t}Sn.prototype.addListener=function(i,l){return EA(this,i,l,!1)};Sn.prototype.on=Sn.prototype.addListener;Sn.prototype.prependListener=function(i,l){return EA(this,i,l,!0)};function T5(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function TA(t,i,l){var h={fired:!1,wrapFn:void 0,target:t,type:i,listener:l},g=T5.bind(h);return g.listener=l,h.wrapFn=g,g}Sn.prototype.once=function(i,l){return Dg(l),this.on(i,TA(this,i,l)),this};Sn.prototype.prependOnceListener=function(i,l){return Dg(l),this.prependListener(i,TA(this,i,l)),this};Sn.prototype.removeListener=function(i,l){var h,g,x,T,s;if(Dg(l),g=this._events,g===void 0)return this;if(h=g[i],h===void 0)return this;if(h===l||h.listener===l)--this._eventsCount===0?this._events=Object.create(null):(delete g[i],g.removeListener&&this.emit("removeListener",i,h.listener||l));else if(typeof h!="function"){for(x=-1,T=h.length-1;T>=0;T--)if(h[T]===l||h[T].listener===l){s=h[T].listener,x=T;break}if(x<0)return this;x===0?h.shift():S5(h,x),h.length===1&&(g[i]=h[0]),g.removeListener!==void 0&&this.emit("removeListener",i,s||l)}return this};Sn.prototype.off=Sn.prototype.removeListener;Sn.prototype.removeAllListeners=function(i){var l,h,g;if(h=this._events,h===void 0)return this;if(h.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):h[i]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete h[i]),this;if(arguments.length===0){var x=Object.keys(h),T;for(g=0;g=0;g--)this.removeListener(i,l[g]);return this};function SA(t,i,l){var h=t._events;if(h===void 0)return[];var g=h[i];return g===void 0?[]:typeof g=="function"?l?[g.listener||g]:[g]:l?A5(g):CA(g,g.length)}Sn.prototype.listeners=function(i){return SA(this,i,!0)};Sn.prototype.rawListeners=function(i){return SA(this,i,!1)};Sn.listenerCount=function(t,i){return typeof t.listenerCount=="function"?t.listenerCount(i):AA.call(t,i)};Sn.prototype.listenerCount=AA;function AA(t){var i=this._events;if(i!==void 0){var l=i[t];if(typeof l=="function")return 1;if(l!==void 0)return l.length}return 0}Sn.prototype.eventNames=function(){return this._eventsCount>0?km(this._events):[]};function CA(t,i){for(var l=new Array(i),h=0;h]*)>(.*)/);if(!i)return null;var l=i[1],h=i[2].split(";"),g=null,x=h.reduce(function(T,s){var M=P5(s);return M?M.key==="rel"?(g||(g=M.value),T):(T[M.key]=M.value,T):T},{});return g?{url:l,rel:g,params:x}:null}function L5(t){return t?t.split(/,\s*=400){var T=new a2({request:t,body:i.response,statusCode:i.status});h(T);return}l(i)};var x=t.body;typeof x=="string"?i.send(x):x?i.send(JSON.stringify(x)):g?i.send(g):i.send(),ag[t.id]=i}).then(function(l){return q5(t,l)})}function kA(t,i){var l=t.url(i),h=new window.XMLHttpRequest;return h.open(t.method,l),Object.keys(t.headers).forEach(function(g){h.setRequestHeader(g,t.headers[g])}),h}function Z5(t){return Promise.resolve().then(function(){var i=kA(t,t.client.accessToken);return MA(t,i)})}var W5={browserAbort:$5,sendRequestXhr:MA,browserSend:Z5,createRequestXhr:kA},lg={exports:{}};/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */lg.exports;(function(t,i){(function(l){var h=i,g=t&&t.exports==h&&t,x=typeof Co=="object"&&Co;(x.global===x||x.window===x)&&(l=x);var T=function(fe){this.message=fe};T.prototype=new Error,T.prototype.name="InvalidCharacterError";var s=function(fe){throw new T(fe)},M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",F=/[\t\n\f\r ]/g,q=function(fe){fe=String(fe).replace(F,"");var ke=fe.length;ke%4==0&&(fe=fe.replace(/==?$/,""),ke=fe.length),(ke%4==1||/[^+a-zA-Z0-9/]/.test(fe))&&s("Invalid character: the string to be decoded is not correctly encoded.");for(var ze=0,ue,re,le="",De=-1;++De>(-2*ze&6)));return le},X=function(fe){fe=String(fe),/[^\0-\xFF]/.test(fe)&&s("The string to be encoded contains characters outside of the Latin1 range.");for(var ke=fe.length%3,ze="",ue=-1,re,le,De,je,tt=fe.length-ke;++ue>18&63)+M.charAt(je>>12&63)+M.charAt(je>>6&63)+M.charAt(je&63);return ke==2?(re=fe.charCodeAt(ue)<<8,le=fe.charCodeAt(++ue),je=re+le,ze+=M.charAt(je>>10)+M.charAt(je>>4&63)+M.charAt(je<<2&63)+"="):ke==1&&(je=fe.charCodeAt(ue),ze+=M.charAt(je>>2)+M.charAt(je<<4&63)+"=="),ze},oe={encode:X,decode:q,version:"0.1.0"};if(h&&!h.nodeType)if(g)g.exports=oe;else for(var Ae in oe)oe.hasOwnProperty(Ae)&&(h[Ae]=oe[Ae]);else l.base64=oe})(Co)})(lg,lg.exports);var H5=lg.exports,X5=H5,Jy={};function K5(t){if(Jy[t])return Jy[t];var i=t.split("."),l=i[0],h=i[1];if(!h)throw new Error("Invalid token");var g=Y5(h),x={usage:l,user:g.u};return Ol(g,"a")&&(x.authorization=g.a),Ol(g,"exp")&&(x.expires=g.exp*1e3),Ol(g,"iat")&&(x.created=g.iat*1e3),Ol(g,"scopes")&&(x.scopes=g.scopes),Ol(g,"client")&&(x.client=g.client),Ol(g,"ll")&&(x.lastLogin=g.ll),Ol(g,"iu")&&(x.impersonator=g.iu),Jy[t]=x,x}function Y5(t){try{return JSON.parse(X5.decode(t))}catch{throw new Error("Invalid token")}}function Ol(t,i){return Object.prototype.hasOwnProperty.call(t,i)}var PA=K5,zA={exports:{}};(function(t){var i=Object.prototype.hasOwnProperty,l="~";function h(){}Object.create&&(h.prototype=Object.create(null),new h().__proto__||(l=!1));function g(M,F,q){this.fn=M,this.context=F,this.once=q||!1}function x(M,F,q,X,oe){if(typeof q!="function")throw new TypeError("The listener must be a function");var Ae=new g(q,X||M,oe),fe=l?l+F:F;return M._events[fe]?M._events[fe].fn?M._events[fe]=[M._events[fe],Ae]:M._events[fe].push(Ae):(M._events[fe]=Ae,M._eventsCount++),M}function T(M,F){--M._eventsCount===0?M._events=new h:delete M._events[F]}function s(){this._events=new h,this._eventsCount=0}s.prototype.eventNames=function(){var F=[],q,X;if(this._eventsCount===0)return F;for(X in q=this._events)i.call(q,X)&&F.push(l?X.slice(1):X);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(q)):F},s.prototype.listeners=function(F){var q=l?l+F:F,X=this._events[q];if(!X)return[];if(X.fn)return[X.fn];for(var oe=0,Ae=X.length,fe=new Array(Ae);oex.length?T:x})}};kn.equal=function(i){return function(h){if(h!==i)return JSON.stringify(i)}};kn.oneOf=function(){var i=Array.isArray(arguments[0])?arguments[0]:Array.prototype.slice.call(arguments),l=i.map(function(h){return kn.equal(h)});return kn.oneOfType.apply(this,l)};kn.range=function(i){var l=i[0],h=i[1];return function(x){var T=ja(kn.number,x);if(T||xh)return"number between "+l+" & "+h+" (inclusive)"}};kn.any=function(){};kn.boolean=function(i){if(typeof i!="boolean")return"boolean"};kn.number=function(i){if(typeof i!="number")return"number"};kn.plainArray=function(i){if(!Array.isArray(i))return"array"};kn.plainObject=function(i){if(!gO(i))return"object"};kn.string=function(i){if(typeof i!="string")return"string"};kn.func=function(i){if(typeof i!="function")return"function"};function ja(t,i){if(!(i==null&&!t.hasOwnProperty("__required"))){var l=t(i);if(l)return Array.isArray(l)?l:[l]}}function yx(t,i){var l=t.length,h=t[l-1],g=t.slice(0,l-1);return g.length===0&&(g=[UA]),i=_O(i,{path:g}),typeof h=="function"?h(i):VA(i,vO(h))}function yO(t){return t.length<2?t[0]:t.length===2?t.join(" or "):t.slice(0,-1).join(", ")+", or "+t.slice(-1)}function vO(t){return"must be "+xO(t)+"."}function xO(t){return/^an? /.test(t)?t:/^[aeiou]/i.test(t)?"an "+t:/^[a-z]/i.test(t)?"a "+t:t}function VA(t,i){var l=GA(t.path),h=t.path.join(".")+" "+i,g=l?"Item at position ":"";return g+h}function GA(t){return typeof t[t.length-1]=="number"||typeof t[0]=="number"}function wO(t){return Object.keys(t||{}).map(function(i){return{key:i,value:t[i]}})}kn.validate=ja;kn.processMessage=yx;var bO=kn,EO=Uu,Eu=bO;function TO(t){if(typeof window<"u")return t instanceof Co.Blob||t instanceof Co.ArrayBuffer?void 0:"Blob or ArrayBuffer";if(!(typeof t=="string"||t.pipe!==void 0))return"Filename or Readable stream"}function SO(t,i){return Eu.assert(Eu.strictShape(t),i)}function AO(t){var i="date";if(typeof t=="boolean")return i;try{var l=new Date(t);if(l.getTime&&isNaN(l.getTime()))return i}catch{return i}}function CO(t){return Eu.tuple(Eu.number,Eu.number)(t)}var IO=EO(Eu,{file:TO,date:AO,coordinates:CO,assertShape:SO});function MO(t,i){var l=function(h,g){return i.indexOf(h)!==-1&&g!==void 0};return typeof i=="function"&&(l=i),Object.keys(t).filter(function(h){return l(h,t[h])}).reduce(function(h,g){return h[g]=t[g],h},{})}var kO=MO;function PO(t,i){return Object.keys(t).reduce(function(l,h){return l[h]=i(h,t[h]),l},{})}var zO=PO,LO=zO;function RO(t){return LO(t,function(i,l){return typeof l=="boolean"?JSON.stringify(l):l})}var DO=RO,OO=OA,BO=NA;function FO(t){return function(i){var l;OO.prototype.isPrototypeOf(i)?l=i:l=BO(i);var h=Object.create(t);return h.client=l,h}}var NO=FO,$A=Uu,tn=IO,cg=kO,qA=DO,UO=NO,vx={},ZA=["country","region","postcode","district","place","locality","neighborhood","address","poi","poi.landmark"];vx.forwardGeocode=function(t){tn.assertShape({query:tn.required(tn.string),mode:tn.oneOf("mapbox.places","mapbox.places-permanent"),countries:tn.arrayOf(tn.string),proximity:tn.oneOf(tn.coordinates,"ip"),types:tn.arrayOf(tn.oneOf(ZA)),autocomplete:tn.boolean,bbox:tn.arrayOf(tn.number),limit:tn.number,language:tn.arrayOf(tn.string),routing:tn.boolean,fuzzyMatch:tn.boolean,worldview:tn.string})(t),t.mode=t.mode||"mapbox.places";var i=qA($A({country:t.countries},cg(t,["proximity","types","autocomplete","bbox","limit","language","routing","fuzzyMatch","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:cg(t,["mode","query"]),query:i})};vx.reverseGeocode=function(t){tn.assertShape({query:tn.required(tn.coordinates),mode:tn.oneOf("mapbox.places","mapbox.places-permanent"),countries:tn.arrayOf(tn.string),types:tn.arrayOf(tn.oneOf(ZA)),bbox:tn.arrayOf(tn.number),limit:tn.number,language:tn.arrayOf(tn.string),reverseMode:tn.oneOf("distance","score"),routing:tn.boolean,worldview:tn.string})(t),t.mode=t.mode||"mapbox.places";var i=qA($A({country:t.countries},cg(t,["country","types","bbox","limit","language","reverseMode","routing","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:cg(t,["mode","query"]),query:i})};var jO=UO(vx),VO=self.crypto||self.msCrypto,xx="-_",Ba=36;for(;Ba--;)xx+=Ba.toString(36);Ba=36;for(;Ba---10;)xx+=Ba.toString(36).toUpperCase();var GO=function(t){var i="",l=VO.getRandomValues(new Uint8Array(t||21));for(Ba=t||21;Ba--;)i+=xx[l[Ba]&63];return i},$O=GO;function WA(t){this.origin=t.origin||"https://api.mapbox.com",this.endpoint="events/v2",this.access_token=t.accessToken,this.version="0.2.0",this.sessionID=this.generateSessionID(),this.userAgent=this.getUserAgent(),this.options=t,this.send=this.send.bind(this),this.countries=t.countries?t.countries.split(","):null,this.types=t.types?t.types.split(","):null,this.bbox=t.bbox?t.bbox:null,this.language=t.language?t.language.split(","):null,this.limit=t.limit?+t.limit:null,this.locale=navigator.language||null,this.enableEventLogging=this.shouldEnableLogging(t),this.eventQueue=new Array,this.flushInterval=t.flushInterval||1e3,this.maxQueueSize=t.maxQueueSize||100,this.timer=this.flushInterval?setTimeout(this.flush.bind(this),this.flushInterval):null,this.lastSentInput="",this.lastSentIndex=0}WA.prototype={select:function(t,i){var l=this.getSelectedIndex(t,i),h=this.getEventPayload("search.select",i);if(h.resultIndex=l,h.resultPlaceName=t.place_name,h.resultId=t.id,!(l===this.lastSentIndex&&h.queryString===this.lastSentInput||l==-1)&&(this.lastSentIndex=l,this.lastSentInput=h.queryString,!!h.queryString))return this.push(h)},start:function(t){var i=this.getEventPayload("search.start",t);if(i.queryString)return this.push(i)},keyevent:function(t,i){if(t.key&&!(t.metaKey||[9,27,37,39,13,38,40].indexOf(t.keyCode)!==-1)){var l=this.getEventPayload("search.keystroke",i);if(l.lastAction=t.key,!!l.queryString)return this.push(l)}},send:function(t,i){if(!this.enableEventLogging)return i?i():void 0;var l=this.getRequestOptions(t);this.request(l,(function(h){if(h)return this.handleError(h,i);if(i)return i()}).bind(this))},getRequestOptions:function(t){Array.isArray(t)||(t=[t]);var i={method:"POST",host:this.origin,path:this.endpoint+"?access_token="+this.access_token,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)};return i},getEventPayload:function(t,i){var l;i.options.proximity?l=[i.options.proximity.longitude,i.options.proximity.latitude]:l=null;var h=i._map?i._map.getZoom():void 0,g={event:t,created:+new Date,sessionIdentifier:this.sessionID,country:this.countries,userAgent:this.userAgent,language:this.language,bbox:this.bbox,types:this.types,endpoint:"mapbox.places",autocomplete:i.options.autocomplete,fuzzyMatch:i.options.fuzzyMatch,proximity:l,limit:i.options.limit,routing:i.options.routing,worldview:i.options.worldview,mapZoom:h,keyboardLocale:this.locale};return t==="search.select"?g.queryString=i.inputString:t!="search.select"&&i._inputEl?g.queryString=i._inputEl.value:g.queryString=i.inputString,g},request:function(t,i){var l=new XMLHttpRequest;l.onreadystatechange=function(){if(this.readyState==4)return this.status==204?i(null):i(this.statusText)},l.open(t.method,t.host+"/"+t.path,!0);for(var h in t.headers){var g=t.headers[h];l.setRequestHeader(h,g)}l.send(t.body)},handleError:function(t,i){if(i)return i(t)},generateSessionID:function(){return $O()},getUserAgent:function(){return"mapbox-gl-geocoder."+this.version+"."+navigator.userAgent},getSelectedIndex:function(t,i){if(i._typeahead){var l=i._typeahead.data,h=t.id,g=l.map(function(T){return T.id}),x=g.indexOf(h);return x}},shouldEnableLogging:function(t){return!(t.enableEventLogging===!1||t.origin&&t.origin.indexOf("api.mapbox.com")==-1||t.localGeocoder||t.filter)},flush:function(){this.eventQueue.length>0&&(this.send(this.eventQueue),this.eventQueue=new Array),this.timer&&clearTimeout(this.timer),this.flushInterval&&(this.timer=setTimeout(this.flush.bind(this),this.flushInterval))},push:function(t,i){this.eventQueue.push(t),(this.eventQueue.length>=this.maxQueueSize||i)&&this.flush()},remove:function(){this.flush()}};var qO=WA,ZO={de:"Suche",it:"Ricerca",en:"Search",nl:"Zoeken",fr:"Chercher",ca:"Cerca",he:"לחפש",ja:"サーチ",lv:"Meklēt",pt:"Procurar",sr:"Претрага",zh:"搜索",cs:"Vyhledávání",hu:"Keresés",ka:"ძიება",nb:"Søke",sk:"Vyhľadávanie",th:"ค้นหา",fi:"Hae",is:"Leita",ko:"수색",pl:"Szukaj",sl:"Iskanje",fa:"جستجو",ru:"Поиск"},WO={placeholder:ZO},HA={exports:{}};(function(t){(function(i,l,h){t.exports?t.exports=h():i[l]=h()})(Co,"subtag",function(){var i="",l=/^([a-zA-Z]{2,3})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?/;function h(M){return M.match(l)||[]}function g(M){return h(M).filter(function(F,q){return F&&q})}function x(M){return M=h(M),{language:M[1]||i,extlang:M[2]||i,script:M[3]||i,region:M[4]||i}}function T(M,F,q){Object.defineProperty(M,F,{value:q,enumerable:!0})}function s(M,F,q){function X(oe){return h(oe)[M]||i}T(X,"pattern",F),T(x,q,X)}return s(1,/^[a-zA-Z]{2,3}$/,"language"),s(2,/^[a-zA-Z]{3}$/,"extlang"),s(3,/^[a-zA-Z]{4}$/,"script"),s(4,/^[a-zA-Z]{2}$|^[0-9]{3}$/,"region"),T(x,"split",g),x})})(HA);var HO=HA.exports,XO=r5,KO=b5,Nl=Uu,YO=M5.EventEmitter,u2=k5,h2=pO,d2=jO,JO=qO,QO=WO,e4=HO;const ba={FORWARD:0,LOCAL:1,REVERSE:2};function XA(t){this._eventEmitter=new YO,this.options=Nl({},this.options,t),this.inputString="",this.fresh=!0,this.lastSelected=null}XA.prototype={options:{zoom:16,flyTo:!0,trackProximity:!0,minLength:2,reverseGeocode:!1,limit:5,origin:"https://api.mapbox.com",enableEventLogging:!0,marker:!0,mapboxgl:null,collapsed:!1,clearAndBlurOnEsc:!1,clearOnBlur:!1,getItemValue:function(t){return t.place_name},render:function(t){var i=t.place_name.split(",");return'
'+i[0]+'
'+i.splice(1,i.length).join(",")+"
"}},addTo:function(t){function i(l,h){if(!document.body.contains(h))throw new Error("Element provided to #addTo() exists, but is not in the DOM");const g=l.onAdd();h.appendChild(g)}if(t._controlContainer)t.addControl(this);else if(t instanceof HTMLElement)i(this,t);else if(typeof t=="string"){const l=document.querySelectorAll(t);if(l.length===0)throw new Error("Element ",t,"not found.");if(l.length>1)throw new Error("Geocoder can only be added to a single html element");i(this,l[0])}else throw new Error("Error: addTo must be a mapbox-gl-js map, an html element, or a CSS selector query for a single html element")},onAdd:function(t){if(t&&typeof t!="string"&&(this._map=t),this.setLanguage(),this.options.localGeocoderOnly||(this.geocoderService=d2(h2({accessToken:this.options.accessToken,origin:this.options.origin}))),this.options.localGeocoderOnly&&!this.options.localGeocoder)throw new Error("A localGeocoder function must be specified to use localGeocoderOnly mode");this.eventManager=new JO(this.options),this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onPaste=this._onPaste.bind(this),this._onBlur=this._onBlur.bind(this),this._showButton=this._showButton.bind(this),this._hideButton=this._hideButton.bind(this),this._onQueryResult=this._onQueryResult.bind(this),this.clear=this.clear.bind(this),this._updateProximity=this._updateProximity.bind(this),this._collapse=this._collapse.bind(this),this._unCollapse=this._unCollapse.bind(this),this._clear=this._clear.bind(this),this._clearOnBlur=this._clearOnBlur.bind(this);var i=this.container=document.createElement("div");i.className="mapboxgl-ctrl-geocoder mapboxgl-ctrl";var l=this.createIcon("search",'');this._inputEl=document.createElement("input"),this._inputEl.type="text",this._inputEl.className="mapboxgl-ctrl-geocoder--input",this.setPlaceholder(),this.options.collapsed&&(this._collapse(),this.container.addEventListener("mouseenter",this._unCollapse),this.container.addEventListener("mouseleave",this._collapse),this._inputEl.addEventListener("focus",this._unCollapse)),(this.options.collapsed||this.options.clearOnBlur)&&this._inputEl.addEventListener("blur",this._onBlur),this._inputEl.addEventListener("keydown",KO(this._onKeyDown,200)),this._inputEl.addEventListener("paste",this._onPaste),this._inputEl.addEventListener("change",this._onChange),this.container.addEventListener("mouseenter",this._showButton),this.container.addEventListener("mouseleave",this._hideButton),this._inputEl.addEventListener("keyup",(function(x){this.eventManager.keyevent(x,this)}).bind(this));var h=document.createElement("div");h.classList.add("mapboxgl-ctrl-geocoder--pin-right"),this._clearEl=document.createElement("button"),this._clearEl.setAttribute("aria-label","Clear"),this._clearEl.addEventListener("click",this.clear),this._clearEl.className="mapboxgl-ctrl-geocoder--button";var g=this.createIcon("close",'');return this._clearEl.appendChild(g),this._loadingEl=this.createIcon("loading",''),h.appendChild(this._clearEl),h.appendChild(this._loadingEl),i.appendChild(l),i.appendChild(this._inputEl),i.appendChild(h),this._typeahead=new XO(this._inputEl,[],{filter:!1,minLength:this.options.minLength,limit:this.options.limit}),this.setRenderFunction(this.options.render),this._typeahead.getItemValue=this.options.getItemValue,this.mapMarker=null,this._handleMarker=this._handleMarker.bind(this),this._map&&(this.options.trackProximity&&(this._updateProximity(),this._map.on("moveend",this._updateProximity)),this._mapboxgl=this.options.mapboxgl,!this._mapboxgl&&this.options.marker&&(console.error("No mapboxgl detected in options. Map markers are disabled. Please set options.mapboxgl."),this.options.marker=!1)),i},createIcon:function(t,i){var l=document.createElementNS("http://www.w3.org/2000/svg","svg");if(l.setAttribute("class","mapboxgl-ctrl-geocoder--icon mapboxgl-ctrl-geocoder--icon-"+t),l.setAttribute("viewBox","0 0 18 18"),l.setAttribute("xml:space","preserve"),l.setAttribute("width",18),l.setAttribute("height",18),"innerHTML"in l)l.innerHTML=i;else{var h=document.createElement("div");h.innerHTML=""+i.valueOf().toString()+"";var g=h.firstChild,x=g.firstChild;l.appendChild(x)}return l},onRemove:function(){return this.container.parentNode.removeChild(this.container),this.options.trackProximity&&this._map&&this._map.off("moveend",this._updateProximity),this._removeMarker(),this._map=null,this},_onPaste:function(t){var i=(t.clipboardData||window.clipboardData).getData("text");i.length>=this.options.minLength&&this._geocode(i)},_onKeyDown:function(t){var i=27,l=9;if(t.keyCode===i&&this.options.clearAndBlurOnEsc)return this._clear(t),this._inputEl.blur();var h=t.target&&t.target.shadowRoot?t.target.shadowRoot.activeElement:t.target,g=h?h.value:"";if(!g)return this.fresh=!0,t.keyCode!==l&&this.clear(t),this._clearEl.style.display="none";t.metaKey||[l,i,37,39,13,38,40].indexOf(t.keyCode)!==-1||h.value.length>=this.options.minLength&&this._geocode(h.value)},_showButton:function(){this._typeahead.selected&&(this._clearEl.style.display="block")},_hideButton:function(){this._typeahead.selected&&(this._clearEl.style.display="none")},_onBlur:function(t){this.options.clearOnBlur&&this._clearOnBlur(t),this.options.collapsed&&this._collapse()},_onChange:function(){var t=this._typeahead.selected;if(t&&JSON.stringify(t)!==this.lastSelected){if(this._clearEl.style.display="none",this.options.flyTo){var i;if(t.properties&&u2[t.properties.short_code])i=Nl({},this.options.flyTo),this._map&&this._map.fitBounds(u2[t.properties.short_code].bbox,i);else if(t.bbox){var l=t.bbox;i=Nl({},this.options.flyTo),this._map&&this._map.fitBounds([[l[0],l[1]],[l[2],l[3]]],i)}else{var h={zoom:this.options.zoom};i=Nl({},h,this.options.flyTo),t.center?i.center=t.center:t.geometry&&t.geometry.type&&t.geometry.type==="Point"&&t.geometry.coordinates&&(i.center=t.geometry.coordinates),this._map&&this._map.flyTo(i)}}this.options.marker&&this._mapboxgl&&this._handleMarker(t),this._inputEl.focus(),this._inputEl.scrollLeft=0,this._inputEl.setSelectionRange(0,0),this.lastSelected=JSON.stringify(t),this._eventEmitter.emit("result",{result:t}),this.eventManager.select(t,this)}},_requestType:function(t,i){var l;const h=/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)[ ]*$/;return t.localGeocoderOnly?l=ba.LOCAL:t.reverseGeocode&&h.test(i)?l=ba.REVERSE:l=ba.FORWARD,l},_setupConfig:function(t,i){const l=["bbox","limit","proximity","countries","types","language","reverseMode","mode","autocomplete","fuzzyMatch","routing","worldview"],h=/[\s,]+/;var g=this,x=l.reduce(function(s,M){if(g.options[M]===void 0||g.options[M]===null)return s;["countries","types","language"].indexOf(M)>-1?s[M]=g.options[M].split(h):s[M]=g.options[M];const F=typeof g.options[M].longitude=="number"&&typeof g.options[M].latitude=="number";if(M==="proximity"&&F){const q=g.options[M].longitude,X=g.options[M].latitude;s[M]=[q,X]}return s},{});switch(t){case ba.REVERSE:{var T=i.split(h).map(function(s){return parseFloat(s,10)}).reverse();x.types&&x.types[0],x=Nl(x,{query:T,limit:1}),["proximity","autocomplete","fuzzyMatch","bbox"].forEach(function(s){s in x&&delete x[s]})}break;case ba.FORWARD:/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)*[ ]*$/.test(i)&&(i=i.replace(/,/g," ")),x=Nl(x,{query:i});break}return x},_geocode:function(t){this.inputString=t,this._loadingEl.style.display="block",this._eventEmitter.emit("loading",{query:t});const i=this._requestType(this.options,t),l=this._setupConfig(i,t);var h;switch(i){case ba.LOCAL:h=Promise.resolve();break;case ba.FORWARD:h=this.geocoderService.forwardGeocode(l).send();break;case ba.REVERSE:h=this.geocoderService.reverseGeocode(l).send();break}var g=this.options.localGeocoder?this.options.localGeocoder(t)||[]:[],x=[],T=null;return h.catch((function(s){T=s}).bind(this)).then((function(s){this._loadingEl.style.display="none";var M={};return s?s.statusCode=="200"&&(M=s.body,M.request=s.request,M.headers=s.headers):M={type:"FeatureCollection",features:[]},M.config=l,this.fresh&&(this.eventManager.start(this),this.fresh=!1),M.features=M.features?g.concat(M.features):g,this.options.externalGeocoder?(x=this.options.externalGeocoder(t,M.features)||[],x.then(function(F){return M.features=M.features?F.concat(M.features):F,M},function(){return M})):M}).bind(this)).then((function(s){if(T)throw T;this.options.filter&&s.features.length&&(s.features=s.features.filter(this.options.filter)),s.features.length?(this._clearEl.style.display="block",this._eventEmitter.emit("results",s),this._typeahead.update(s.features)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderNoResults(),this._eventEmitter.emit("results",s))}).bind(this)).catch((function(s){this._loadingEl.style.display="none",g.length&&this.options.localGeocoder||x.length&&this.options.externalGeocoder?(this._clearEl.style.display="block",this._typeahead.update(g)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderError()),this._eventEmitter.emit("results",{features:g}),this._eventEmitter.emit("error",{error:s})}).bind(this)),h},_clear:function(t){t&&t.preventDefault(),this._inputEl.value="",this._typeahead.selected=null,this._typeahead.clear(),this._onChange(),this._clearEl.style.display="none",this._removeMarker(),this.lastSelected=null,this._eventEmitter.emit("clear"),this.fresh=!0},clear:function(t){this._clear(t),this._inputEl.focus()},_clearOnBlur:function(t){var i=this;t.relatedTarget&&i._clear(t)},_onQueryResult:function(t){var i=t.body;if(i.features.length){var l=i.features[0];this._typeahead.selected=l,this._inputEl.value=l.place_name,this._onChange()}},_updateProximity:function(){if(this._map)if(this._map.getZoom()>9){var t=this._map.getCenter().wrap();this.setProximity({longitude:t.lng,latitude:t.lat})}else this.setProximity(null)},_collapse:function(){!this._inputEl.value&&this._inputEl!==document.activeElement&&this.container.classList.add("mapboxgl-ctrl-geocoder--collapsed")},_unCollapse:function(){this.container.classList.remove("mapboxgl-ctrl-geocoder--collapsed")},query:function(t){return this._geocode(t).then(this._onQueryResult),this},_renderError:function(){var t="
There was an error reaching the server
";this._renderMessage(t)},_renderNoResults:function(){var t="
No results found
";this._renderMessage(t)},_renderMessage:function(t){this._typeahead.update([]),this._typeahead.selected=null,this._typeahead.clear(),this._typeahead.renderError(t)},_getPlaceholderText:function(){if(this.options.placeholder)return this.options.placeholder;if(this.options.language){var t=this.options.language.split(",")[0],i=e4.language(t),l=QO.placeholder[i];if(l)return l}return"Search"},setInput:function(t){return this._inputEl.value=t,this._typeahead.selected=null,this._typeahead.clear(),t.length>=this.options.minLength&&this._geocode(t),this},setProximity:function(t){return this.options.proximity=t,this},getProximity:function(){return this.options.proximity},setRenderFunction:function(t){return t&&typeof t=="function"&&(this._typeahead.render=t),this},getRenderFunction:function(){return this._typeahead.render},setLanguage:function(t){var i=navigator.language||navigator.userLanguage||navigator.browserLanguage;return this.options.language=t||this.options.language||i,this},getLanguage:function(){return this.options.language},getZoom:function(){return this.options.zoom},setZoom:function(t){return this.options.zoom=t,this},getFlyTo:function(){return this.options.flyTo},setFlyTo:function(t){return this.options.flyTo=t,this},getPlaceholder:function(){return this.options.placeholder},setPlaceholder:function(t){return this.placeholder=t||this._getPlaceholderText(),this._inputEl.placeholder=this.placeholder,this._inputEl.setAttribute("aria-label",this.placeholder),this},getBbox:function(){return this.options.bbox},setBbox:function(t){return this.options.bbox=t,this},getCountries:function(){return this.options.countries},setCountries:function(t){return this.options.countries=t,this},getTypes:function(){return this.options.types},setTypes:function(t){return this.options.types=t,this},getMinLength:function(){return this.options.minLength},setMinLength:function(t){return this.options.minLength=t,this._typeahead&&(this._typeahead.options.minLength=t),this},getLimit:function(){return this.options.limit},setLimit:function(t){return this.options.limit=t,this._typeahead&&(this._typeahead.options.limit=t),this},getFilter:function(){return this.options.filter},setFilter:function(t){return this.options.filter=t,this},setOrigin:function(t){return this.options.origin=t,this.geocoderService=d2(h2({accessToken:this.options.accessToken,origin:this.options.origin})),this},getOrigin:function(){return this.options.origin},setAutocomplete:function(t){return this.options.autocomplete=t,this},getAutocomplete:function(){return this.options.autocomplete},setFuzzyMatch:function(t){return this.options.fuzzyMatch=t,this},getFuzzyMatch:function(){return this.options.fuzzyMatch},setRouting:function(t){return this.options.routing=t,this},getRouting:function(){return this.options.routing},setWorldview:function(t){return this.options.worldview=t,this},getWorldview:function(){return this.options.worldview},_handleMarker:function(t){if(this._map){this._removeMarker();var i={color:"#4668F2"},l=Nl({},i,this.options.marker);return this.mapMarker=new this._mapboxgl.Marker(l),t.center?this.mapMarker.setLngLat(t.center).addTo(this._map):t.geometry&&t.geometry.type&&t.geometry.type==="Point"&&t.geometry.coordinates&&this.mapMarker.setLngLat(t.geometry.coordinates).addTo(this._map),this}},_removeMarker:function(){this.mapMarker&&(this.mapMarker.remove(),this.mapMarker=null)},on:function(t,i){return this._eventEmitter.on(t,i),this},off:function(t,i){return this._eventEmitter.removeListener(t,i),this.eventManager.remove(),this}};var t4=XA;const n4=sv(t4);/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */function i4(t){const[i,l]=ft.useState(null),h=Object.assign({},t),g=Nu(()=>{const x=new n4(Object.assign(Object.assign({},h),{marker:i||!1,accessToken:h.mapboxAccessToken}));return h.onLoading&&x.on("loading",h.onLoading),h.onResults&&x.on("results",h.onResults),h.onResult&&x.on("result",T=>{var s;h.onResult!==void 0&&h.onResult(T);const{result:M}=T,F=M&&(M.center||((s=M.geometry)===null||s===void 0?void 0:s.type)==="Point"&&M.geometry.coordinates);if(F&&h.marker){const q=typeof h.marker=="object"?h.marker:{};l(ft.createElement(yA,Object.assign({},q,{longitude:F[0],latitude:F[1]})))}else l(null)}),h.onError&&x.on("error",h.onError),x},{position:h.position});return g.hasOwnProperty("_map")&&g._map&&(g.getProximity()!==h.proximity&&h.proximity!==void 0&&g.setProximity(h.proximity),g.getRenderFunction()!==h.render&&h.render!==void 0&&g.setRenderFunction(h.render),g.getLanguage()!==h.language&&h.language!==void 0&&g.setLanguage(h.language),g.getZoom()!==h.zoom&&h.zoom!==void 0&&g.setZoom(h.zoom),g.getFlyTo()!==h.flyTo&&h.flyTo!==void 0&&g.setFlyTo(h.flyTo),g.getPlaceholder()!==h.placeholder&&h.placeholder!==void 0&&g.setPlaceholder(h.placeholder),g.getCountries()!==h.countries&&h.countries!==void 0&&g.setCountries(h.countries),g.getTypes()!==h.types&&h.types!==void 0&&g.setTypes(h.types),g.getMinLength()!==h.minLength&&h.minLength!==void 0&&g.setMinLength(h.minLength),g.getLimit()!==h.limit&&h.limit!==void 0&&g.setLimit(h.limit),g.getFilter()!==h.filter&&h.filter!==void 0&&g.setFilter(h.filter),g.getOrigin()!==h.origin&&h.origin!==void 0&&g.setOrigin(h.origin),g.getAutocomplete()!==h.autocomplete&&h.autocomplete!==void 0&&g.setAutocomplete(h.autocomplete),g.getFuzzyMatch()!==h.fuzzyMatch&&h.fuzzyMatch!==void 0&&g.setFuzzyMatch(h.fuzzyMatch),g.getRouting()!==h.routing&&h.routing!==void 0&&g.setRouting(h.routing),g.getWorldview()!==h.worldview&&h.worldview!==void 0&&g.setWorldview(h.worldview)),i}/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */var r4=8,o4="LIVE - CORI light basemap - county labels",s4={"mapbox:type":"default","mapbox:origin":"light-v10","mapbox:autocomposite":!0,"mapbox:groups":{"1444855769305.6016":{name:"Tunnels",collapsed:!0},"1444855786460.0557":{name:"Roads",collapsed:!0},"1444855799204.86":{name:"Bridges",collapsed:!0},"1444934295202.7542":{name:"Admin boundaries",collapsed:!1}},"mapbox:sdk-support":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"},"mapbox:uiParadigm":"layers","mapbox:thumb":"data:image/webp;base64,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"},a4=[-72.26808525539167,43.37747275058169],l4=10.873762090608595,c4=0,u4=2,h4={composite:{url:"mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v8,ruralinno.2pv0vm2z,ruralinno.3v9y79ly,ruralinno.5639ssfg,ruralinno.c504wkuy,ruralinno.7stpbs93,ruralinno.cwz2k5qc,ruralinno.1joudpqe",type:"vector"}},d4="mapbox://sprites/ruralinno/cl010e7b7001p15pe3l0306hv/68n9slz9mfbus83an19oqbf32",p4="mapbox://fonts/ruralinno/{fontstack}/{range}.pbf",f4=[{id:"land",type:"background",layout:{},paint:{"background-color":"hsl(55, 0%, 100%)"}},{id:"landcover",type:"fill",source:"composite","source-layer":"landcover",maxzoom:7,layout:{},paint:{"fill-color":"hsl(0, 0%, 100%)","fill-opacity":["interpolate",["exponential",1.5],["zoom"],2,.1,7,0],"fill-antialias":!1}},{id:"national-park",type:"fill",source:"composite","source-layer":"landuse_overlay",minzoom:5,filter:["==",["get","class"],"national_park"],layout:{},paint:{"fill-color":"hsla(150, 6%, 93%, 0.63)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.5]}},{id:"landuse",type:"fill",source:"composite","source-layer":"landuse",minzoom:5,filter:["match",["get","class"],["park","airport","glacier","pitch","sand"],!0,!1],layout:{},paint:{"fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,["match",["get","class"],"glacier",.5,1]],"fill-color":"hsl(150, 0%, 100%)"}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-translate-anchor":"viewport","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-color":"hsl(185, 7%, 73%)"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":"round"},paint:{"line-color":"hsl(187, 9%, 81%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]}},{id:"water",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"#cad2d3","fill-opacity":.5}},{id:"hillshade",type:"fill",source:"composite","source-layer":"hillshade",minzoom:6,layout:{},paint:{"fill-color":["match",["get","class"],"shadow","hsl(0, 0%, 35%)","hsl(0, 0%, 100%)"],"fill-opacity":["interpolate",["linear"],["zoom"],12,["match",["get","level"],[67,56],.02,[89,78],.01,.015],15,0]}},{id:"land-structure-polygon",type:"fill",source:"composite","source-layer":"structure",minzoom:21.1,filter:["all",["==",["geometry-type"],"Polygon"],["==",["get","class"],"land"]],layout:{},paint:{"fill-color":"hsl(156, 20%, 95%)"}},{id:"land-structure-line",type:"line",source:"composite","source-layer":"structure",minzoom:13,filter:["all",["==",["geometry-type"],"LineString"],["==",["get","class"],"land"]],layout:{"line-cap":"round"},paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(156, 20%, 95%)"}},{id:"aeroway-polygon",type:"fill",source:"composite","source-layer":"aeroway",minzoom:11,filter:["all",["==",["geometry-type"],"Polygon"],["match",["get","type"],["runway","taxiway","helipad"],!0,!1]],layout:{},paint:{"fill-opacity":["interpolate",["linear"],["zoom"],11,0,11.5,1],"fill-color":"hsl(0, 0%, 97%)"}},{id:"aeroway-line",type:"line",source:"composite","source-layer":"aeroway",minzoom:9,filter:["==",["geometry-type"],"LineString"],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],9,["match",["get","type"],"runway",1,.5],18,["match",["get","type"],"runway",80,20]],"line-color":"hsl(0, 0%, 97%)"}},{id:"building-outline",type:"line",source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{},paint:{"line-color":"hsl(55, 3%, 87%)","line-width":["interpolate",["exponential",1.5],["zoom"],15,.75,20,3],"line-opacity":["interpolate",["linear"],["zoom"],15,0,16,1]}},{id:"building",type:"fill",source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{},paint:{"fill-outline-color":"hsl(55, 3%, 87%)","fill-opacity":["interpolate",["linear"],["zoom"],15,0,16,1],"fill-color":"hsl(55, 5%, 91%)"}},{id:"tunnel-street-minor-low",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(185, 7%, 88%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"tunnel-street-minor-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-opacity":["step",["zoom"],0,14,1],"line-dasharray":[3,3]}},{id:"tunnel-primary-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,["match",["get","class"],"primary",1,.75],18,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-dasharray":[3,3]}},{id:"tunnel-major-link-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-dasharray":[3,3]}},{id:"tunnel-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-dasharray":[3,3]}},{id:"tunnel-construction",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-color":"hsl(187, 7%, 88%)","line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]]}},{id:"tunnel-path",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,18,4],"line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]],"line-color":"hsl(0, 0%, 85%)"}},{id:"tunnel-steps",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 85%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"tunnel-major-link",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(187, 7%, 88%)"}},{id:"tunnel-pedestrian",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(187, 7%, 88%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"tunnel-street-minor",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(187, 7%, 88%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"tunnel-primary-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(187, 7%, 88%)"}},{id:"tunnel-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(187, 7%, 88%)"}},{id:"road-pedestrian-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,14.5],"line-color":"hsl(156, 12%, 92%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-minor-low",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"road-street-low",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"road-minor-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-street-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9.3,filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,.75,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.1,18,26]}},{id:"road-primary-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9.9,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32]}},{id:"road-major-link-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-opacity":["step",["zoom"],0,11,1]}},{id:"road-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:8.5,filter:["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-opacity":["step",["zoom"],["match",["get","class"],"motorway",1,0],6,1]}},{id:"road-construction",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","class"],"construction"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]]}},{id:"road-path",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],13,.5,14,1,15,1,18,4],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]]}},{id:"road-steps",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"road-major-link",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"road-pedestrian",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"road-minor",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-street",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.1,18,22],"line-color":"hsl(0, 0%, 100%)"}},{id:"road-primary",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"#f6eac1","line-opacity":["interpolate",["linear"],["zoom"],6,0,8,["match",["get","class"],["trunk"],.2,0],16,["match",["get","class"],["trunk"],1,.81]]}},{id:"road-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:8,filter:["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.5,18,32],"line-color":["match",["get","class"],["motorway"],"hsl(26, 100%, 68%)","#f2d163"],"line-opacity":["interpolate",["linear"],["zoom"],6,["match",["get","class"],["trunk"],.3,0],8,.4,18,.7]}},{id:"road-rail",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-pedestrian-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,14.5],"line-opacity":["step",["zoom"],0,14,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-street-minor-low",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"bridge-street-minor-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-opacity":["step",["zoom"],0,14,1],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-primary-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,["match",["get","class"],"primary",1,.75],18,2],"line-opacity":["step",["zoom"],0,10,1],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-major-link-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-construction",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]],"line-color":"hsl(156, 0%, 100%)"}},{id:"bridge-path",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,18,4],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]]}},{id:"bridge-steps",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"bridge-major-link",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-pedestrian",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"bridge-street-minor",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"bridge-primary-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-rail",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-major-link-2-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18]}},{id:"bridge-motorway-trunk-2-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32]}},{id:"bridge-major-link-2",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-motorway-trunk-2",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(0, 0%, 100%)"}},{id:"admin-1-boundary-bg",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"bevel"},paint:{"line-blur":["interpolate",["linear"],["zoom"],3,0,8,3],"line-width":["interpolate",["linear"],["zoom"],7,3.75,12,5.5],"line-opacity":["interpolate",["linear"],["zoom"],7,0,8,.75],"line-dasharray":[1,0],"line-translate":[0,0],"line-color":"hsl(0, 0%, 84%)"}},{id:"admin-0-boundary-bg",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],paint:{"line-width":["interpolate",["linear"],["zoom"],3,3.5,10,8],"line-color":"hsl(0, 0%, 84%)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-translate":[0,0],"line-blur":["interpolate",["linear"],["zoom"],3,0,10,2]}},{id:"admin-1-boundary",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-width":["interpolate",["linear"],["zoom"],7,.75,12,1.5],"line-opacity":["interpolate",["linear"],["zoom"],2,0,3,1],"line-color":["interpolate",["linear"],["zoom"],3,"hsl(0, 0%, 80%)",7,"hsl(0, 0%, 70%)"]}},{id:"admin-0-boundary",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"hsl(0, 0%, 62%)","line-width":["interpolate",["linear"],["zoom"],3,.5,10,2]}},{id:"admin-0-boundary-disputed",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round"},paint:{"line-dasharray":[1.5,1.5],"line-color":"hsl(0, 0%, 62%)","line-width":["interpolate",["linear"],["zoom"],3,.5,10,2]}},{id:"county_border",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"attr_county_labels_pg-155yvu",minzoom:6,maxzoom:12,paint:{"line-width":["interpolate",["linear"],["zoom"],5,.5,9,1.7,18,2],"line-color":"hsl(0, 0%, 59%)","line-opacity":["interpolate",["linear"],["zoom"],5,.2,9,.5,18,1]}},{id:"cousub_border",type:"line",source:"composite","source-layer":"attr_cousub_labels_less_pl-9lemol",minzoom:8,maxzoom:14,layout:{},paint:{"line-color":"hsl(0, 3%, 38%)","line-width":["interpolate",["linear"],["zoom"],0,1,6,1,22,1],"line-opacity":["interpolate",["linear"],["zoom"],7,.1,18,.2]}},{id:"place_border",type:"line",source:"composite","source-layer":"attr_place_labels_less_pl-0n1bxr",minzoom:8,maxzoom:14,paint:{"line-color":"hsla(0, 0%, 58%, 0.62)","line-dasharray":[3,2]}},{id:"road-label",type:"symbol",source:"composite","source-layer":"road",minzoom:10,filter:["step",["zoom"],["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],!0,!1],12,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary","pedestrian","street","street_limited"],!0,!1],15,["match",["get","class"],["ferry","golf","path"],!1,!0]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],10,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","pedestrian","street","street_limited"],9,6.5],18,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],16,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","pedestrian","street","street_limited"],14,13]],"text-max-angle":30,"text-font":["DIN Offc Pro Regular","Arial Unicode MS Regular"],"symbol-placement":"line","text-padding":1,"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-color":"hsl(0, 0%, 42%)","text-halo-color":["match",["get","class"],["motorway","trunk"],"hsla(0, 0%, 100%, 0.75)","hsl(0, 0%, 100%)"],"text-halo-blur":1,"text-halo-width":.1}},{id:"waterway-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:13,filter:["all",["match",["get","class"],["canal","river","stream"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,16],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"natural-line-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["glacier","landform"],!0,!1],["==",["geometry-type"],"LineString"],["<=",["get","filterrank"],1]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},paint:{"text-halo-width":.5,"text-halo-color":"hsl(0, 0%, 100%)","text-halo-blur":.5,"text-color":"hsl(0, 0%, 42%)"}},{id:"natural-point-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland"],!0,!1],["==",["geometry-type"],"Point"],["<=",["get","filterrank"],1]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"text-offset":["literal",[0,0]]},paint:{"text-color":"hsl(0, 0%, 42%)","text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":.5,"text-halo-blur":.5}},{id:"water-line-label",type:"symbol",source:"composite","source-layer":"natural_label",filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"text-size":["interpolate",["linear"],["zoom"],7,["step",["get","sizerank"],24,6,18,12,12],10,["step",["get","sizerank"],18,9,12],18,["step",["get","sizerank"],18,9,16]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"water-point-label",type:"symbol",source:"composite","source-layer":"natural_label",filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water"],!0,!1],["==",["geometry-type"],"Point"]],layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],7,["step",["get","sizerank"],24,6,18,12,12],10,["step",["get","sizerank"],18,9,12]],"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"poi-label",type:"symbol",source:"composite","source-layer":"poi_label",minzoom:6,filter:["<=",["get","filterrank"],1],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":.1,"text-halo-blur":.5,"text-color":["step",["zoom"],["step",["get","sizerank"],"hsl(0, 0%, 66%)",5,"hsl(230, 0%, 56%)"],17,["step",["get","sizerank"],"hsl(0, 0%, 66%)",13,"hsl(0, 0%, 56%)"]]}},{id:"airport-label",type:"symbol",source:"composite","source-layer":"airport_label",minzoom:8,layout:{"text-line-height":1.1,"text-size":["step",["get","sizerank"],18,9,12],"icon-image":["step",["get","sizerank"],["concat",["get","maki"],"-15"],9,["concat",["get","maki"],"-11"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,.75],"text-rotation-alignment":"viewport","text-anchor":"top","text-field":["step",["get","sizerank"],["coalesce",["get","name_en"],["get","name"]],15,["get","ref"]],"text-letter-spacing":.01,"text-max-width":9},paint:{"text-color":"hsla(0, 0%, 42%, 0)","text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":1,"text-opacity":0}},{id:"settlement-subdivision-label",type:"symbol",source:"composite","source-layer":"place_label",minzoom:10,maxzoom:15,filter:["all",["==",["get","class"],"settlement_subdivision"],["<=",["get","filterrank"],4]],layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Offc Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.1],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",17,16]],visibility:"none"},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-color":"hsl(0, 0%, 62%)","text-halo-blur":.5,"text-halo-width":.1}},{id:"state-label",type:"symbol",source:"composite","source-layer":"place_label",minzoom:3,maxzoom:9,filter:["==",["get","class"],"state"],layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],10,6,9.5,7,9],9,["step",["get","symbolrank"],24,6,18,7,14]],"text-transform":"uppercase","text-font":["DIN Offc Pro Bold","Arial Unicode MS Bold"],"text-field":["step",["zoom"],["step",["get","symbolrank"],["coalesce",["get","name_en"],["get","name"]],5,["coalesce",["get","abbr"],["get","name_en"],["get","name"]]],5,["coalesce",["get","name_en"],["get","name"]]],"text-letter-spacing":.15,"text-max-width":6},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-color":"hsl(0, 0%, 66%)","text-halo-width":.1}},{id:"county_label",type:"symbol",source:"composite","source-layer":"attr_county_labels-5i5o0f",minzoom:7.5,maxzoom:14,layout:{"text-field":["step",["zoom"],["upcase",["to-string",["get","name"]]],6,["upcase",["to-string",["get","name"]]],10,["upcase",["to-string",["get","namelsad"]]],22,["upcase",["to-string",["get","namelsad"]]]],"text-font":["step",["zoom"],["literal",["Open Sans Regular","Arial Unicode MS Regular"]],6,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],8,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],11,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],22,["literal",["Montserrat Medium","Arial Unicode MS Regular"]]],"text-size":["interpolate",["linear"],["zoom"],0,0,6,6,6.5,10,7.5,14,9,30,11,75,14,85],"text-allow-overlap":["step",["zoom"],!1,5,!1,10,!1,11,!0],"text-max-width":5,"text-ignore-placement":["step",["zoom"],!1,6,!1,9,!0,12,!0,22,!0]},paint:{"text-color":"hsl(0, 0%, 48%)","text-opacity":["interpolate",["linear"],["zoom"],6.49999,1,6.5,.7,8,.3,11,.1,16,.05]}},{id:"cousub_label",type:"symbol",source:"composite","source-layer":"attr_cousub_labels_plus_pt-0kx5lj",minzoom:9,layout:{"text-field":["upcase",["get","display_name"]],"text-size":["interpolate",["linear"],["zoom"],7.9,0,8,8,9,10,14,30],"text-max-width":5,"text-line-height":1.1,visibility:"none"},paint:{"text-color":"hsla(0, 0%, 31%, 0.76)","text-halo-width":10,"text-halo-color":"hsl(0, 0%, 100%)"}},{id:"place-label new",type:"symbol",source:"composite","source-layer":"rural_places-4rf4i9",minzoom:9,filter:["match",["get","census_boundary_year"],[2020],!0,!1],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],12,9,11,10,10.5,12,9.5,14,8.5,16,6.5,17,4],15,["step",["get","symbolrank"],28,9,26,10,23,11,21,12,20,13,19,15,17]],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["Montserrat Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","NAME"]],"text-max-width":7},paint:{"text-color":["step",["get","symbolrank"],"hsl(0, 2%, 61%)",11,"hsl(0, 1%, 68%)",16,"hsl(0, 1%, 75%)"],"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1}},{id:"settlement-label",type:"symbol",source:"composite","source-layer":"place_label",maxzoom:10.76,filter:["all",["<=",["get","filterrank"],3],["==",["get","class"],"settlement"],["step",["zoom"],!0,12,[">=",["get","symbolrank"],11],13,[">=",["get","symbolrank"],12]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],12,9,11,10,10.5,12,9.5,14,8.5,16,6.5,17,4],15,["step",["get","symbolrank"],28,9,26,10,23,11,21,12,20,13,19,15,17]],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["step",["zoom"],["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]],8,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],11,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],10,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],12,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],11,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],13,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],12,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],15,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],13,["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]]],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],"text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},paint:{"text-color":["step",["get","symbolrank"],"hsl(0, 0%, 42%)",11,"hsl(0, 0%, 55%)",16,"hsl(0, 0%, 62%)"],"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1}},{id:"wwb2s-places_lat_lon",type:"symbol",source:"composite","source-layer":"places_lat_lon-awryh9",minzoom:10.75,maxzoom:20,filter:["all",[">=",["get","pop"],101],[">",["get","pct_rural"],0],["step",["zoom"],!0,13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],13]]],layout:{"text-line-height":1.1,"text-size":["step",["get","symbolrank"],20,9,18,10,16,11,14,12,12],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["step",["zoom"],["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]],8,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],11,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],10,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],12,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],11,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],13,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],12,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],15,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],13,["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]]],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],"text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","NAME"],["get","name"]],"text-max-width":7},paint:{"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1,"text-color":["interpolate",["linear"],["zoom"],0,"hsl(0, 0%, 62%)",22,"#000000"],"text-opacity":["interpolate",["linear"],["zoom"],7,0,9,.97,22,1]}},{id:"custom-pattern",type:"fill",source:"composite","source-layer":"attr_county_labels_pg-155yvu",minzoom:6,layout:{visibility:"none"},paint:{"fill-color":"hsla(303, 73%, 74%, 0.66)","fill-pattern":"stripe-4"}}],m4="2022-02-24T13:16:14.872Z",g4="2024-07-11T16:18:50.102Z",_4="cl010e7b7001p15pe3l0306hv",y4="ruralinno",v4="private",x4=!1,w4={version:r4,name:o4,metadata:s4,center:a4,zoom:l4,bearing:c4,pitch:u4,sources:h4,sprite:d4,glyphs:p4,layers:f4,created:m4,modified:g4,id:_4,owner:y4,visibility:v4,protected:!1,draft:x4};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */Object.assign({},w4);var KA={exports:{}};(function(t,i){(function(l,h){t.exports=h()})(Co,function(){var l,h,g;function x(s,M){if(!l)l=M;else if(!h)h=M;else{var F="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+l+")(sharedChunk); ("+h+")(sharedChunk); self.onerror = null;",q={};l(q),g=M(q),typeof window<"u"&&window&&window.URL&&window.URL.createObjectURL&&(g.workerUrl=window.URL.createObjectURL(new Blob([F],{type:"text/javascript"})))}}x(["exports"],function(s){var M=typeof self<"u"?self:{},F="2.15.0";let q;const X={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(q==null){const n=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{q={}.API_URL_REGEX!=null?new RegExp({}.API_URL_REGEX):n}catch{q=n}}return q},get API_TILEJSON_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return/^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){if(!X.API_URL)return null;try{const n=new URL(X.API_URL);return n.hostname==="api.mapbox.cn"?"https://events.mapbox.cn/events/v2":n.hostname==="api.mapbox.com"?"https://events.mapbox.com/events/v2":null}catch{return null}},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},oe={supported:!1,testSupport:function(n){!ke&&fe&&(ze?ue(n):Ae=n)}};let Ae,fe,ke=!1,ze=!1;function ue(n){const e=n.createTexture();n.bindTexture(n.TEXTURE_2D,e);try{if(n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,fe),n.isContextLost())return;oe.supported=!0}catch{}n.deleteTexture(e),ke=!0}M.document&&(fe=M.document.createElement("img"),fe.onload=function(){Ae&&ue(Ae),Ae=null,ze=!0},fe.onerror=function(){ke=!0,Ae=null},fe.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const re="01";function le(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var De=je;function je(n,e,r,a){this.cx=3*n,this.bx=3*(r-n)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(a-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=n,this.p1y=e,this.p2x=r,this.p2y=a}je.prototype={sampleCurveX:function(n){return((this.ax*n+this.bx)*n+this.cx)*n},sampleCurveY:function(n){return((this.ay*n+this.by)*n+this.cy)*n},sampleCurveDerivativeX:function(n){return(3*this.ax*n+2*this.bx)*n+this.cx},solveCurveX:function(n,e){if(e===void 0&&(e=1e-6),n<0)return 0;if(n>1)return 1;for(var r=n,a=0;a<8;a++){var u=this.sampleCurveX(r)-n;if(Math.abs(u)u?m=r:y=r,r=.5*(y-m)+m;return r},solve:function(n,e){return this.sampleCurveY(this.solveCurveX(n,e))}};var tt=le(De),lt=ut;function ut(n,e){this.x=n,this.y=e}ut.prototype={clone:function(){return new ut(this.x,this.y)},add:function(n){return this.clone()._add(n)},sub:function(n){return this.clone()._sub(n)},multByPoint:function(n){return this.clone()._multByPoint(n)},divByPoint:function(n){return this.clone()._divByPoint(n)},mult:function(n){return this.clone()._mult(n)},div:function(n){return this.clone()._div(n)},rotate:function(n){return this.clone()._rotate(n)},rotateAround:function(n,e){return this.clone()._rotateAround(n,e)},matMult:function(n){return this.clone()._matMult(n)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(n){return this.x===n.x&&this.y===n.y},dist:function(n){return Math.sqrt(this.distSqr(n))},distSqr:function(n){var e=n.x-this.x,r=n.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(n){return Math.atan2(this.y-n.y,this.x-n.x)},angleWith:function(n){return this.angleWithSep(n.x,n.y)},angleWithSep:function(n,e){return Math.atan2(this.x*e-this.y*n,this.x*n+this.y*e)},_matMult:function(n){var e=n[2]*this.x+n[3]*this.y;return this.x=n[0]*this.x+n[1]*this.y,this.y=e,this},_add:function(n){return this.x+=n.x,this.y+=n.y,this},_sub:function(n){return this.x-=n.x,this.y-=n.y,this},_mult:function(n){return this.x*=n,this.y*=n,this},_div:function(n){return this.x/=n,this.y/=n,this},_multByPoint:function(n){return this.x*=n.x,this.y*=n.y,this},_divByPoint:function(n){return this.x/=n.x,this.y/=n.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var n=this.y;return this.y=this.x,this.x=-n,this},_rotate:function(n){var e=Math.cos(n),r=Math.sin(n),a=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=a,this},_rotateAround:function(n,e){var r=Math.cos(n),a=Math.sin(n),u=e.y+a*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-a*(this.y-e.y),this.y=u,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},ut.convert=function(n){return n instanceof ut?n:Array.isArray(n)?new ut(n[0],n[1]):n};var Ve=le(lt);const jt=Math.PI/180,di=180/Math.PI;function St(n){return n*jt}function Vt(n){return n*di}const zi=[[0,0],[1,0],[1,1],[0,1]];function Li(n){if(n<=0)return 0;if(n>=1)return 1;const e=n*n,r=e*n;return 4*(n<.5?r:3*(n-e)+r-.75)}function wr(n,e,r,a){const u=new tt(n,e,r,a);return function(p){return u.solve(p)}}const Or=wr(.25,.1,.25,1);function Ke(n,e,r){return Math.min(r,Math.max(e,n))}function Tt(n,e,r){return(r=Ke((r-n)/(e-n),0,1))*r*(3-2*r)}function xt(n,e,r){const a=r-e,u=((n-e)%a+a)%a+e;return u===e?r:u}function Bt(n,e,r){if(!n.length)return r(null,[]);let a=n.length;const u=new Array(n.length);let p=null;n.forEach((m,y)=>{e(m,(w,b)=>{w&&(p=w),u[y]=b,--a==0&&r(p,u)})})}function dn(n){const e=[];for(const r in n)e.push(n[r]);return e}function _n(n,...e){for(const r of e)for(const a in r)n[a]=r[a];return n}let ei=1;function Wi(){return ei++}function ti(){return function n(e){return e?(e^Math.random()*(16>>e/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,n)}()}function pi(n){return n<=1?1:Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function rs(n){return!!n&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(n)}function Br(n,e){n.forEach(r=>{e[r]&&(e[r]=e[r].bind(e))})}function yn(n,e){return n.indexOf(e,n.length-e.length)!==-1}function Mt(n,e,r){const a={};for(const u in n)a[u]=e.call(r||this,n[u],u,n);return a}function Ro(n,e,r){const a={};for(const u in n)e.call(r||this,n[u],u,n)&&(a[u]=n[u]);return a}function Ai(n){return Array.isArray(n)?n.map(Ai):typeof n=="object"&&n?Mt(n,Ai):n}const Do={};function vn(n){Do[n]||(typeof console<"u"&&console.warn(n),Do[n]=!0)}function nr(n,e,r){return(r.y-n.y)*(e.x-n.x)>(e.y-n.y)*(r.x-n.x)}function tc(n){let e=0;for(let r,a,u=0,p=n.length,m=p-1;u@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(r,a,u,p)=>{const m=u||p;return e[a]=!m||m.toLowerCase(),""}),e["max-age"]){const r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}let qa=null;function Us(n){if(qa==null){const e=n.navigator?n.navigator.userAgent:null;qa=!!n.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return qa}function Za(n){try{const e=M[n];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch{return!1}}function Oo(n,e){return[n[4*e],n[4*e+1],n[4*e+2],n[4*e+3]]}const js="mapbox-tiles";let nc=500,ic=50,ir,Bo;function Wa(){try{return M.caches}catch{}}function os(){Wa()&&!ir&&(ir=M.caches.open(js))}function Vs(n){const e=n.indexOf("?");if(e<0)return n;const r=function(u){const p=u.indexOf("?");return p>0?u.slice(p+1).split("&"):[]}(n),a=r.filter(u=>{const p=u.split("=");return p[0]==="language"||p[0]==="worldview"});return a.length?`${n.slice(0,e)}?${a.join("&")}`:n.slice(0,e)}let Ha=1/0;const ss={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(ss);class Fo extends Error{constructor(e,r,a){r===401&&xe(a)&&(e+=": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes"),super(e),this.status=r,this.url=a}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}const as=to()?()=>self.worker&&self.worker.referrer:()=>(M.location.protocol==="blob:"?M.parent:M).location.href,ls=function(n,e){if(!(/^file:/.test(r=n.url)||/^file:/.test(as())&&!/^\w+:/.test(r))){if(M.fetch&&M.Request&&M.AbortController&&M.Request.prototype.hasOwnProperty("signal"))return function(a,u){const p=new M.AbortController,m=new M.Request(a.url,{method:a.method||"GET",body:a.body,credentials:a.credentials,headers:a.headers,referrer:as(),referrerPolicy:a.referrerPolicy,signal:p.signal});let y=!1,w=!1;const b=(A=m.url).indexOf("sku=")>0&&xe(A);var A;a.type==="json"&&m.headers.set("Accept","application/json");const I=(L,R,B)=>{if(w)return;if(L&&L.message!=="SecurityError"&&vn(L.toString()),R&&B)return k(R);const V=Date.now();M.fetch(m).then(K=>{if(K.ok){const ie=b?K.clone():null;return k(K,ie,V)}return u(new Fo(K.statusText,K.status,a.url))}).catch(K=>{K.name!=="AbortError"&&u(new Error(`${K.message} ${a.url}`))})},k=(L,R,B)=>{(a.type==="arrayBuffer"?L.arrayBuffer():a.type==="json"?L.json():L.text()).then(V=>{w||(R&&B&&function(K,ie,Y){if(os(),!ir)return;const te={status:ie.status,statusText:ie.statusText,headers:new M.Headers};ie.headers.forEach((Se,be)=>te.headers.set(be,Se));const ae=Hi(ie.headers.get("Cache-Control")||"");if(ae["no-store"])return;ae["max-age"]&&te.headers.set("Expires",new Date(Y+1e3*ae["max-age"]).toUTCString());const se=te.headers.get("Expires");se&&(new Date(se).getTime()-Y<42e4||function(Se,be){if(Bo===void 0)try{new Response(new ReadableStream),Bo=!0}catch{Bo=!1}Bo?be(Se.body):Se.blob().then(be)}(ie,Se=>{const be=new M.Response(Se,te);os(),ir&&ir.then(Re=>Re.put(Vs(K.url),be)).catch(Re=>vn(Re.message))}))}(m,R,B),y=!0,u(null,V,L.headers.get("Cache-Control"),L.headers.get("Expires")))}).catch(V=>{w||u(new Error(V.message))})};return b?function(L,R){if(os(),!ir)return R(null);const B=Vs(L.url);ir.then(V=>{V.match(B).then(K=>{const ie=function(Y){if(!Y)return!1;const te=new Date(Y.headers.get("Expires")||0),ae=Hi(Y.headers.get("Cache-Control")||"");return te>Date.now()&&!ae["no-cache"]}(K);V.delete(B),ie&&V.put(B,K.clone()),R(null,K,ie)}).catch(R)}).catch(R)}(m,I):I(null,null),{cancel:()=>{w=!0,y||p.abort()}}}(n,e);if(to()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",n,e,void 0,!0)}var r;return function(a,u){const p=new M.XMLHttpRequest;p.open(a.method||"GET",a.url,!0),a.type==="arrayBuffer"&&(p.responseType="arraybuffer");for(const m in a.headers)p.setRequestHeader(m,a.headers[m]);return a.type==="json"&&(p.responseType="text",p.setRequestHeader("Accept","application/json")),p.withCredentials=a.credentials==="include",p.onerror=()=>{u(new Error(p.statusText))},p.onload=()=>{if((p.status>=200&&p.status<300||p.status===0)&&p.response!==null){let m=p.response;if(a.type==="json")try{m=JSON.parse(p.response)}catch(y){return u(y)}u(null,m,p.getResponseHeader("Cache-Control"),p.getResponseHeader("Expires"))}else u(new Fo(p.statusText,p.status,a.url))},p.send(a.body),{cancel:()=>p.abort()}}(n,e)},Gs=function(n,e){return ls(_n(n,{type:"arrayBuffer"}),e)};function rc(n){const e=M.document.createElement("a");return e.href=n,e.protocol===M.document.location.protocol&&e.host===M.document.location.host}const ne="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";let N,U;N=[],U=0;const ee=function(n,e){if(oe.supported&&(n.headers||(n.headers={}),n.headers.accept="image/webp,*/*"),U>=X.MAX_PARALLEL_IMAGE_REQUESTS){const p={requestParameters:n,callback:e,cancelled:!1,cancel(){this.cancelled=!0}};return N.push(p),p}U++;let r=!1;const a=()=>{if(!r)for(r=!0,U--;N.length&&U{a(),p?e(p):m&&(M.createImageBitmap?function(b,A){const I=new M.Blob([new Uint8Array(b)],{type:"image/png"});M.createImageBitmap(I).then(k=>{A(null,k)}).catch(k=>{A(new Error(`Could not load image because of ${k.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(m,(b,A)=>e(b,A,y,w)):function(b,A){const I=new M.Image,k=M.URL;I.onload=()=>{A(null,I),k.revokeObjectURL(I.src),I.onload=null,M.requestAnimationFrame(()=>{I.src=ne})},I.onerror=()=>A(new 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."));const L=new M.Blob([new Uint8Array(b)],{type:"image/png"});I.src=b.byteLength?k.createObjectURL(L):ne}(m,(b,A)=>e(b,A,y,w)))});return{cancel:()=>{u.cancel(),a()}}},ce="NO_ACCESS_TOKEN";function ge(n){return n.indexOf("mapbox:")===0}function xe(n){return X.API_URL_REGEX.test(n)}function ve(n){return X.API_CDN_URL_REGEX.test(n)}function me(n){return X.API_STYLE_REGEX.test(n)&&!Me(n)}function Me(n){return X.API_SPRITE_REGEX.test(n)}const et=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function nt(n){const e=n.match(et);if(!e)throw new Error("Unable to parse URL object");return{protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function Ye(n){const e=n.params.length?`?${n.params.join("&")}`:"";return`${n.protocol}://${n.authority}${n.path}${e}`}const kt="mapbox.eventData";function Rt(n){if(!n)return null;const e=n.split(".");if(!e||e.length!==3)return null;try{return JSON.parse(decodeURIComponent(M.atob(e[1]).split("").map(r=>"%"+("00"+r.charCodeAt(0).toString(16)).slice(-2)).join("")))}catch{return null}}class Pt{constructor(e){this.type=e,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(e){const r=Rt(X.ACCESS_TOKEN);let a="";return a=r&&r.u?M.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,(u,p)=>String.fromCharCode(+("0x"+p)))):X.ACCESS_TOKEN||"",e?`${kt}.${e}:${a}`:`${kt}:${a}`}fetchEventData(){const e=Za("localStorage"),r=this.getStorageKey(),a=this.getStorageKey("uuid");if(e)try{const u=M.localStorage.getItem(r);u&&(this.eventData=JSON.parse(u));const p=M.localStorage.getItem(a);p&&(this.anonId=p)}catch{vn("Unable to read from LocalStorage")}}saveEventData(){const e=Za("localStorage"),r=this.getStorageKey(),a=this.getStorageKey("uuid");if(e)try{M.localStorage.setItem(a,this.anonId),Object.keys(this.eventData).length>=1&&M.localStorage.setItem(r,JSON.stringify(this.eventData))}catch{vn("Unable to write to LocalStorage")}}processRequests(e){}postEvent(e,r,a,u){if(!X.EVENTS_URL)return;const p=nt(X.EVENTS_URL);p.params.push(`access_token=${u||X.ACCESS_TOKEN||""}`);const m={event:this.type,created:new Date(e).toISOString()},y=r?_n(m,r):m,w={url:Ye(p),headers:{"Content-Type":"text/plain"},body:JSON.stringify([y])};this.pendingRequest=function(b,A){return ls(_n(b,{method:"POST"}),A)}(w,b=>{this.pendingRequest=null,a(b),this.saveEventData(),this.processRequests(u)})}queueRequest(e,r){this.queue.push(e),this.processRequests(r)}}const Dt=new class extends Pt{constructor(n){super("appUserTurnstile"),this._customAccessToken=n}postTurnstileEvent(n,e){X.EVENTS_URL&&X.ACCESS_TOKEN&&Array.isArray(n)&&n.some(r=>ge(r)||xe(r))&&this.queueRequest(Date.now(),e)}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const e=Rt(X.ACCESS_TOKEN),r=e?e.u:X.ACCESS_TOKEN;let a=r!==this.eventData.tokenU;rs(this.anonId)||(this.anonId=ti(),a=!0);const u=this.queue.shift();if(this.eventData.lastSuccess){const p=new Date(this.eventData.lastSuccess),m=new Date(u),y=(u-this.eventData.lastSuccess)/864e5;a=a||y>=1||y<-1||p.getDate()!==m.getDate()}else a=!0;a?this.postEvent(u,{sdkIdentifier:"mapbox-gl-js",sdkVersion:F,skuId:re,"enabled.telemetry":!1,userId:this.anonId},p=>{p||(this.eventData.lastSuccess=u,this.eventData.tokenU=r)},n):this.processRequests()}},$t=Dt.postTurnstileEvent.bind(Dt),An=new class extends Pt{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(n,e,r,a){this.skuToken=e,this.errorCb=a,X.EVENTS_URL&&(r||X.ACCESS_TOKEN?this.queueRequest({id:n,timestamp:Date.now()},r):this.errorCb(new Error(ce)))}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||(this.anonId||this.fetchEventData(),rs(this.anonId)||(this.anonId=ti()),this.postEvent(r,{sdkIdentifier:"mapbox-gl-js",sdkVersion:F,skuId:re,skuToken:this.skuToken,userId:this.anonId},a=>{a?this.errorCb(a):e&&(this.success[e]=!0)},n))}},Fn=An.postMapLoadEvent.bind(An),vi=new class extends Pt{constructor(){super("gljs.performance")}postPerformanceEvent(n,e){X.EVENTS_URL&&(n||X.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:e},n)}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{timestamp:e,performanceData:r}=this.queue.shift(),a=function(u){const p=M.performance.getEntriesByType("resource"),m=M.performance.getEntriesByType("mark"),y=function(k){const L={};if(k){for(const R in k)if(R!=="other")for(const B of k[R]){const V=`${R}ResolveRangeMin`,K=`${R}ResolveRangeMax`,ie=`${R}RequestCount`,Y=`${R}RequestCachedCount`;L[V]=Math.min(L[V]||1/0,B.startTime),L[K]=Math.max(L[K]||-1/0,B.responseEnd);const te=ae=>{L[ae]===void 0&&(L[ae]=0),++L[ae]};B.transferSize!==void 0&&B.transferSize===0&&te(Y),te(ie)}}return L}(function(k,L){const R={};if(k)for(const B of k){const V=L(B);R[V]===void 0&&(R[V]=[]),R[V].push(B)}return R}(p,_p)),w=M.devicePixelRatio,b=M.navigator.connection||M.navigator.mozConnection||M.navigator.webkitConnection,A={counters:[],metadata:[],attributes:[]},I=(k,L,R)=>{R!=null&&k.push({name:L,value:R.toString()})};for(const k in y)I(A.counters,k,y[k]);if(u.interactionRange[0]!==1/0&&u.interactionRange[1]!==-1/0&&(I(A.counters,"interactionRangeMin",u.interactionRange[0]),I(A.counters,"interactionRangeMax",u.interactionRange[1])),m)for(const k of Object.keys($s)){const L=$s[k],R=m.find(B=>B.name===L);R&&I(A.counters,L,R.startTime)}return I(A.counters,"visibilityHidden",u.visibilityHidden),I(A.attributes,"style",function(k){if(k)for(const L of k){const R=L.name.split("?")[0];if(me(R)){const B=R.split("/").slice(-2);if(B.length===2)return`mapbox://styles/${B[0]}/${B[1]}`}}}(p)),I(A.attributes,"terrainEnabled",u.terrainEnabled?"true":"false"),I(A.attributes,"fogEnabled",u.fogEnabled?"true":"false"),I(A.attributes,"projection",u.projection),I(A.attributes,"zoom",u.zoom),I(A.metadata,"devicePixelRatio",w),I(A.metadata,"connectionEffectiveType",b?b.effectiveType:void 0),I(A.metadata,"navigatorUserAgent",M.navigator.userAgent),I(A.metadata,"screenWidth",M.screen.width),I(A.metadata,"screenHeight",M.screen.height),I(A.metadata,"windowWidth",M.innerWidth),I(A.metadata,"windowHeight",M.innerHeight),I(A.metadata,"mapWidth",u.width/w),I(A.metadata,"mapHeight",u.height/w),I(A.metadata,"webglRenderer",u.renderer),I(A.metadata,"webglVendor",u.vendor),I(A.metadata,"sdkVersion",F),I(A.metadata,"sdkIdentifier","mapbox-gl-js"),A}(r);for(const u of a.metadata);for(const u of a.counters);for(const u of a.attributes);this.postEvent(e,a,()=>{},n)}},Yn=vi.postPerformanceEvent.bind(vi),Fr=new class extends Pt{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(n,e,r,a){if(!X.API_URL||!X.SESSION_PATH)return;const u=nt(X.API_URL+X.SESSION_PATH);u.params.push(`sku=${e||""}`),u.params.push(`access_token=${a||X.ACCESS_TOKEN||""}`);const p={url:Ye(u),headers:{"Content-Type":"text/plain"}};this.pendingRequest=function(m,y){return ls(_n(m,{method:"GET"}),y)}(p,m=>{this.pendingRequest=null,r(m),this.saveEventData(),this.processRequests(a)})}getSessionAPI(n,e,r,a){this.skuToken=e,this.errorCb=a,X.SESSION_PATH&&X.API_URL&&(r||X.ACCESS_TOKEN?this.queueRequest({id:n,timestamp:Date.now()},r):this.errorCb(new Error(ce)))}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||this.getSession(r,this.skuToken,a=>{a?this.errorCb(a):e&&(this.success[e]=!0)},n)}},ii=Fr.getSessionAPI.bind(Fr),Ci=new Set,$s={create:"create",load:"load",fullLoad:"fullLoad"},Bg={mark(n){M.performance.mark(n)},measure(n,e,r){M.performance.measure(n,e,r)}};function _p(n){const e=n.name.split("?")[0];return ve(e)&&e.includes("mapbox-gl.js")?"javascript":ve(e)&&e.includes("mapbox-gl.css")?"css":function(r){return X.API_FONTS_REGEX.test(r)}(e)?"fontRange":Me(e)?"sprite":me(e)?"style":function(r){return X.API_TILEJSON_REGEX.test(r)}(e)?"tilejson":"other"}const Jt=M.performance;function ju(n){const e=n?n.url.toString():void 0;return Jt.getEntriesByName(e)}let Xa,Vu,oc,Nr;const no={now:()=>oc!==void 0?oc:M.performance.now(),setNow(n){oc=n},restoreNow(){oc=void 0},frame(n){const e=M.requestAnimationFrame(n);return{cancel:()=>M.cancelAnimationFrame(e)}},getImageData(n,e=0){const{width:r,height:a}=n;Nr||(Nr=M.document.createElement("canvas"));const u=Nr.getContext("2d",{willReadFrequently:!0});if(!u)throw new Error("failed to create canvas 2d context");return(r>Nr.width||a>Nr.height)&&(Nr.width=r,Nr.height=a),u.clearRect(-e,-e,r+2*e,a+2*e),u.drawImage(n,0,0,r,a),u.getImageData(-e,-e,r+2*e,a+2*e)},resolveURL:n=>(Xa||(Xa=M.document.createElement("a")),Xa.href=n,Xa.href),get devicePixelRatio(){return M.devicePixelRatio},get prefersReducedMotion(){return!!M.matchMedia&&(Vu==null&&(Vu=M.matchMedia("(prefers-reduced-motion: reduce)")),Vu.matches)}};function Gu(n,e,r){r[n]&&r[n].indexOf(e)!==-1||(r[n]=r[n]||[],r[n].push(e))}function $u(n,e,r){if(r&&r[n]){const a=r[n].indexOf(e);a!==-1&&r[n].splice(a,1)}}class cs{constructor(e,r={}){_n(this,r),this.type=e}}class io extends cs{constructor(e,r={}){super("error",_n({error:e},r))}}class Ka{on(e,r){return this._listeners=this._listeners||{},Gu(e,r,this._listeners),this}off(e,r){return $u(e,r,this._listeners),$u(e,r,this._oneTimeListeners),this}once(e,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},Gu(e,r,this._oneTimeListeners),this):new Promise(a=>this.once(e,a))}fire(e,r){typeof e=="string"&&(e=new cs(e,r||{}));const a=e.type;if(this.listens(a)){e.target=this;const u=this._listeners&&this._listeners[a]?this._listeners[a].slice():[];for(const y of u)y.call(this,e);const p=this._oneTimeListeners&&this._oneTimeListeners[a]?this._oneTimeListeners[a].slice():[];for(const y of p)$u(a,y,this._oneTimeListeners),y.call(this,e);const m=this._eventedParent;m&&(_n(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),m.fire(e))}else e instanceof io&&console.error(e.error);return this}listens(e){return!!(this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e))}setEventedParent(e,r){return this._eventedParent=e,this._eventedParentData=r,this}}var Le=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["fill-extrusion-edge-radius"]},"fill-extrusion-rounded-roof":{"type":"boolean","default":true,"requires":["fill-extrusion-edge-radius"],"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-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":false,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');function ro(n,...e){for(const r of e)for(const a in r)n[a]=r[a];return n}function Nn(n){return n instanceof Number||n instanceof String||n instanceof Boolean?n.valueOf():n}function ri(n){if(Array.isArray(n))return n.map(ri);if(n instanceof Object&&!(n instanceof Number||n instanceof String||n instanceof Boolean)){const e={};for(const r in n)e[r]=ri(n[r]);return e}return Nn(n)}class yp extends Error{constructor(e,r){super(r),this.message=r,this.key=e}}var Ur=yp;class qu{constructor(e,r=[]){this.parent=e,this.bindings={};for(const[a,u]of r)this.bindings[a]=u}concat(e){return new qu(this,e)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw new Error(`${e} not found in scope.`)}has(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}var vp=qu;const qs={kind:"null"},at={kind:"number"},Gt={kind:"string"},Ft={kind:"boolean"},Xi={kind:"color"},br={kind:"object"},Nt={kind:"value"},Ki={kind:"collator"},Ya={kind:"formatted"},us={kind:"resolvedImage"};function rr(n,e){return{kind:"array",itemType:n,N:e}}function En(n){if(n.kind==="array"){const e=En(n.itemType);return typeof n.N=="number"?`array<${e}, ${n.N}>`:n.itemType.kind==="value"?"array":`array<${e}>`}return n.kind}const xp=[qs,at,Gt,Ft,Xi,Ya,br,rr(Nt),us];function oo(n,e){if(e.kind==="error")return null;if(n.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!oo(n.itemType,e.itemType))&&(typeof n.N!="number"||n.N===e.N))return null}else{if(n.kind===e.kind)return null;if(n.kind==="value"){for(const r of xp)if(!oo(r,e))return null}}return`Expected ${En(n)} but found ${En(e)} instead.`}function Ja(n,e){return e.some(r=>r.kind===n.kind)}function Qa(n,e){return e.some(r=>r==="null"?n===null:r==="array"?Array.isArray(n):r==="object"?n&&!Array.isArray(n)&&typeof n=="object":r===typeof n)}var Zu,wp={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function el(n){return(n=Math.round(n))<0?0:n>255?255:n}function tl(n){return el(n[n.length-1]==="%"?parseFloat(n)/100*255:parseInt(n))}function sc(n){return(e=n[n.length-1]==="%"?parseFloat(n)/100:parseFloat(n))<0?0:e>1?1:e;var e}function Zs(n,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?n+(e-n)*r*6:2*r<1?e:3*r<2?n+(e-n)*(2/3-r)*6:n}try{Zu={}.parseCSSColor=function(n){var e,r=n.replace(/ /g,"").toLowerCase();if(r in wp)return wp[r].slice();if(r[0]==="#")return r.length===4?(e=parseInt(r.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:r.length===7&&(e=parseInt(r.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var a=r.indexOf("("),u=r.indexOf(")");if(a!==-1&&u+1===r.length){var p=r.substr(0,a),m=r.substr(a+1,u-(a+1)).split(","),y=1;switch(p){case"rgba":if(m.length!==4)return null;y=sc(m.pop());case"rgb":return m.length!==3?null:[tl(m[0]),tl(m[1]),tl(m[2]),y];case"hsla":if(m.length!==4)return null;y=sc(m.pop());case"hsl":if(m.length!==3)return null;var w=(parseFloat(m[0])%360+360)%360/360,b=sc(m[1]),A=sc(m[2]),I=A<=.5?A*(b+1):A+b-A*b,k=2*A-I;return[el(255*Zs(k,I,w+1/3)),el(255*Zs(k,I,w)),el(255*Zs(k,I,w-1/3)),y];default:return null}}return null}}catch{}class Ri{constructor(e,r,a,u=1){this.r=e,this.g=r,this.b=a,this.a=u}static parse(e){if(!e)return;if(e instanceof Ri)return e;if(typeof e!="string")return;const r=Zu(e);return r?new Ri(r[0]/255*r[3],r[1]/255*r[3],r[2]/255*r[3],r[3]):void 0}toString(){const[e,r,a,u]=this.toArray();return`rgba(${Math.round(e)},${Math.round(r)},${Math.round(a)},${u})`}toArray(){const{r:e,g:r,b:a,a:u}=this;return u===0?[0,0,0,0]:[255*e/u,255*r/u,255*a/u,u]}toArray01(){const{r:e,g:r,b:a,a:u}=this;return u===0?[0,0,0,0]:[e/u,r/u,a/u,u]}toArray01PremultipliedAlpha(){const{r:e,g:r,b:a,a:u}=this;return[e,r,a,u]}}Ri.black=new Ri(0,0,0,1),Ri.white=new Ri(1,1,1,1),Ri.transparent=new Ri(0,0,0,0),Ri.red=new Ri(1,0,0,1),Ri.blue=new Ri(0,0,1,1);var Dn=Ri;class Wu{constructor(e,r,a){this.sensitivity=e?r?"variant":"case":r?"accent":"base",this.locale=a,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,r){return this.collator.compare(e,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Hu{constructor(e,r,a,u,p){this.text=e.normalize?e.normalize():e,this.image=r,this.scale=a,this.fontStack=u,this.textColor=p}}class Di{constructor(e){this.sections=e}static fromString(e){return new Di([new Hu(e,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(e){return e instanceof Di?e:Di.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map(e=>e.text).join("")}serialize(){const e=["format"];for(const r of this.sections){if(r.image){e.push(["image",r.image.name]);continue}e.push(r.text);const a={};r.fontStack&&(a["text-font"]=["literal",r.fontStack.split(",")]),r.scale&&(a["font-scale"]=r.scale),r.textColor&&(a["text-color"]=["rgba"].concat(r.textColor.toArray())),e.push(a)}return e}}class or{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(e){return e?new or({name:e,available:!1}):null}serialize(){return["image",this.name]}}function bp(n,e,r,a){return typeof n=="number"&&n>=0&&n<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof r=="number"&&r>=0&&r<=255?a===void 0||typeof a=="number"&&a>=0&&a<=1?null:`Invalid rgba value [${[n,e,r,a].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof a=="number"?[n,e,r,a]:[n,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function nl(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"||n instanceof Dn||n instanceof Wu||n instanceof Di||n instanceof or)return!0;if(Array.isArray(n)){for(const e of n)if(!nl(e))return!1;return!0}if(typeof n=="object"){for(const e in n)if(!nl(n[e]))return!1;return!0}return!1}function Pn(n){if(n===null)return qs;if(typeof n=="string")return Gt;if(typeof n=="boolean")return Ft;if(typeof n=="number")return at;if(n instanceof Dn)return Xi;if(n instanceof Wu)return Ki;if(n instanceof Di)return Ya;if(n instanceof or)return us;if(Array.isArray(n)){const e=n.length;let r;for(const a of n){const u=Pn(a);if(r){if(r===u)continue;r=Nt;break}r=u}return rr(r||Nt,e)}return br}function il(n){const e=typeof n;return n===null?"":e==="string"||e==="number"||e==="boolean"?String(n):n instanceof Dn||n instanceof Di||n instanceof or?n.toString():JSON.stringify(n)}class Xu{constructor(e,r){this.type=e,this.value=r}static parse(e,r){if(e.length!==2)return r.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!nl(e[1]))return r.error("invalid value");const a=e[1];let u=Pn(a);const p=r.expectedType;return u.kind!=="array"||u.N!==0||!p||p.kind!=="array"||typeof p.N=="number"&&p.N!==0||(u=p),new Xu(u,a)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return this.type.kind==="array"||this.type.kind==="object"?["literal",this.value]:this.value instanceof Dn?["rgba"].concat(this.value.toArray()):this.value instanceof Di?this.value.serialize():this.value}}var hs=Xu,fi=class{constructor(n){this.name="ExpressionEvaluationError",this.message=n}toJSON(){return this.message}};const Ku={string:Gt,number:at,boolean:Ft,object:br};class Yu{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");let a,u=1;const p=e[0];if(p==="array"){let y,w;if(e.length>2){const b=e[1];if(typeof b!="string"||!(b in Ku)||b==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);y=Ku[b],u++}else y=Nt;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return r.error('The length argument to "array" must be a positive integer literal',2);w=e[2],u++}a=rr(y,w)}else a=Ku[p];const m=[];for(;ue.outputDefined())}serialize(){const e=this.type,r=[e.kind];if(e.kind==="array"){const a=e.itemType;if(a.kind==="string"||a.kind==="number"||a.kind==="boolean"){r.push(a.kind);const u=e.N;(typeof u=="number"||this.args.length>1)&&r.push(u)}}return r.concat(this.args.map(a=>a.serialize()))}}var so=Yu;class No{constructor(e){this.type=Ya,this.sections=e}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const a=e[1];if(!Array.isArray(a)&&typeof a=="object")return r.error("First argument must be an image or text section.");const u=[];let p=!1;for(let m=1;m<=e.length-1;++m){const y=e[m];if(p&&typeof y=="object"&&!Array.isArray(y)){p=!1;let w=null;if(y["font-scale"]&&(w=r.parse(y["font-scale"],1,at),!w))return null;let b=null;if(y["text-font"]&&(b=r.parse(y["text-font"],1,rr(Gt)),!b))return null;let A=null;if(y["text-color"]&&(A=r.parse(y["text-color"],1,Xi),!A))return null;const I=u[u.length-1];I.scale=w,I.font=b,I.textColor=A}else{const w=r.parse(e[m],1,Nt);if(!w)return null;const b=w.type.kind;if(b!=="string"&&b!=="value"&&b!=="null"&&b!=="resolvedImage")return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");p=!0,u.push({content:w,scale:null,font:null,textColor:null})}}return new No(u)}evaluate(e){return new Di(this.sections.map(r=>{const a=r.content.evaluate(e);return Pn(a)===us?new Hu("",a,null,null,null):new Hu(il(a),null,r.scale?r.scale.evaluate(e):null,r.font?r.font.evaluate(e).join(","):null,r.textColor?r.textColor.evaluate(e):null)}))}eachChild(e){for(const r of this.sections)e(r.content),r.scale&&e(r.scale),r.font&&e(r.font),r.textColor&&e(r.textColor)}outputDefined(){return!1}serialize(){const e=["format"];for(const r of this.sections){e.push(r.content.serialize());const a={};r.scale&&(a["font-scale"]=r.scale.serialize()),r.font&&(a["text-font"]=r.font.serialize()),r.textColor&&(a["text-color"]=r.textColor.serialize()),e.push(a)}return e}}class ac{constructor(e){this.type=us,this.input=e}static parse(e,r){if(e.length!==2)return r.error("Expected two arguments.");const a=r.parse(e[1],1,Gt);return a?new ac(a):r.error("No image name provided.")}evaluate(e){const r=this.input.evaluate(e),a=or.fromString(r);return a&&e.availableImages&&(a.available=e.availableImages.indexOf(r)>-1),a}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const Fg={"to-boolean":Ft,"to-color":Xi,"to-number":at,"to-string":Gt};class Ju{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const a=e[0];if((a==="to-boolean"||a==="to-string")&&e.length!==2)return r.error("Expected one argument.");const u=Fg[a],p=[];for(let m=1;m4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:bp(r[0],r[1],r[2],r[3]),!a))return new Dn(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new fi(a||`Could not parse color from value '${typeof r=="string"?r:String(JSON.stringify(r))}'`)}if(this.type.kind==="number"){let r=null;for(const a of this.args){if(r=a.evaluate(e),r===null)return 0;const u=Number(r);if(!isNaN(u))return u}throw new fi(`Could not convert ${JSON.stringify(r)} to number.`)}return this.type.kind==="formatted"?Di.fromString(il(this.args[0].evaluate(e))):this.type.kind==="resolvedImage"?or.fromString(il(this.args[0].evaluate(e))):il(this.args[0].evaluate(e))}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}serialize(){if(this.type.kind==="formatted")return new No([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind==="resolvedImage")return new ac(this.args[0]).serialize();const e=[`to-${this.type.kind}`];return this.eachChild(r=>{e.push(r.serialize())}),e}}var Ws=Ju;const jr=["Unknown","Point","LineString","Polygon"];var Qu=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&this.feature.id!==void 0?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?jr[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const n=this.featureDistanceData.center,e=this.featureDistanceData.scale,{x:r,y:a}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(r*e-n[0])+this.featureDistanceData.bearing[1]*(a*e-n[1])}return 0}parseColor(n){let e=this._parseColorCache[n];return e||(e=this._parseColorCache[n]=Dn.parse(n)),e}};class ds{constructor(e,r,a,u){this.name=e,this.type=r,this._evaluate=a,this.args=u}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(e=>e.serialize()))}static parse(e,r){const a=e[0],u=ds.definitions[a];if(!u)return r.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`,0);const p=Array.isArray(u)?u[0]:u.type,m=Array.isArray(u)?[[u[1],u[2]]]:u.overloads,y=m.filter(([b])=>!Array.isArray(b)||b.length===e.length-1);let w=null;for(const[b,A]of y){w=new oh(r.registry,r.path,null,r.scope);const I=[];let k=!1;for(let L=1;L{return k=I,Array.isArray(k)?`(${k.map(En).join(", ")})`:`(${En(k.type)}...)`;var k}).join(" | "),A=[];for(let I=1;I=e[2]||n[1]<=e[1]||n[3]>=e[3])}function ol(n,e){const r=(180+n[0])/360,a=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n[1]*Math.PI/360)))/360,u=Math.pow(2,e.z);return[Math.round(r*u*lo),Math.round(a*u*lo)]}function Ep(n,e,r){const a=n[0]-e[0],u=n[1]-e[1],p=n[0]-r[0],m=n[1]-r[1];return a*m-p*u==0&&a*p<=0&&u*m<=0}function cc(n,e){let r=!1;for(let m=0,y=e.length;m(a=n)[1]!=(p=w[b+1])[1]>a[1]&&a[0]<(p[0]-u[0])*(a[1]-u[1])/(p[1]-u[1])+u[0]&&(r=!r)}}var a,u,p;return r}function eh(n,e){for(let r=0;r0&&y<0||m<0&&y>0}function Xs(n,e,r){for(const b of r)for(let A=0;Ar[2]){const u=.5*a;let p=n[0]-r[0]>u?-a:r[0]-n[0]>u?a:0;p===0&&(p=n[0]-r[2]>u?-a:r[2]-n[0]>u?a:0),n[0]+=p}lc(e,n)}function Sp(n,e,r,a){const u=Math.pow(2,a.z)*lo,p=[a.x*lo,a.y*lo],m=[];if(!n)return m;for(const y of n)for(const w of y){const b=[w.x+p[0],w.y+p[1]];ih(b,e,r,u),m.push(b)}return m}function rh(n,e,r,a){const u=Math.pow(2,a.z)*lo,p=[a.x*lo,a.y*lo],m=[];if(!n)return m;for(const w of n){const b=[];for(const A of w){const I=[A.x+p[0],A.y+p[1]];lc(e,I),b.push(I)}m.push(b)}if(e[2]-e[0]<=u/2){(y=e)[0]=y[1]=1/0,y[2]=y[3]=-1/0;for(const w of m)for(const b of w)ih(b,e,r,u)}var y;return m}class Ks{constructor(e,r){this.type=Ft,this.geojson=e,this.geometries=r}static parse(e,r){if(e.length!==2)return r.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(nl(e[1])){const a=e[1];if(a.type==="FeatureCollection")for(let u=0;u{e&&!Ys(r)&&(e=!1)}),e}function co(n){if(n instanceof ao&&n.name==="feature-state")return!1;let e=!0;return n.eachChild(r=>{e&&!co(r)&&(e=!1)}),e}function ps(n,e){if(n instanceof ao&&e.indexOf(n.name)>=0)return!1;let r=!0;return n.eachChild(a=>{r&&!ps(a,e)&&(r=!1)}),r}class hc{constructor(e,r){this.type=r.type,this.name=e,this.boundExpression=r}static parse(e,r){if(e.length!==2||typeof e[1]!="string")return r.error("'var' expression requires exactly one string literal argument.");const a=e[1];return r.scope.has(a)?new hc(a,r.scope.get(a)):r.error(`Unknown variable "${a}". Make sure "${a}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var Ap=hc;class sl{constructor(e,r=[],a,u=new vp,p=[]){this.registry=e,this.path=r,this.key=r.map(m=>`[${m}]`).join(""),this.scope=u,this.errors=p,this.expectedType=a}parse(e,r,a,u,p={}){return r?this.concat(r,a,u)._parse(e,p):this._parse(e,p)}_parse(e,r){function a(u,p,m){return m==="assert"?new so(p,[u]):m==="coerce"?new Ws(p,[u]):u}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),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", []].');const u=e[0];if(typeof u!="string")return this.error(`Expression name must be a string, but found ${typeof u} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const p=this.registry[u];if(p){let m=p.parse(e,this);if(!m)return null;if(this.expectedType){const y=this.expectedType,w=m.type;if(y.kind!=="string"&&y.kind!=="number"&&y.kind!=="boolean"&&y.kind!=="object"&&y.kind!=="array"||w.kind!=="value")if(y.kind!=="color"&&y.kind!=="formatted"&&y.kind!=="resolvedImage"||w.kind!=="value"&&w.kind!=="string"){if(this.checkSubtype(y,w))return null}else m=a(m,y,r.typeAnnotation||"coerce");else m=a(m,y,r.typeAnnotation||"assert")}if(!(m instanceof hs)&&m.type.kind!=="resolvedImage"&&sh(m)){const y=new Qu;try{m=new hs(m.type,m.evaluate(y))}catch(w){return this.error(w.message),null}}return m}return this.error(`Unknown expression "${u}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,r,a){const u=typeof e=="number"?this.path.concat(e):this.path,p=a?this.scope.concat(a):this.scope;return new sl(this.registry,u,r||null,p,this.errors)}error(e,...r){const a=`${this.key}${r.map(u=>`[${u}]`).join("")}`;this.errors.push(new Ur(a,e))}checkSubtype(e,r){const a=oo(e,r);return a&&this.error(a),a}}var oh=sl;function sh(n){if(n instanceof Ap)return sh(n.boundExpression);if(n instanceof ao&&n.name==="error"||n instanceof rl||n instanceof uc)return!1;const e=n instanceof Ws||n instanceof so;let r=!0;return n.eachChild(a=>{r=e?r&&sh(a):r&&a instanceof hs}),!!r&&Ys(n)&&ps(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}function dc(n,e){const r=n.length-1;let a,u,p=0,m=r,y=0;for(;p<=m;)if(y=Math.floor((p+m)/2),a=n[y],u=n[y+1],a<=e){if(y===r||ee))throw new fi("Input is not a number.");m=y-1}return 0}class pc{constructor(e,r,a){this.type=e,this.input=r,this.labels=[],this.outputs=[];for(const[u,p]of a)this.labels.push(u),this.outputs.push(p)}static parse(e,r){if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");const a=r.parse(e[1],1,at);if(!a)return null;const u=[];let p=null;r.expectedType&&r.expectedType.kind!=="value"&&(p=r.expectedType);for(let m=1;m=y)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',b);const I=r.parse(w,A,p);if(!I)return null;p=p||I.type,u.push([y,I])}return new pc(p,a,u)}evaluate(e){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(e);const u=this.input.evaluate(e);if(u<=r[0])return a[0].evaluate(e);const p=r.length;return u>=r[p-1]?a[p-1].evaluate(e):a[dc(r,u)].evaluate(e)}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}serialize(){const e=["step",this.input.serialize()];for(let r=0;r0&&e.push(this.labels[r]),e.push(this.outputs[r].serialize());return e}}var ah=pc;function Zt(n,e,r){return n*(1-r)+e*r}var al=Object.freeze({__proto__:null,array:function(n,e,r){return n.map((a,u)=>Zt(a,e[u],r))},color:function(n,e,r){return new Dn(Zt(n.r,e.r,r),Zt(n.g,e.g,r),Zt(n.b,e.b,r),Zt(n.a,e.a,r))},number:Zt});const Cp=.95047,lh=1.08883,Ip=4/29,fs=6/29,ch=3*fs*fs,Ug=fs*fs*fs,jg=Math.PI/180,Vg=180/Math.PI;function uh(n){return n>Ug?Math.pow(n,1/3):n/ch+Ip}function hh(n){return n>fs?n*n*n:ch*(n-Ip)}function dh(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function fc(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Mp(n){const e=fc(n.r),r=fc(n.g),a=fc(n.b),u=uh((.4124564*e+.3575761*r+.1804375*a)/Cp),p=uh((.2126729*e+.7151522*r+.072175*a)/1);return{l:116*p-16,a:500*(u-p),b:200*(p-uh((.0193339*e+.119192*r+.9503041*a)/lh)),alpha:n.a}}function kp(n){let e=(n.l+16)/116,r=isNaN(n.a)?e:e+n.a/500,a=isNaN(n.b)?e:e-n.b/200;return e=1*hh(e),r=Cp*hh(r),a=lh*hh(a),new Dn(dh(3.2404542*r-1.5371385*e-.4985314*a),dh(-.969266*r+1.8760108*e+.041556*a),dh(.0556434*r-.2040259*e+1.0572252*a),n.alpha)}function Gg(n,e,r){const a=e-n;return n+r*(a>180||a<-180?a-360*Math.round(a/360):a)}const ll={forward:Mp,reverse:kp,interpolate:function(n,e,r){return{l:Zt(n.l,e.l,r),a:Zt(n.a,e.a,r),b:Zt(n.b,e.b,r),alpha:Zt(n.alpha,e.alpha,r)}}},Js={forward:function(n){const{l:e,a:r,b:a}=Mp(n),u=Math.atan2(a,r)*Vg;return{h:u<0?u+360:u,c:Math.sqrt(r*r+a*a),l:e,alpha:n.a}},reverse:function(n){const e=n.h*jg,r=n.c;return kp({l:n.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:n.alpha})},interpolate:function(n,e,r){return{h:Gg(n.h,e.h,r),c:Zt(n.c,e.c,r),l:Zt(n.l,e.l,r),alpha:Zt(n.alpha,e.alpha,r)}}};var ph=Object.freeze({__proto__:null,hcl:Js,lab:ll});class cl{constructor(e,r,a,u,p){this.type=e,this.operator=r,this.interpolation=a,this.input=u,this.labels=[],this.outputs=[];for(const[m,y]of p)this.labels.push(m),this.outputs.push(y)}static interpolationFactor(e,r,a,u){let p=0;if(e.name==="exponential")p=fh(r,e.base,a,u);else if(e.name==="linear")p=fh(r,1,a,u);else if(e.name==="cubic-bezier"){const m=e.controlPoints;p=new tt(m[0],m[1],m[2],m[3]).solve(fh(r,1,a,u))}return p}static parse(e,r){let[a,u,p,...m]=e;if(!Array.isArray(u)||u.length===0)return r.error("Expected an interpolation type expression.",1);if(u[0]==="linear")u={name:"linear"};else if(u[0]==="exponential"){const b=u[1];if(typeof b!="number")return r.error("Exponential interpolation requires a numeric base.",1,1);u={name:"exponential",base:b}}else{if(u[0]!=="cubic-bezier")return r.error(`Unknown interpolation type ${String(u[0])}`,1,0);{const b=u.slice(1);if(b.length!==4||b.some(A=>typeof A!="number"||A<0||A>1))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);u={name:"cubic-bezier",controlPoints:b}}}if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(p=r.parse(p,2,at),!p)return null;const y=[];let w=null;a==="interpolate-hcl"||a==="interpolate-lab"?w=Xi:r.expectedType&&r.expectedType.kind!=="value"&&(w=r.expectedType);for(let b=0;b=A)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',k);const R=r.parse(I,L,w);if(!R)return null;w=w||R.type,y.push([A,R])}return w.kind==="number"||w.kind==="color"||w.kind==="array"&&w.itemType.kind==="number"&&typeof w.N=="number"?new cl(w,a,u,p,y):r.error(`Type ${En(w)} is not interpolatable.`)}evaluate(e){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(e);const u=this.input.evaluate(e);if(u<=r[0])return a[0].evaluate(e);const p=r.length;if(u>=r[p-1])return a[p-1].evaluate(e);const m=dc(r,u),y=cl.interpolationFactor(this.interpolation,u,r[m],r[m+1]),w=a[m].evaluate(e),b=a[m+1].evaluate(e);return this.operator==="interpolate"?al[this.type.kind.toLowerCase()](w,b,y):this.operator==="interpolate-hcl"?Js.reverse(Js.interpolate(Js.forward(w),Js.forward(b),y)):ll.reverse(ll.interpolate(ll.forward(w),ll.forward(b),y))}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}serialize(){let e;e=this.interpolation.name==="linear"?["linear"]:this.interpolation.name==="exponential"?this.interpolation.base===1?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const r=[this.operator,e,this.input.serialize()];for(let a=0;aoo(u,y.type));return new mc(m?Nt:a,p)}evaluate(e){let r,a=null,u=0;for(const p of this.args){if(u++,a=p.evaluate(e),a&&a instanceof or&&!a.available&&(r||(r=a),a=null,u===this.args.length))return r;if(a!==null)break}return a}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}serialize(){const e=["coalesce"];return this.eachChild(r=>{e.push(r.serialize())}),e}}var mh=mc;class gc{constructor(e,r){this.type=r.type,this.bindings=[].concat(e),this.result=r}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const r of this.bindings)e(r[1]);e(this.result)}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const a=[];for(let p=1;p=a.length)throw new fi(`Array index out of bounds: ${r} > ${a.length-1}.`);if(r!==Math.floor(r))throw new fi(`Array index must be an integer, but found ${r} instead.`);return a[r]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var $g=gh;class _h{constructor(e,r){this.type=Ft,this.needle=e,this.haystack=r}static parse(e,r){if(e.length!==3)return r.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,Nt);return a&&u?Ja(a.type,[Ft,Gt,at,qs,Nt])?new _h(a,u):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${En(a.type)} instead`):null}evaluate(e){const r=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(a==null)return!1;if(!Qa(r,["boolean","string","number","null"]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${En(Pn(r))} instead.`);if(!Qa(a,["string","array"]))throw new fi(`Expected second argument to be of type array or string, but found ${En(Pn(a))} instead.`);return a.indexOf(r)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var _c=_h;class ul{constructor(e,r,a){this.type=at,this.needle=e,this.haystack=r,this.fromIndex=a}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,Nt);if(!a||!u)return null;if(!Ja(a.type,[Ft,Gt,at,qs,Nt]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${En(a.type)} instead`);if(e.length===4){const p=r.parse(e[3],3,at);return p?new ul(a,u,p):null}return new ul(a,u)}evaluate(e){const r=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(!Qa(r,["boolean","string","number","null"]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${En(Pn(r))} instead.`);if(!Qa(a,["string","array"]))throw new fi(`Expected second argument to be of type array or string, but found ${En(Pn(a))} instead.`);if(this.fromIndex){const u=this.fromIndex.evaluate(e);return a.indexOf(r,u)}return a.indexOf(r)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}serialize(){if(this.fromIndex!=null&&this.fromIndex!==void 0){const e=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),e]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var zp=ul;class yh{constructor(e,r,a,u,p,m){this.inputType=e,this.type=r,this.input=a,this.cases=u,this.outputs=p,this.otherwise=m}static parse(e,r){if(e.length<5)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return r.error("Expected an even number of arguments.");let a,u;r.expectedType&&r.expectedType.kind!=="value"&&(u=r.expectedType);const p={},m=[];for(let b=2;bNumber.MAX_SAFE_INTEGER)return k.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof R=="number"&&Math.floor(R)!==R)return k.error("Numeric branch labels must be integer values.");if(a){if(k.checkSubtype(a,Pn(R)))return null}else a=Pn(R);if(p[String(R)]!==void 0)return k.error("Branch labels must be unique.");p[String(R)]=m.length}const L=r.parse(I,b,u);if(!L)return null;u=u||L.type,m.push(L)}const y=r.parse(e[1],1,Nt);if(!y)return null;const w=r.parse(e[e.length-1],e.length-1,u);return w?y.type.kind!=="value"&&r.concat(1).checkSubtype(a,y.type)?null:new yh(a,u,y,p,m,w):null}evaluate(e){const r=this.input.evaluate(e);return(Pn(r)===this.inputType&&this.outputs[this.cases[r]]||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()}serialize(){const e=["match",this.input.serialize()],r=Object.keys(this.cases).sort(),a=[],u={};for(const m of r){const y=u[this.cases[m]];y===void 0?(u[this.cases[m]]=a.length,a.push([this.cases[m],[m]])):a[y][1].push(m)}const p=m=>this.inputType.kind==="number"?Number(m):m;for(const[m,y]of a)e.push(y.length===1?p(y[0]):y.map(p)),e.push(this.outputs[m].serialize());return e.push(this.otherwise.serialize()),e}}var qg=yh;class vh{constructor(e,r,a){this.type=e,this.branches=r,this.otherwise=a}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return r.error("Expected an odd number of arguments.");let a;r.expectedType&&r.expectedType.kind!=="value"&&(a=r.expectedType);const u=[];for(let m=1;mr.outputDefined())&&this.otherwise.outputDefined()}serialize(){const e=["case"];return this.eachChild(r=>{e.push(r.serialize())}),e}}var Lp=vh;class hl{constructor(e,r,a,u){this.type=e,this.input=r,this.beginIndex=a,this.endIndex=u}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,at);if(!a||!u)return null;if(!Ja(a.type,[rr(Nt),Gt,Nt]))return r.error(`Expected first argument to be of type array or string, but found ${En(a.type)} instead`);if(e.length===4){const p=r.parse(e[3],3,at);return p?new hl(a.type,a,u,p):null}return new hl(a.type,a,u)}evaluate(e){const r=this.input.evaluate(e),a=this.beginIndex.evaluate(e);if(!Qa(r,["string","array"]))throw new fi(`Expected first argument to be of type array or string, but found ${En(Pn(r))} instead.`);if(this.endIndex){const u=this.endIndex.evaluate(e);return r.slice(a,u)}return r.slice(a)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}serialize(){if(this.endIndex!=null&&this.endIndex!==void 0){const e=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),e]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Rp=hl;function yc(n,e){return n==="=="||n==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function Dp(n,e,r,a){return a.compare(e,r)===0}function Qs(n,e,r){const a=n!=="=="&&n!=="!=";return class YA{constructor(p,m,y){this.type=Ft,this.lhs=p,this.rhs=m,this.collator=y,this.hasUntypedArgument=p.type.kind==="value"||m.type.kind==="value"}static parse(p,m){if(p.length!==3&&p.length!==4)return m.error("Expected two or three arguments.");const y=p[0];let w=m.parse(p[1],1,Nt);if(!w)return null;if(!yc(y,w.type))return m.concat(1).error(`"${y}" comparisons are not supported for type '${En(w.type)}'.`);let b=m.parse(p[2],2,Nt);if(!b)return null;if(!yc(y,b.type))return m.concat(2).error(`"${y}" comparisons are not supported for type '${En(b.type)}'.`);if(w.type.kind!==b.type.kind&&w.type.kind!=="value"&&b.type.kind!=="value")return m.error(`Cannot compare types '${En(w.type)}' and '${En(b.type)}'.`);a&&(w.type.kind==="value"&&b.type.kind!=="value"?w=new so(b.type,[w]):w.type.kind!=="value"&&b.type.kind==="value"&&(b=new so(w.type,[b])));let A=null;if(p.length===4){if(w.type.kind!=="string"&&b.type.kind!=="string"&&w.type.kind!=="value"&&b.type.kind!=="value")return m.error("Cannot use collator to compare non-string types.");if(A=m.parse(p[3],3,Ki),!A)return null}return new YA(w,b,A)}evaluate(p){const m=this.lhs.evaluate(p),y=this.rhs.evaluate(p);if(a&&this.hasUntypedArgument){const w=Pn(m),b=Pn(y);if(w.kind!==b.kind||w.kind!=="string"&&w.kind!=="number")throw new fi(`Expected arguments for "${n}" to be (string, string) or (number, number), but found (${w.kind}, ${b.kind}) instead.`)}if(this.collator&&!a&&this.hasUntypedArgument){const w=Pn(m),b=Pn(y);if(w.kind!=="string"||b.kind!=="string")return e(p,m,y)}return this.collator?r(p,m,y,this.collator.evaluate(p)):e(p,m,y)}eachChild(p){p(this.lhs),p(this.rhs),this.collator&&p(this.collator)}outputDefined(){return!0}serialize(){const p=[n];return this.eachChild(m=>{p.push(m.serialize())}),p}}}const Zg=Qs("==",function(n,e,r){return e===r},Dp),Wg=Qs("!=",function(n,e,r){return e!==r},function(n,e,r,a){return!Dp(0,e,r,a)}),Hg=Qs("<",function(n,e,r){return e",function(n,e,r){return e>r},function(n,e,r,a){return a.compare(e,r)>0}),Kg=Qs("<=",function(n,e,r){return e<=r},function(n,e,r,a){return a.compare(e,r)<=0}),Op=Qs(">=",function(n,e,r){return e>=r},function(n,e,r,a){return a.compare(e,r)>=0});class vc{constructor(e,r,a,u,p,m){this.type=Gt,this.number=e,this.locale=r,this.currency=a,this.unit=u,this.minFractionDigits=p,this.maxFractionDigits=m}static parse(e,r){if(e.length!==3)return r.error("Expected two arguments.");const a=r.parse(e[1],1,at);if(!a)return null;const u=e[2];if(typeof u!="object"||Array.isArray(u))return r.error("NumberFormat options argument must be an object.");let p=null;if(u.locale&&(p=r.parse(u.locale,1,Gt),!p))return null;let m=null;if(u.currency&&(m=r.parse(u.currency,1,Gt),!m))return null;let y=null;if(u.unit&&(y=r.parse(u.unit,1,Gt),!y))return null;let w=null;if(u["min-fraction-digits"]&&(w=r.parse(u["min-fraction-digits"],1,at),!w))return null;let b=null;return u["max-fraction-digits"]&&(b=r.parse(u["max-fraction-digits"],1,at),!b)?null:new vc(a,p,m,y,w,b)}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!1}serialize(){const e={};return this.locale&&(e.locale=this.locale.serialize()),this.currency&&(e.currency=this.currency.serialize()),this.unit&&(e.unit=this.unit.serialize()),this.minFractionDigits&&(e["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(e["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),e]}}class ea{constructor(e){this.type=at,this.input=e}static parse(e,r){if(e.length!==2)return r.error(`Expected 1 argument, but found ${e.length-1} instead.`);const a=r.parse(e[1],1);return a?a.type.kind!=="array"&&a.type.kind!=="string"&&a.type.kind!=="value"?r.error(`Expected argument of type string or array, but found ${En(a.type)} instead.`):new ea(a):null}evaluate(e){const r=this.input.evaluate(e);if(typeof r=="string"||Array.isArray(r))return r.length;throw new fi(`Expected value to be of type string or array, but found ${En(Pn(r))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){const e=["length"];return this.eachChild(r=>{e.push(r.serialize())}),e}}const Bp={"==":Zg,"!=":Wg,">":Xg,"<":Hg,">=":Op,"<=":Kg,array:so,at:$g,boolean:so,case:Lp,coalesce:mh,collator:rl,format:No,image:ac,in:_c,"index-of":zp,interpolate:Vr,"interpolate-hcl":Vr,"interpolate-lab":Vr,length:ea,let:Pp,literal:hs,match:qg,number:so,"number-format":vc,object:so,slice:Rp,step:ah,string:so,"to-boolean":Ws,"to-color":Ws,"to-number":Ws,"to-string":Ws,var:Ap,within:uc};function Fp(n,[e,r,a,u]){e=e.evaluate(n),r=r.evaluate(n),a=a.evaluate(n);const p=u?u.evaluate(n):1,m=bp(e,r,a,p);if(m)throw new fi(m);return new Dn(e/255*p,r/255*p,a/255*p,p)}function uo(n,e){return n in e}function xc(n,e){const r=e[n];return r===void 0?null:r}function sr(n){return{type:n}}ao.register(Bp,{error:[{kind:"error"},[Gt],(n,[e])=>{throw new fi(e.evaluate(n))}],typeof:[Gt,[Nt],(n,[e])=>En(Pn(e.evaluate(n)))],"to-rgba":[rr(at,4),[Xi],(n,[e])=>e.evaluate(n).toArray()],rgb:[Xi,[at,at,at],Fp],rgba:[Xi,[at,at,at,at],Fp],has:{type:Ft,overloads:[[[Gt],(n,[e])=>uo(e.evaluate(n),n.properties())],[[Gt,br],(n,[e,r])=>uo(e.evaluate(n),r.evaluate(n))]]},get:{type:Nt,overloads:[[[Gt],(n,[e])=>xc(e.evaluate(n),n.properties())],[[Gt,br],(n,[e,r])=>xc(e.evaluate(n),r.evaluate(n))]]},"feature-state":[Nt,[Gt],(n,[e])=>xc(e.evaluate(n),n.featureState||{})],properties:[br,[],n=>n.properties()],"geometry-type":[Gt,[],n=>n.geometryType()],id:[Nt,[],n=>n.id()],zoom:[at,[],n=>n.globals.zoom],pitch:[at,[],n=>n.globals.pitch||0],"distance-from-center":[at,[],n=>n.distanceFromCenter()],"heatmap-density":[at,[],n=>n.globals.heatmapDensity||0],"line-progress":[at,[],n=>n.globals.lineProgress||0],"sky-radial-progress":[at,[],n=>n.globals.skyRadialProgress||0],accumulated:[Nt,[],n=>n.globals.accumulated===void 0?null:n.globals.accumulated],"+":[at,sr(at),(n,e)=>{let r=0;for(const a of e)r+=a.evaluate(n);return r}],"*":[at,sr(at),(n,e)=>{let r=1;for(const a of e)r*=a.evaluate(n);return r}],"-":{type:at,overloads:[[[at,at],(n,[e,r])=>e.evaluate(n)-r.evaluate(n)],[[at],(n,[e])=>-e.evaluate(n)]]},"/":[at,[at,at],(n,[e,r])=>e.evaluate(n)/r.evaluate(n)],"%":[at,[at,at],(n,[e,r])=>e.evaluate(n)%r.evaluate(n)],ln2:[at,[],()=>Math.LN2],pi:[at,[],()=>Math.PI],e:[at,[],()=>Math.E],"^":[at,[at,at],(n,[e,r])=>Math.pow(e.evaluate(n),r.evaluate(n))],sqrt:[at,[at],(n,[e])=>Math.sqrt(e.evaluate(n))],log10:[at,[at],(n,[e])=>Math.log(e.evaluate(n))/Math.LN10],ln:[at,[at],(n,[e])=>Math.log(e.evaluate(n))],log2:[at,[at],(n,[e])=>Math.log(e.evaluate(n))/Math.LN2],sin:[at,[at],(n,[e])=>Math.sin(e.evaluate(n))],cos:[at,[at],(n,[e])=>Math.cos(e.evaluate(n))],tan:[at,[at],(n,[e])=>Math.tan(e.evaluate(n))],asin:[at,[at],(n,[e])=>Math.asin(e.evaluate(n))],acos:[at,[at],(n,[e])=>Math.acos(e.evaluate(n))],atan:[at,[at],(n,[e])=>Math.atan(e.evaluate(n))],min:[at,sr(at),(n,e)=>Math.min(...e.map(r=>r.evaluate(n)))],max:[at,sr(at),(n,e)=>Math.max(...e.map(r=>r.evaluate(n)))],abs:[at,[at],(n,[e])=>Math.abs(e.evaluate(n))],round:[at,[at],(n,[e])=>{const r=e.evaluate(n);return r<0?-Math.round(-r):Math.round(r)}],floor:[at,[at],(n,[e])=>Math.floor(e.evaluate(n))],ceil:[at,[at],(n,[e])=>Math.ceil(e.evaluate(n))],"filter-==":[Ft,[Gt,Nt],(n,[e,r])=>n.properties()[e.value]===r.value],"filter-id-==":[Ft,[Nt],(n,[e])=>n.id()===e.value],"filter-type-==":[Ft,[Gt],(n,[e])=>n.geometryType()===e.value],"filter-<":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a{const r=n.id(),a=e.value;return typeof r==typeof a&&r":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a>u}],"filter-id->":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r>a}],"filter-<=":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a<=u}],"filter-id-<=":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r<=a}],"filter->=":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a>=u}],"filter-id->=":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r>=a}],"filter-has":[Ft,[Nt],(n,[e])=>e.value in n.properties()],"filter-has-id":[Ft,[],n=>n.id()!==null&&n.id()!==void 0],"filter-type-in":[Ft,[rr(Gt)],(n,[e])=>e.value.indexOf(n.geometryType())>=0],"filter-id-in":[Ft,[rr(Nt)],(n,[e])=>e.value.indexOf(n.id())>=0],"filter-in-small":[Ft,[Gt,rr(Nt)],(n,[e,r])=>r.value.indexOf(n.properties()[e.value])>=0],"filter-in-large":[Ft,[Gt,rr(Nt)],(n,[e,r])=>function(a,u,p,m){for(;p<=m;){const y=p+m>>1;if(u[y]===a)return!0;u[y]>a?m=y-1:p=y+1}return!1}(n.properties()[e.value],r.value,0,r.value.length-1)],all:{type:Ft,overloads:[[[Ft,Ft],(n,[e,r])=>e.evaluate(n)&&r.evaluate(n)],[sr(Ft),(n,e)=>{for(const r of e)if(!r.evaluate(n))return!1;return!0}]]},any:{type:Ft,overloads:[[[Ft,Ft],(n,[e,r])=>e.evaluate(n)||r.evaluate(n)],[sr(Ft),(n,e)=>{for(const r of e)if(r.evaluate(n))return!0;return!1}]]},"!":[Ft,[Ft],(n,[e])=>!e.evaluate(n)],"is-supported-script":[Ft,[Gt],(n,[e])=>{const r=n.globals&&n.globals.isSupportedScript;return!r||r(e.evaluate(n))}],upcase:[Gt,[Gt],(n,[e])=>e.evaluate(n).toUpperCase()],downcase:[Gt,[Gt],(n,[e])=>e.evaluate(n).toLowerCase()],concat:[Gt,sr(Nt),(n,e)=>e.map(r=>il(r.evaluate(n))).join("")],"resolved-locale":[Gt,[Ki],(n,[e])=>e.evaluate(n).resolvedLocale()]});var dl=Bp;function Np(n){return{result:"success",value:n}}function ms(n){return{result:"error",value:n}}function ta(n){return n["property-type"]==="data-driven"}function wc(n){return!!n.expression&&n.expression.parameters.indexOf("zoom")>-1}function bc(n){return!!n.expression&&n.expression.interpolated}function Wt(n){return n instanceof Number?"number":n instanceof String?"string":n instanceof Boolean?"boolean":Array.isArray(n)?"array":n===null?"null":typeof n}function pl(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Up(n){return n}function Ec(n,e){const r=e.type==="color",a=n.stops&&typeof n.stops[0][0]=="object",u=a||!(a||n.property!==void 0),p=n.type||(bc(e)?"exponential":"interval");if(r&&((n=ro({},n)).stops&&(n.stops=n.stops.map(b=>[b[0],Dn.parse(b[1])])),n.default=Dn.parse(n.default?n.default:e.default)),n.colorSpace&&n.colorSpace!=="rgb"&&!ph[n.colorSpace])throw new Error(`Unknown color space: ${n.colorSpace}`);let m,y,w;if(p==="exponential")m=ho;else if(p==="interval")m=Tc;else if(p==="categorical"){m=jp,y=Object.create(null);for(const b of n.stops)y[b[0]]=b[1];w=typeof n.stops[0][0]}else{if(p!=="identity")throw new Error(`Unknown function type "${p}"`);m=Vp}if(a){const b={},A=[];for(let L=0;LL[0]),evaluate:({zoom:L},R)=>ho({stops:I,base:n.base},e,L).evaluate(L,R)}}if(u){const b=p==="exponential"?{name:"exponential",base:n.base!==void 0?n.base:1}:null;return{kind:"camera",interpolationType:b,interpolationFactor:Vr.interpolationFactor.bind(void 0,b),zoomStops:n.stops.map(A=>A[0]),evaluate:({zoom:A})=>m(n,e,A,y,w)}}return{kind:"source",evaluate(b,A){const I=A&&A.properties?A.properties[n.property]:void 0;return I===void 0?na(n.default,e.default):m(n,e,I,y,w)}}}function na(n,e,r){return n!==void 0?n:e!==void 0?e:r!==void 0?r:void 0}function jp(n,e,r,a,u){return na(typeof r===u?a[r]:void 0,n.default,e.default)}function Tc(n,e,r){if(Wt(r)!=="number")return na(n.default,e.default);const a=n.stops.length;if(a===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[a-1][0])return n.stops[a-1][1];const u=dc(n.stops.map(p=>p[0]),r);return n.stops[u][1]}function ho(n,e,r){const a=n.base!==void 0?n.base:1;if(Wt(r)!=="number")return na(n.default,e.default);const u=n.stops.length;if(u===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[u-1][0])return n.stops[u-1][1];const p=dc(n.stops.map(A=>A[0]),r),m=function(A,I,k,L){const R=L-k,B=A-k;return R===0?0:I===1?B/R:(Math.pow(I,B)-1)/(Math.pow(I,R)-1)}(r,a,n.stops[p][0],n.stops[p+1][0]),y=n.stops[p][1],w=n.stops[p+1][1];let b=al[e.type]||Up;if(n.colorSpace&&n.colorSpace!=="rgb"){const A=ph[n.colorSpace];b=(I,k)=>A.reverse(A.interpolate(A.forward(I),A.forward(k),m))}return typeof y.evaluate=="function"?{evaluate(...A){const I=y.evaluate.apply(void 0,A),k=w.evaluate.apply(void 0,A);if(I!==void 0&&k!==void 0)return b(I,k,m)}}:b(y,w,m)}function Vp(n,e,r){return e.type==="color"?r=Dn.parse(r):e.type==="formatted"?r=Di.fromString(r.toString()):e.type==="resolvedImage"?r=or.fromString(r.toString()):Wt(r)===e.type||e.type==="enum"&&e.values[r]||(r=void 0),na(r,n.default,e.default)}class Sc{constructor(e,r){this.expression=e,this._warningHistory={},this._evaluator=new Qu,this._defaultValue=r?function(a){return a.type==="color"&&(pl(a.default)||Array.isArray(a.default))?new Dn(0,0,0,0):a.type==="color"?Dn.parse(a.default)||null:a.default===void 0?null:a.default}(r):null,this._enumValues=r&&r.type==="enum"?r.values:null}evaluateWithoutErrorHandling(e,r,a,u,p,m,y,w){return this._evaluator.globals=e,this._evaluator.feature=r,this._evaluator.featureState=a,this._evaluator.canonical=u||null,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m,this._evaluator.featureTileCoord=y||null,this._evaluator.featureDistanceData=w||null,this.expression.evaluate(this._evaluator)}evaluate(e,r,a,u,p,m,y,w){this._evaluator.globals=e,this._evaluator.feature=r||null,this._evaluator.featureState=a||null,this._evaluator.canonical=u||null,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m||null,this._evaluator.featureTileCoord=y||null,this._evaluator.featureDistanceData=w||null;try{const b=this.expression.evaluate(this._evaluator);if(b==null||typeof b=="number"&&b!=b)return this._defaultValue;if(this._enumValues&&!(b in this._enumValues))throw new fi(`Expected value to be one of ${Object.keys(this._enumValues).map(A=>JSON.stringify(A)).join(", ")}, but found ${JSON.stringify(b)} instead.`);return b}catch(b){return this._warningHistory[b.message]||(this._warningHistory[b.message]=!0,typeof console<"u"&&console.warn(b.message)),this._defaultValue}}}function ia(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="string"&&n[0]in dl}function ra(n,e){const r=new oh(dl,[],e?function(u){const p={color:Xi,string:Gt,number:at,enum:Gt,boolean:Ft,formatted:Ya,resolvedImage:us};return u.type==="array"?rr(p[u.value]||Nt,u.length):p[u.type]}(e):void 0),a=r.parse(n,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return a?Np(new Sc(a,e)):ms(r.errors)}class xh{constructor(e,r){this.kind=e,this._styleExpression=r,this.isStateDependent=e!=="constant"&&!co(r.expression)}evaluateWithoutErrorHandling(e,r,a,u,p,m){return this._styleExpression.evaluateWithoutErrorHandling(e,r,a,u,p,m)}evaluate(e,r,a,u,p,m){return this._styleExpression.evaluate(e,r,a,u,p,m)}}class fl{constructor(e,r,a,u){this.kind=e,this.zoomStops=a,this._styleExpression=r,this.isStateDependent=e!=="camera"&&!co(r.expression),this.interpolationType=u}evaluateWithoutErrorHandling(e,r,a,u,p,m){return this._styleExpression.evaluateWithoutErrorHandling(e,r,a,u,p,m)}evaluate(e,r,a,u,p,m){return this._styleExpression.evaluate(e,r,a,u,p,m)}interpolationFactor(e,r,a){return this.interpolationType?Vr.interpolationFactor(this.interpolationType,e,r,a):0}}function ml(n,e){if((n=ra(n,e)).result==="error")return n;const r=n.value.expression,a=Ys(r);if(!a&&!ta(e))return ms([new Ur("","data expressions not supported")]);const u=ps(r,["zoom","pitch","distance-from-center"]);if(!u&&!wc(e))return ms([new Ur("","zoom expressions not supported")]);const p=Cc(r);return p||u?p instanceof Ur?ms([p]):p instanceof Vr&&!bc(e)?ms([new Ur("",'"interpolate" expressions cannot be used with this property')]):Np(p?new fl(a?"camera":"composite",n.value,p.labels,p instanceof Vr?p.interpolation:void 0):new xh(a?"constant":"source",n.value)):ms([new Ur("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Ac{constructor(e,r){this._parameters=e,this._specification=r,ro(this,Ec(this._parameters,this._specification))}static deserialize(e){return new Ac(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function Cc(n){let e=null;if(n instanceof Pp)e=Cc(n.result);else if(n instanceof mh){for(const r of n.args)if(e=Cc(r),e)break}else(n instanceof ah||n instanceof Vr)&&n.input instanceof ao&&n.input.name==="zoom"&&(e=n);return e instanceof Ur||n.eachChild(r=>{const a=Cc(r);a instanceof Ur?e=a:!e&&a?e=new Ur("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&a&&e!==a&&(e=new Ur("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}class ct{constructor(e,r,a,u){this.message=(e?`${e}: `:"")+a,u&&(this.identifier=u),r!=null&&r.__line__&&(this.line=r.__line__)}}function Er(n){const e=n.key,r=n.value,a=n.valueSpec||{},u=n.objectElementValidators||{},p=n.style,m=n.styleSpec;let y=[];const w=Wt(r);if(w!=="object")return[new ct(e,r,`object expected, ${w} found`)];for(const b in r){const A=b.split(".")[0];let I;u[A]?I=u[A]:a[A]?I=xi:u["*"]?I=u["*"]:a["*"]&&(I=xi),I?y=y.concat(I({key:(e&&`${e}.`)+b,value:r[b],valueSpec:a[A]||a["*"],style:p,styleSpec:m,object:r,objectKey:b},r)):y.push(new ct(e,r[b],`unknown property "${b}"`))}for(const b in a)u[b]||a[b].required&&a[b].default===void 0&&r[b]===void 0&&y.push(new ct(e,r,`missing required property "${b}"`));return y}function Gp(n){const e=n.value,r=n.valueSpec,a=n.style,u=n.styleSpec,p=n.key,m=n.arrayElementValidator||xi;if(Wt(e)!=="array")return[new ct(p,e,`array expected, ${Wt(e)} found`)];if(r.length&&e.length!==r.length)return[new ct(p,e,`array length ${r.length} expected, length ${e.length} found`)];if(r["min-length"]&&e.lengthp)return[new ct(e,r,`${r} is greater than the maximum value ${p}`)]}return[]}function _l(n){const e=n.valueSpec,r=Nn(n.value.type);let a,u,p,m={};const y=r!=="categorical"&&n.value.property===void 0,w=!y,b=Wt(n.value.stops)==="array"&&Wt(n.value.stops[0])==="array"&&Wt(n.value.stops[0][0])==="object",A=Er({key:n.key,value:n.value,valueSpec:n.styleSpec.function,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{stops:function(L){if(r==="identity")return[new ct(L.key,L.value,'identity function may not have a "stops" property')];let R=[];const B=L.value;return R=R.concat(Gp({key:L.key,value:B,valueSpec:L.valueSpec,style:L.style,styleSpec:L.styleSpec,arrayElementValidator:I})),Wt(B)==="array"&&B.length===0&&R.push(new ct(L.key,B,"array must have at least one stop")),R},default:function(L){return xi({key:L.key,value:L.value,valueSpec:e,style:L.style,styleSpec:L.styleSpec})}}});return r==="identity"&&y&&A.push(new ct(n.key,n.value,'missing required property "property"')),r==="identity"||n.value.stops||A.push(new ct(n.key,n.value,'missing required property "stops"')),r==="exponential"&&n.valueSpec.expression&&!bc(n.valueSpec)&&A.push(new ct(n.key,n.value,"exponential functions not supported")),n.styleSpec.$version>=8&&(w&&!ta(n.valueSpec)?A.push(new ct(n.key,n.value,"property functions not supported")):y&&!wc(n.valueSpec)&&A.push(new ct(n.key,n.value,"zoom functions not supported"))),r!=="categorical"&&!b||n.value.property!==void 0||A.push(new ct(n.key,n.value,'"property" property is required')),A;function I(L){let R=[];const B=L.value,V=L.key;if(Wt(B)!=="array")return[new ct(V,B,`array expected, ${Wt(B)} found`)];if(B.length!==2)return[new ct(V,B,`array length 2 expected, length ${B.length} found`)];if(b){if(Wt(B[0])!=="object")return[new ct(V,B,`object expected, ${Wt(B[0])} found`)];if(B[0].zoom===void 0)return[new ct(V,B,"object stop key must have zoom")];if(B[0].value===void 0)return[new ct(V,B,"object stop key must have value")];const K=Nn(B[0].zoom);if(typeof K!="number")return[new ct(V,B[0].zoom,"stop zoom values must be numbers")];if(p&&p>K)return[new ct(V,B[0].zoom,"stop zoom values must appear in ascending order")];K!==p&&(p=K,u=void 0,m={}),R=R.concat(Er({key:`${V}[0]`,value:B[0],valueSpec:{zoom:{}},style:L.style,styleSpec:L.styleSpec,objectElementValidators:{zoom:gl,value:k}}))}else R=R.concat(k({key:`${V}[0]`,value:B[0],valueSpec:{},style:L.style,styleSpec:L.styleSpec},B));return ia(ri(B[1]))?R.concat([new ct(`${V}[1]`,B[1],"expressions are not allowed in function stops.")]):R.concat(xi({key:`${V}[1]`,value:B[1],valueSpec:e,style:L.style,styleSpec:L.styleSpec}))}function k(L,R){const B=Wt(L.value),V=Nn(L.value),K=L.value!==null?L.value:R;if(a){if(B!==a)return[new ct(L.key,K,`${B} stop domain type must match previous stop domain type ${a}`)]}else a=B;if(B!=="number"&&B!=="string"&&B!=="boolean"&&typeof V!="number"&&typeof V!="string"&&typeof V!="boolean")return[new ct(L.key,K,"stop domain value must be a number, string, or boolean")];if(B!=="number"&&r!=="categorical"){let ie=`number expected, ${B} found`;return ta(e)&&r===void 0&&(ie+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ct(L.key,K,ie)]}return r!=="categorical"||B!=="number"||typeof V=="number"&&isFinite(V)&&Math.floor(V)===V?r!=="categorical"&&B==="number"&&typeof V=="number"&&typeof u=="number"&&u!==void 0&&Vnew ct(`${n.key}${a.key}`,n.value,a.message));const r=e.value.expression||e.value._styleExpression.expression;if(n.expressionContext==="property"&&n.propertyKey==="text-font"&&!r.outputDefined())return[new ct(n.key,n.value,`Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.`)];if(n.expressionContext==="property"&&n.propertyType==="layout"&&!co(r))return[new ct(n.key,n.value,'"feature-state" data expressions are not supported with layout properties.')];if(n.expressionContext==="filter")return yl(r,n);if(n.expressionContext&&n.expressionContext.indexOf("cluster")===0){if(!ps(r,["zoom","feature-state"]))return[new ct(n.key,n.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(n.expressionContext==="cluster-initial"&&!Ys(r))return[new ct(n.key,n.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function yl(n,e){const r=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(e.valueSpec&&e.valueSpec.expression)for(const u of e.valueSpec.expression.parameters)r.delete(u);if(r.size===0)return[];const a=[];return n instanceof ao&&r.has(n.name)?[new ct(e.key,e.value,`["${n.name}"] expression is not supported in a filter for a ${e.object.type} layer with id: ${e.object.id}`)]:(n.eachChild(u=>{a.push(...yl(u,e))}),a)}function Ic(n){const e=n.key,r=n.value,a=n.valueSpec,u=[];return Array.isArray(a.values)?a.values.indexOf(Nn(r))===-1&&u.push(new ct(e,r,`expected one of [${a.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(a.values).indexOf(Nn(r))===-1&&u.push(new ct(e,r,`expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(r)} found`)),u}function wh(n){if(n===!0||n===!1)return!0;if(!Array.isArray(n)||n.length===0)return!1;switch(n[0]){case"has":return n.length>=2&&n[1]!=="$id"&&n[1]!=="$type";case"in":return n.length>=3&&(typeof n[1]!="string"||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return n.length!==3||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const e of n.slice(1))if(!wh(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}function Mc(n,e="fill"){if(n==null)return{filter:()=>!0,needGeometry:!1,needFeature:!1};wh(n)||(n=sa(n));const r=n;let a=!0;try{a=function(b){if(!oa(b))return b;let A=ri(b);return kc(A),A=$p(A),A}(r)}catch{console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. +This is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md +and paste the contents of this message in the report. +Thank you! +Filter Expression: +${JSON.stringify(r,null,2)} + `)}const u=Le[`filter_${e}`],p=ra(a,u);let m=null;if(p.result==="error")throw new Error(p.value.map(b=>`${b.key}: ${b.message}`).join(", "));m=(b,A,I)=>p.value.evaluate(b,A,{},I);let y=null,w=null;if(a!==r){const b=ra(r,u);if(b.result==="error")throw new Error(b.value.map(A=>`${A.key}: ${A.message}`).join(", "));y=(A,I,k,L,R)=>b.value.evaluate(A,I,{},k,void 0,void 0,L,R),w=!Ys(b.value.expression)}return{filter:m,dynamicFilter:y||void 0,needGeometry:qp(a),needFeature:!!w}}function $p(n){if(!Array.isArray(n))return n;const e=function(r){if(bh.has(r[0])){for(let a=1;a$p(r))}function kc(n){let e=!1;const r=[];if(n[0]==="case"){for(let a=1;a",">=","<","<=","to-boolean"]);function Yg(n,e){return ne?1:0}function qp(n){if(!Array.isArray(n))return!1;if(n[0]==="within")return!0;for(let e=1;e"||e==="<="||e===">="?Eh(n[1],n[2],e):e==="any"?(r=n.slice(1),["any"].concat(r.map(sa))):e==="all"?["all"].concat(n.slice(1).map(sa)):e==="none"?["all"].concat(n.slice(1).map(sa).map(Pc)):e==="in"?Th(n[1],n.slice(2)):e==="!in"?Pc(Th(n[1],n.slice(2))):e==="has"?Sh(n[1]):e==="!has"?Pc(Sh(n[1])):e!=="within"||n;var r}function Eh(n,e,r){switch(n){case"$type":return[`filter-type-${r}`,e];case"$id":return[`filter-id-${r}`,e];default:return[`filter-${r}`,n,e]}}function Th(n,e){if(e.length===0)return!1;switch(n){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(r=>typeof r!=typeof e[0])?["filter-in-large",n,["literal",e.sort(Yg)]]:["filter-in-small",n,["literal",e]]}}function Sh(n){switch(n){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",n]}}function Pc(n){return["!",n]}function vl(n){return wh(ri(n.value))?oi(ro({},n,{expressionContext:"filter",valueSpec:n.styleSpec[`filter_${n.layerType||"fill"}`]})):xl(n)}function xl(n){const e=n.value,r=n.key;if(Wt(e)!=="array")return[new ct(r,e,`array expected, ${Wt(e)} found`)];const a=n.styleSpec;let u,p=[];if(e.length<1)return[new ct(r,e,"filter array must have at least 1 element")];switch(p=p.concat(Ic({key:`${r}[0]`,value:e[0],valueSpec:a.filter_operator,style:n.style,styleSpec:n.styleSpec})),Nn(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Nn(e[1])==="$type"&&p.push(new ct(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&p.push(new ct(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(u=Wt(e[1]),u!=="string"&&p.push(new ct(`${r}[1]`,e[1],`string expected, ${u} found`)));for(let m=2;m{b in r&&e.push(new ct(a,r[b],`"${b}" is prohibited for ref layers`))}),u.layers.forEach(b=>{Nn(b.id)===y&&(w=b)}),w?w.ref?e.push(new ct(a,r.ref,"ref cannot reference another ref layer")):m=Nn(w.type):typeof y=="string"&&e.push(new ct(a,r.ref,`ref layer "${y}" not found`))}else if(m!=="background"&&m!=="sky")if(r.source){const w=u.sources&&u.sources[r.source],b=w&&Nn(w.type);w?b==="vector"&&m==="raster"?e.push(new ct(a,r.source,`layer "${r.id}" requires a raster source`)):b==="raster"&&m!=="raster"?e.push(new ct(a,r.source,`layer "${r.id}" requires a vector source`)):b!=="vector"||r["source-layer"]?b==="raster-dem"&&m!=="hillshade"?e.push(new ct(a,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):m!=="line"||!r.paint||!r.paint["line-gradient"]&&!r.paint["line-trim-offset"]||b==="geojson"&&w.lineMetrics||e.push(new ct(a,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new ct(a,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new ct(a,r.source,`source "${r.source}" not found`))}else e.push(new ct(a,r,'missing required property "source"'));return e=e.concat(Er({key:a,value:r,valueSpec:p.layer,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{"*":()=>[],type:()=>xi({key:`${a}.type`,value:r.type,valueSpec:p.layer.type,style:n.style,styleSpec:n.styleSpec,object:r,objectKey:"type"}),filter:w=>vl(ro({layerType:m},w)),layout:w=>Er({layer:r,key:w.key,value:w.value,valueSpec:{},style:w.style,styleSpec:w.styleSpec,objectElementValidators:{"*":b=>Ch(ro({layerType:m},b))}}),paint:w=>Er({layer:r,key:w.key,value:w.value,valueSpec:{},style:w.style,styleSpec:w.styleSpec,objectElementValidators:{"*":b=>Zp(ro({layerType:m},b))}})}})),e}function Uo(n){const e=n.value,r=n.key,a=Wt(e);return a!=="string"?[new ct(r,e,`string expected, ${a} found`)]:[]}const Hp={promoteId:function({key:n,value:e}){if(Wt(e)==="string")return Uo({key:n,value:e});{const r=[];for(const a in e)r.push(...Uo({key:`${n}.${a}`,value:e[a]}));return r}}};function Xp(n){const e=n.value,r=n.key,a=n.styleSpec,u=n.style;if(!e.type)return[new ct(r,e,'"type" is required')];const p=Nn(e.type);let m;switch(p){case"vector":case"raster":case"raster-dem":return m=Er({key:r,value:e,valueSpec:a[`source_${p.replace("-","_")}`],style:n.style,styleSpec:a,objectElementValidators:Hp}),m;case"geojson":if(m=Er({key:r,value:e,valueSpec:a.source_geojson,style:u,styleSpec:a,objectElementValidators:Hp}),e.cluster)for(const y in e.clusterProperties){const[w,b]=e.clusterProperties[y],A=typeof w=="string"?[w,["accumulated"],["get",y]]:w;m.push(...oi({key:`${r}.${y}.map`,value:b,expressionContext:"cluster-map"})),m.push(...oi({key:`${r}.${y}.reduce`,value:A,expressionContext:"cluster-reduce"}))}return m;case"video":return Er({key:r,value:e,valueSpec:a.source_video,style:u,styleSpec:a});case"image":return Er({key:r,value:e,valueSpec:a.source_image,style:u,styleSpec:a});case"canvas":return[new ct(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Ic({key:`${r}.type`,value:e.type,valueSpec:{values:Jg(a)},style:u,styleSpec:a})}}function Jg(n){return n.source.reduce((e,r)=>{const a=n[r];return a.type.type==="enum"&&(e=e.concat(Object.keys(a.type.values))),e},[])}function Kp(n){const e=n.value,r=n.styleSpec,a=r.light,u=n.style;let p=[];const m=Wt(e);if(e===void 0)return p;if(m!=="object")return p=p.concat([new ct("light",e,`object expected, ${m} found`)]),p;for(const y in e){const w=y.match(/^(.*)-transition$/);p=p.concat(w&&a[w[1]]&&a[w[1]].transition?xi({key:y,value:e[y],valueSpec:r.transition,style:u,styleSpec:r}):a[y]?xi({key:y,value:e[y],valueSpec:a[y],style:u,styleSpec:r}):[new ct(y,e[y],`unknown property "${y}"`)])}return p}function Ih(n){const e=n.value,r=n.key,a=n.style,u=n.styleSpec,p=u.terrain;let m=[];const y=Wt(e);if(e===void 0)return m;if(y!=="object")return m=m.concat([new ct("terrain",e,`object expected, ${y} found`)]),m;for(const w in e){const b=w.match(/^(.*)-transition$/);m=m.concat(b&&p[b[1]]&&p[b[1]].transition?xi({key:w,value:e[w],valueSpec:u.transition,style:a,styleSpec:u}):p[w]?xi({key:w,value:e[w],valueSpec:p[w],style:a,styleSpec:u}):[new ct(w,e[w],`unknown property "${w}"`)])}if(e.source){const w=a.sources&&a.sources[e.source],b=w&&Nn(w.type);w?b!=="raster-dem"&&m.push(new ct(r,e.source,`terrain cannot be used with a source of type ${String(b)}, it only be used with a "raster-dem" source type`)):m.push(new ct(r,e.source,`source "${e.source}" not found`))}else m.push(new ct(r,e,'terrain is missing required property "source"'));return m}function Yp(n){const e=n.value,r=n.style,a=n.styleSpec,u=a.fog;let p=[];const m=Wt(e);if(e===void 0)return p;if(m!=="object")return p=p.concat([new ct("fog",e,`object expected, ${m} found`)]),p;for(const y in e){const w=y.match(/^(.*)-transition$/);p=p.concat(w&&u[w[1]]&&u[w[1]].transition?xi({key:y,value:e[y],valueSpec:a.transition,style:r,styleSpec:a}):u[y]?xi({key:y,value:e[y],valueSpec:u[y],style:r,styleSpec:a}):[new ct(y,e[y],`unknown property "${y}"`)])}return p}const Jp={"*":()=>[],array:Gp,boolean:function(n){const e=n.value,r=n.key,a=Wt(e);return a!=="boolean"?[new ct(r,e,`boolean expected, ${a} found`)]:[]},number:gl,color:function(n){const e=n.key,r=n.value,a=Wt(r);return a!=="string"?[new ct(e,r,`color expected, ${a} found`)]:Zu(r)===null?[new ct(e,r,`color expected, "${r}" found`)]:[]},enum:Ic,filter:vl,function:_l,layer:Wp,object:Er,source:Xp,light:Kp,terrain:Ih,fog:Yp,string:Uo,formatted:function(n){return Uo(n).length===0?[]:oi(n)},resolvedImage:function(n){return Uo(n).length===0?[]:oi(n)},projection:function(n){const e=n.value,r=n.styleSpec,a=r.projection,u=n.style;let p=[];const m=Wt(e);if(m==="object")for(const y in e)p=p.concat(xi({key:y,value:e[y],valueSpec:a[y],style:u,styleSpec:r}));else m!=="string"&&(p=p.concat([new ct("projection",e,`object or string expected, ${m} found`)]));return p}};function xi(n){const e=n.value,r=n.valueSpec,a=n.styleSpec;return r.expression&&pl(Nn(e))?_l(n):r.expression&&ia(ri(e))?oi(n):r.type&&Jp[r.type]?Jp[r.type](n):Er(ro({},n,{valueSpec:r.type?a[r.type]:r}))}function Qg(n){const e=n.value,r=n.key,a=Uo(n);return a.length||(e.indexOf("{fontstack}")===-1&&a.push(new ct(r,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new ct(r,e,'"glyphs" url must include a "{range}" token'))),a}function Qp(n,e=Le){return ar(xi({key:"",value:n,valueSpec:e.$root,styleSpec:e,style:n,objectElementValidators:{glyphs:Qg,"*":()=>[]}}))}const e_=n=>ar(Zp(n)),t_=n=>ar(Ch(n));function ar(n){return n.slice().sort((e,r)=>e.line&&r.line?e.line-r.line:0)}function ef(n,e){let r=!1;if(e&&e.length)for(const a of e)n.fire(new io(new Error(a.message))),r=!0;return r}var n_=Gr,Tr=3;function Gr(n,e,r){var a=this.cells=[];if(n instanceof ArrayBuffer){this.arrayBuffer=n;var u=new Int32Array(this.arrayBuffer);n=u[0],this.d=(e=u[1])+2*(r=u[2]);for(var p=0;p=A[L+0]&&a>=A[L+1])?(m[k]=!0,p.push(b[k])):m[k]=!1}}},Gr.prototype._forEachCell=function(n,e,r,a,u,p,m,y){for(var w=this._convertToCellCoord(n),b=this._convertToCellCoord(e),A=this._convertToCellCoord(r),I=this._convertToCellCoord(a),k=w;k<=A;k++)for(var L=b;L<=I;L++){var R=this.d*L+k;if((!y||y(this._convertFromCellCoord(k),this._convertFromCellCoord(L),this._convertFromCellCoord(k+1),this._convertFromCellCoord(L+1)))&&u.call(this,n,e,r,a,R,p,m,y))return}},Gr.prototype._convertFromCellCoord=function(n){return(n-this.padding)/this.scale},Gr.prototype._convertToCellCoord=function(n){return Math.max(0,Math.min(this.d-1,Math.floor(n*this.scale)+this.padding))},Gr.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var n=this.cells,e=Tr+this.cells.length+1+1,r=0,a=0;a=0||(u[p]=aa(n[p],e)));n instanceof Error&&(u.message=n.message)}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return a!=="Object"&&(u.$name=a),u}throw new Error("can't serialize object of type "+typeof n)}function _s(n){if(n==null||typeof n=="boolean"||typeof n=="number"||typeof n=="string"||n instanceof Boolean||n instanceof Number||n instanceof String||n instanceof Date||n instanceof RegExp||Mh(n)||kh(n)||ArrayBuffer.isView(n)||n instanceof M.ImageData)return n;if(Array.isArray(n))return n.map(_s);if(typeof n=="object"){const e=n.$name||"Object",{klass:r}=zc[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(n);const a=Object.create(r.prototype);for(const u of Object.keys(n))u!=="$name"&&(a[u]=_s(n[u]));return a}throw new Error("can't deserialize object of type "+typeof n)}const st={"Latin-1 Supplement":n=>n>=128&&n<=255,Arabic:n=>n>=1536&&n<=1791,"Arabic Supplement":n=>n>=1872&&n<=1919,"Arabic Extended-A":n=>n>=2208&&n<=2303,"Hangul Jamo":n=>n>=4352&&n<=4607,"Unified Canadian Aboriginal Syllabics":n=>n>=5120&&n<=5759,Khmer:n=>n>=6016&&n<=6143,"Unified Canadian Aboriginal Syllabics Extended":n=>n>=6320&&n<=6399,"General Punctuation":n=>n>=8192&&n<=8303,"Letterlike Symbols":n=>n>=8448&&n<=8527,"Number Forms":n=>n>=8528&&n<=8591,"Miscellaneous Technical":n=>n>=8960&&n<=9215,"Control Pictures":n=>n>=9216&&n<=9279,"Optical Character Recognition":n=>n>=9280&&n<=9311,"Enclosed Alphanumerics":n=>n>=9312&&n<=9471,"Geometric Shapes":n=>n>=9632&&n<=9727,"Miscellaneous Symbols":n=>n>=9728&&n<=9983,"Miscellaneous Symbols and Arrows":n=>n>=11008&&n<=11263,"CJK Radicals Supplement":n=>n>=11904&&n<=12031,"Kangxi Radicals":n=>n>=12032&&n<=12255,"Ideographic Description Characters":n=>n>=12272&&n<=12287,"CJK Symbols and Punctuation":n=>n>=12288&&n<=12351,Hiragana:n=>n>=12352&&n<=12447,Katakana:n=>n>=12448&&n<=12543,Bopomofo:n=>n>=12544&&n<=12591,"Hangul Compatibility Jamo":n=>n>=12592&&n<=12687,Kanbun:n=>n>=12688&&n<=12703,"Bopomofo Extended":n=>n>=12704&&n<=12735,"CJK Strokes":n=>n>=12736&&n<=12783,"Katakana Phonetic Extensions":n=>n>=12784&&n<=12799,"Enclosed CJK Letters and Months":n=>n>=12800&&n<=13055,"CJK Compatibility":n=>n>=13056&&n<=13311,"CJK Unified Ideographs Extension A":n=>n>=13312&&n<=19903,"Yijing Hexagram Symbols":n=>n>=19904&&n<=19967,"CJK Unified Ideographs":n=>n>=19968&&n<=40959,"Yi Syllables":n=>n>=40960&&n<=42127,"Yi Radicals":n=>n>=42128&&n<=42191,"Hangul Jamo Extended-A":n=>n>=43360&&n<=43391,"Hangul Syllables":n=>n>=44032&&n<=55215,"Hangul Jamo Extended-B":n=>n>=55216&&n<=55295,"Private Use Area":n=>n>=57344&&n<=63743,"CJK Compatibility Ideographs":n=>n>=63744&&n<=64255,"Arabic Presentation Forms-A":n=>n>=64336&&n<=65023,"Vertical Forms":n=>n>=65040&&n<=65055,"CJK Compatibility Forms":n=>n>=65072&&n<=65103,"Small Form Variants":n=>n>=65104&&n<=65135,"Arabic Presentation Forms-B":n=>n>=65136&&n<=65279,"Halfwidth and Fullwidth Forms":n=>n>=65280&&n<=65519};function Ph(n){for(const e of n)if(zh(e.charCodeAt(0)))return!0;return!1}function i_(n){for(const e of n)if(!tf(e.charCodeAt(0)))return!1;return!0}function tf(n){return!(st.Arabic(n)||st["Arabic Supplement"](n)||st["Arabic Extended-A"](n)||st["Arabic Presentation Forms-A"](n)||st["Arabic Presentation Forms-B"](n))}function zh(n){return!(n!==746&&n!==747&&(n<4352||!(st["Bopomofo Extended"](n)||st.Bopomofo(n)||st["CJK Compatibility Forms"](n)&&!(n>=65097&&n<=65103)||st["CJK Compatibility Ideographs"](n)||st["CJK Compatibility"](n)||st["CJK Radicals Supplement"](n)||st["CJK Strokes"](n)||!(!st["CJK Symbols and Punctuation"](n)||n>=12296&&n<=12305||n>=12308&&n<=12319||n===12336)||st["CJK Unified Ideographs Extension A"](n)||st["CJK Unified Ideographs"](n)||st["Enclosed CJK Letters and Months"](n)||st["Hangul Compatibility Jamo"](n)||st["Hangul Jamo Extended-A"](n)||st["Hangul Jamo Extended-B"](n)||st["Hangul Jamo"](n)||st["Hangul Syllables"](n)||st.Hiragana(n)||st["Ideographic Description Characters"](n)||st.Kanbun(n)||st["Kangxi Radicals"](n)||st["Katakana Phonetic Extensions"](n)||st.Katakana(n)&&n!==12540||!(!st["Halfwidth and Fullwidth Forms"](n)||n===65288||n===65289||n===65293||n>=65306&&n<=65310||n===65339||n===65341||n===65343||n>=65371&&n<=65503||n===65507||n>=65512&&n<=65519)||!(!st["Small Form Variants"](n)||n>=65112&&n<=65118||n>=65123&&n<=65126)||st["Unified Canadian Aboriginal Syllabics"](n)||st["Unified Canadian Aboriginal Syllabics Extended"](n)||st["Vertical Forms"](n)||st["Yijing Hexagram Symbols"](n)||st["Yi Syllables"](n)||st["Yi Radicals"](n))))}function nf(n){return!(zh(n)||function(e){return!!(st["Latin-1 Supplement"](e)&&(e===167||e===169||e===174||e===177||e===188||e===189||e===190||e===215||e===247)||st["General Punctuation"](e)&&(e===8214||e===8224||e===8225||e===8240||e===8241||e===8251||e===8252||e===8258||e===8263||e===8264||e===8265||e===8273)||st["Letterlike Symbols"](e)||st["Number Forms"](e)||st["Miscellaneous Technical"](e)&&(e>=8960&&e<=8967||e>=8972&&e<=8991||e>=8996&&e<=9e3||e===9003||e>=9085&&e<=9114||e>=9150&&e<=9165||e===9167||e>=9169&&e<=9179||e>=9186&&e<=9215)||st["Control Pictures"](e)&&e!==9251||st["Optical Character Recognition"](e)||st["Enclosed Alphanumerics"](e)||st["Geometric Shapes"](e)||st["Miscellaneous Symbols"](e)&&!(e>=9754&&e<=9759)||st["Miscellaneous Symbols and Arrows"](e)&&(e>=11026&&e<=11055||e>=11088&&e<=11097||e>=11192&&e<=11243)||st["CJK Symbols and Punctuation"](e)||st.Katakana(e)||st["Private Use Area"](e)||st["CJK Compatibility Forms"](e)||st["Small Form Variants"](e)||st["Halfwidth and Fullwidth Forms"](e)||e===8734||e===8756||e===8757||e>=9984&&e<=10087||e>=10102&&e<=10131||e===65532||e===65533)}(n))}function rf(n){return n>=1424&&n<=2303||st["Arabic Presentation Forms-A"](n)||st["Arabic Presentation Forms-B"](n)}function r_(n,e){return!(!e&&rf(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||st.Khmer(n))}function o_(n){for(const e of n)if(rf(e.charCodeAt(0)))return!0;return!1}const Lh="deferred",Rh="loading",Dh="loaded";let la=null,d="unavailable",o=null;const c=function(n){n&&typeof n=="string"&&n.indexOf("NetworkError")>-1&&(d="error"),la&&la(n)};function f(){_.fire(new cs("pluginStateChange",{pluginStatus:d,pluginURL:o}))}const _=new Ka,v=function(){return d},E=function(){if(d!==Lh||!o)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");d=Rh,f(),o&&Gs({url:o},n=>{n?c(n):(d=Dh,f())})},S={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>d===Dh||S.applyArabicShaping!=null,isLoading:()=>d===Rh,setState(n){d=n.pluginStatus,o=n.pluginURL},isParsed:()=>S.applyArabicShaping!=null&&S.processBidirectionalText!=null&&S.processStyledBidirectionalText!=null,getPluginURL:()=>o};class C{constructor(e,r){this.zoom=e,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.transition=r.transition,this.pitch=r.pitch):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0)}isSupportedScript(e){return function(r,a){for(const u of r)if(!r_(u.charCodeAt(0),a))return!1;return!0}(e,S.isLoaded())}}class z{constructor(e,r){this.property=e,this.value=r,this.expression=function(a,u){if(pl(a))return new Ac(a,u);if(ia(a)){const p=ml(a,u);if(p.result==="error")throw new Error(p.value.map(m=>`${m.key}: ${m.message}`).join(", "));return p.value}{let p=a;return typeof a=="string"&&u.type==="color"&&(p=Dn.parse(a)),{kind:"constant",evaluate:()=>p}}}(r===void 0?e.specification.default:r,e.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(e,r,a){return this.property.possiblyEvaluate(this,e,r,a)}}class P{constructor(e){this.property=e,this.value=new z(e,void 0)}transitioned(e,r){return new j(this.property,this.value,r,_n({},e.transition,this.transition),e.now)}untransitioned(){return new j(this.property,this.value,null,{},0)}}class D{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues)}getValue(e){return Ai(this._values[e].value.value)}setValue(e,r){this._values.hasOwnProperty(e)||(this._values[e]=new P(this._values[e].property)),this._values[e].value=new z(this._values[e].property,r===null?void 0:Ai(r))}getTransition(e){return Ai(this._values[e].transition)}setTransition(e,r){this._values.hasOwnProperty(e)||(this._values[e]=new P(this._values[e].property)),this._values[e].transition=Ai(r)||void 0}serialize(){const e={};for(const r of Object.keys(this._values)){const a=this.getValue(r);a!==void 0&&(e[r]=a);const u=this.getTransition(r);u!==void 0&&(e[`${r}-transition`]=u)}return e}transitioned(e,r){const a=new $(this._properties);for(const u of Object.keys(this._values))a._values[u]=this._values[u].transitioned(e,r._values[u]);return a}untransitioned(){const e=new $(this._properties);for(const r of Object.keys(this._values))e._values[r]=this._values[r].untransitioned();return e}}class j{constructor(e,r,a,u,p){const m=u.delay||0,y=u.duration||0;p=p||0,this.property=e,this.value=r,this.begin=p+m,this.end=this.begin+y,e.specification.transition&&(u.delay||u.duration)&&(this.prior=a)}possiblyEvaluate(e,r,a){const u=e.now||0,p=this.value.possiblyEvaluate(e,r,a),m=this.prior;if(m){if(u>this.end)return this.prior=null,p;if(this.value.isDataDriven())return this.prior=null,p;if(uthis.capacity){this.capacity=Math.max(e,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null}}function _e(n,e=1){let r=0,a=0;return{members:n.map(u=>{const p=pe[u.type].BYTES_PER_ELEMENT,m=r=Te(r,Math.max(e,p)),y=u.components||1;return a=Math.max(a,p),r+=p*y,{name:u.name,type:u.type,components:y,offset:m}}),size:Te(r,Math.max(a,e)),alignment:e}}function Te(n,e){return Math.ceil(n/e)*e}class Ze extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.int16[u+0]=r,this.int16[u+1]=a,e}}Ze.prototype.bytesPerElement=4,ht(Ze,"StructArrayLayout2i4");class we extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.int16[p+0]=r,this.int16[p+1]=a,this.int16[p+2]=u,e}}we.prototype.bytesPerElement=6,ht(we,"StructArrayLayout3i6");class Be extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.int16[m+0]=r,this.int16[m+1]=a,this.int16[m+2]=u,this.int16[m+3]=p,e}}Be.prototype.bytesPerElement=8,ht(Be,"StructArrayLayout4i8");class Ce extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y){const w=this.length;return this.resize(w+1),this.emplace(w,e,r,a,u,p,m,y)}emplace(e,r,a,u,p,m,y,w){const b=6*e,A=12*e,I=3*e;return this.int16[b+0]=r,this.int16[b+1]=a,this.uint8[A+4]=u,this.uint8[A+5]=p,this.uint8[A+6]=m,this.uint8[A+7]=y,this.float32[I+2]=w,e}}Ce.prototype.bytesPerElement=12,ht(Ce,"StructArrayLayout2i4ub1f12");class qe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.float32[m+0]=r,this.float32[m+1]=a,this.float32[m+2]=u,this.float32[m+3]=p,e}}qe.prototype.bytesPerElement=16,ht(qe,"StructArrayLayout4f16");class Ee extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=6*e,w=3*e;return this.uint16[y+0]=r,this.uint16[y+1]=a,this.uint16[y+2]=u,this.uint16[y+3]=p,this.float32[w+2]=m,e}}Ee.prototype.bytesPerElement=12,ht(Ee,"StructArrayLayout4ui1f12");class Oe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.uint16[m+0]=r,this.uint16[m+1]=a,this.uint16[m+2]=u,this.uint16[m+3]=p,e}}Oe.prototype.bytesPerElement=8,ht(Oe,"StructArrayLayout4ui8");class He extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,a,u,p,m)}emplace(e,r,a,u,p,m,y){const w=6*e;return this.int16[w+0]=r,this.int16[w+1]=a,this.int16[w+2]=u,this.int16[w+3]=p,this.int16[w+4]=m,this.int16[w+5]=y,e}}He.prototype.bytesPerElement=12,ht(He,"StructArrayLayout6i12");class Ge extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k){const L=this.length;return this.resize(L+1),this.emplace(L,e,r,a,u,p,m,y,w,b,A,I,k)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L){const R=12*e;return this.int16[R+0]=r,this.int16[R+1]=a,this.int16[R+2]=u,this.int16[R+3]=p,this.uint16[R+4]=m,this.uint16[R+5]=y,this.uint16[R+6]=w,this.uint16[R+7]=b,this.int16[R+8]=A,this.int16[R+9]=I,this.int16[R+10]=k,this.int16[R+11]=L,e}}Ge.prototype.bytesPerElement=24,ht(Ge,"StructArrayLayout4i4ui4i24");class Xe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,a,u,p,m)}emplace(e,r,a,u,p,m,y){const w=10*e,b=5*e;return this.int16[w+0]=r,this.int16[w+1]=a,this.int16[w+2]=u,this.float32[b+2]=p,this.float32[b+3]=m,this.float32[b+4]=y,e}}Xe.prototype.bytesPerElement=20,ht(Xe,"StructArrayLayout3i3f20");class gt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint32[1*e+0]=r,e}}gt.prototype.bytesPerElement=4,ht(gt,"StructArrayLayout1ul4");class Et extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L){const R=this.length;return this.resize(R+1),this.emplace(R,e,r,a,u,p,m,y,w,b,A,I,k,L)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=20*e,V=10*e;return this.int16[B+0]=r,this.int16[B+1]=a,this.int16[B+2]=u,this.int16[B+3]=p,this.int16[B+4]=m,this.float32[V+3]=y,this.float32[V+4]=w,this.float32[V+5]=b,this.float32[V+6]=A,this.int16[B+14]=I,this.uint32[V+8]=k,this.uint16[B+18]=L,this.uint16[B+19]=R,e}}Et.prototype.bytesPerElement=40,ht(Et,"StructArrayLayout5i4f1i1ul2ui40");class dt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y){const w=this.length;return this.resize(w+1),this.emplace(w,e,r,a,u,p,m,y)}emplace(e,r,a,u,p,m,y,w){const b=8*e;return this.int16[b+0]=r,this.int16[b+1]=a,this.int16[b+2]=u,this.int16[b+4]=p,this.int16[b+5]=m,this.int16[b+6]=y,this.int16[b+7]=w,e}}dt.prototype.bytesPerElement=16,ht(dt,"StructArrayLayout3i2i2i16");class wt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=4*e,w=8*e;return this.float32[y+0]=r,this.float32[y+1]=a,this.float32[y+2]=u,this.int16[w+6]=p,this.int16[w+7]=m,e}}wt.prototype.bytesPerElement=16,ht(wt,"StructArrayLayout2f1f2i16");class Ut extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=12*e,y=3*e;return this.uint8[m+0]=r,this.uint8[m+1]=a,this.float32[y+1]=u,this.float32[y+2]=p,e}}Ut.prototype.bytesPerElement=12,ht(Ut,"StructArrayLayout2ub2f12");class Ot extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.float32[p+0]=r,this.float32[p+1]=a,this.float32[p+2]=u,e}}Ot.prototype.bytesPerElement=12,ht(Ot,"StructArrayLayout3f12");class mt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.uint16[p+0]=r,this.uint16[p+1]=a,this.uint16[p+2]=u,e}}mt.prototype.bytesPerElement=6,ht(mt,"StructArrayLayout3ui6");class en extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae){const se=this.length;return this.resize(se+1),this.emplace(se,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se){const Se=30*e,be=15*e,Re=60*e;return this.int16[Se+0]=r,this.int16[Se+1]=a,this.int16[Se+2]=u,this.float32[be+2]=p,this.float32[be+3]=m,this.uint16[Se+8]=y,this.uint16[Se+9]=w,this.uint32[be+5]=b,this.uint32[be+6]=A,this.uint32[be+7]=I,this.uint16[Se+16]=k,this.uint16[Se+17]=L,this.uint16[Se+18]=R,this.float32[be+10]=B,this.float32[be+11]=V,this.uint8[Re+48]=K,this.uint8[Re+49]=ie,this.uint8[Re+50]=Y,this.uint32[be+13]=te,this.int16[Se+28]=ae,this.uint8[Re+58]=se,e}}en.prototype.bytesPerElement=60,ht(en,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");class rn extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e){const Je=this.length;return this.resize(Je+1),this.emplace(Je,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e,Je){const Pe=38*e,rt=19*e;return this.int16[Pe+0]=r,this.int16[Pe+1]=a,this.int16[Pe+2]=u,this.float32[rt+2]=p,this.float32[rt+3]=m,this.int16[Pe+8]=y,this.int16[Pe+9]=w,this.int16[Pe+10]=b,this.int16[Pe+11]=A,this.int16[Pe+12]=I,this.int16[Pe+13]=k,this.uint16[Pe+14]=L,this.uint16[Pe+15]=R,this.uint16[Pe+16]=B,this.uint16[Pe+17]=V,this.uint16[Pe+18]=K,this.uint16[Pe+19]=ie,this.uint16[Pe+20]=Y,this.uint16[Pe+21]=te,this.uint16[Pe+22]=ae,this.uint16[Pe+23]=se,this.uint16[Pe+24]=Se,this.uint16[Pe+25]=be,this.uint16[Pe+26]=Re,this.uint16[Pe+27]=We,this.uint16[Pe+28]=Ie,this.uint32[rt+15]=Ne,this.float32[rt+16]=Ue,this.float32[rt+17]=$e,this.float32[rt+18]=Je,e}}rn.prototype.bytesPerElement=76,ht(rn,"StructArrayLayout3i2f6i15ui1ul3f76");class on extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.float32[1*e+0]=r,e}}on.prototype.bytesPerElement=4,ht(on,"StructArrayLayout1f4");class sn extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=5*e;return this.float32[y+0]=r,this.float32[y+1]=a,this.float32[y+2]=u,this.float32[y+3]=p,this.float32[y+4]=m,e}}sn.prototype.bytesPerElement=20,ht(sn,"StructArrayLayout5f20");class wi extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=6*e;return this.uint32[3*e+0]=r,this.uint16[m+2]=a,this.uint16[m+3]=u,this.uint16[m+4]=p,e}}wi.prototype.bytesPerElement=12,ht(wi,"StructArrayLayout1ul3ui12");class si extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.uint16[u+0]=r,this.uint16[u+1]=a,e}}si.prototype.bytesPerElement=4,ht(si,"StructArrayLayout2ui4");class lr extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint16[1*e+0]=r,e}}lr.prototype.bytesPerElement=2,ht(lr,"StructArrayLayout1ui2");class $r extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.float32[u+0]=r,this.float32[u+1]=a,e}}$r.prototype.bytesPerElement=8,ht($r,"StructArrayLayout2f8");class Tn extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}Tn.prototype.size=40;class an extends Et{get(e){return new Tn(this,e)}}ht(an,"CollisionBoxArray");class Xt extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(e){this._structArray.uint8[this._pos1+49]=e}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(e){this._structArray.uint8[this._pos1+50]=e}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(e){this._structArray.uint32[this._pos4+13]=e}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(e){this._structArray.uint8[this._pos1+58]=e}}Xt.prototype.size=60;class Un extends en{get(e){return new Xt(this,e)}}ht(Un,"PlacedSymbolArray");class Ii extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(e){this._structArray.uint32[this._pos4+15]=e}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}Ii.prototype.size=76;class wn extends rn{get(e){return new Ii(this,e)}}ht(wn,"SymbolInstanceArray");class Oi extends on{getoffsetX(e){return this.float32[1*e+0]}}ht(Oi,"GlyphOffsetArray");class Lc extends Ze{getx(e){return this.int16[2*e+0]}gety(e){return this.int16[2*e+1]}}ht(Lc,"SymbolLineVertexArray");class ys extends de{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}ys.prototype.size=12;class wl extends wi{get(e){return new ys(this,e)}}ht(wl,"FeatureIndexArray");class po extends si{geta_centroid_pos0(e){return this.uint16[2*e+0]}geta_centroid_pos1(e){return this.uint16[2*e+1]}}ht(po,"FillExtrusionCentroidArray");const jo=_e([{name:"a_pattern",components:4,type:"Uint16"},{name:"a_pixel_ratio",components:1,type:"Float32"}]),vs=_e([{name:"a_dash",components:4,type:"Uint16"}]);var Rc={exports:{}},bl={exports:{}};bl.exports=function(n,e){var r,a,u,p,m,y,w,b;for(a=n.length-(r=3&n.length),u=e,m=3432918353,y=461845907,b=0;b>>16)*m&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295)<<13|u>>>19))+((5*(u>>>16)&65535)<<16)&4294967295))+((58964+(p>>>16)&65535)<<16);switch(w=0,r){case 3:w^=(255&n.charCodeAt(b+2))<<16;case 2:w^=(255&n.charCodeAt(b+1))<<8;case 1:u^=w=(65535&(w=(w=(65535&(w^=255&n.charCodeAt(b)))*m+(((w>>>16)*m&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295}return u^=n.length,u=2246822507*(65535&(u^=u>>>16))+((2246822507*(u>>>16)&65535)<<16)&4294967295,u=3266489909*(65535&(u^=u>>>13))+((3266489909*(u>>>16)&65535)<<16)&4294967295,(u^=u>>>16)>>>0};var Oh=bl.exports,bx={exports:{}};bx.exports=function(n,e){for(var r,a=n.length,u=e^a,p=0;a>=4;)r=1540483477*(65535&(r=255&n.charCodeAt(p)|(255&n.charCodeAt(++p))<<8|(255&n.charCodeAt(++p))<<16|(255&n.charCodeAt(++p))<<24))+((1540483477*(r>>>16)&65535)<<16),u=1540483477*(65535&u)+((1540483477*(u>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),a-=4,++p;switch(a){case 3:u^=(255&n.charCodeAt(p+2))<<16;case 2:u^=(255&n.charCodeAt(p+1))<<8;case 1:u=1540483477*(65535&(u^=255&n.charCodeAt(p)))+((1540483477*(u>>>16)&65535)<<16)}return u=1540483477*(65535&(u^=u>>>13))+((1540483477*(u>>>16)&65535)<<16),(u^=u>>>15)>>>0};var Ex=Oh,JA=bx.exports;Rc.exports=Ex,Rc.exports.murmur3=Ex,Rc.exports.murmur2=JA;var s_=le(Rc.exports);class of{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,r,a,u){this.ids.push(Tx(e)),this.positions.push(r,a,u)}getPositions(e){const r=Tx(e);let a=0,u=this.ids.length-1;for(;a>1;this.ids[m]>=r?u=m:a=m+1}const p=[];for(;this.ids[a]===r;)p.push({index:this.positions[3*a],start:this.positions[3*a+1],end:this.positions[3*a+2]}),a++;return p}static serialize(e,r){const a=new Float64Array(e.ids),u=new Uint32Array(e.positions);return a_(a,u,0,a.length-1),r&&r.push(a.buffer,u.buffer),{ids:a,positions:u}}static deserialize(e){const r=new of;return r.ids=e.ids,r.positions=e.positions,r.indexed=!0,r}}function Tx(n){const e=+n;return!isNaN(e)&&Number.MIN_SAFE_INTEGER<=e&&e<=Number.MAX_SAFE_INTEGER?e:s_(String(n))}function a_(n,e,r,a){for(;r>1];let p=r-1,m=a+1;for(;;){do p++;while(n[p]u);if(p>=m)break;sf(n,p,m),sf(e,3*p,3*m),sf(e,3*p+1,3*m+1),sf(e,3*p+2,3*m+2)}m-r`u_${u}`),this.type=a}setUniform(e,r,a,u,p){r.set(e,p,u.constantOr(this.value))}getBinding(e,r){return this.type==="color"?new Ax(e):new af(e)}}class Dc{constructor(e,r){this.uniformNames=r.map(a=>`u_${a}`),this.pattern=null,this.pixelRatio=1}setConstantPatternPositions(e){this.pixelRatio=e.pixelRatio||1,this.pattern=e.tl.concat(e.br)}setUniform(e,r,a,u,p){const m=p==="u_pattern"||p==="u_dash"?this.pattern:p==="u_pixel_ratio"?this.pixelRatio:null;m&&r.set(e,p,m)}getBinding(e,r){return r==="u_pattern"||r==="u_dash"?new Sx(e):new af(e)}}class ws{constructor(e,r,a,u){this.expression=e,this.type=a,this.maxValue=0,this.paintVertexAttributes=r.map(p=>({name:`a_${p}`,type:"Float32",components:a==="color"?2:1,offset:0})),this.paintVertexArray=new u}populatePaintArray(e,r,a,u,p,m){const y=this.paintVertexArray.length,w=this.expression.evaluate(new C(0),r,{},p,u,m);this.paintVertexArray.resize(e),this._setPaintValue(y,e,w)}updatePaintArray(e,r,a,u,p){const m=this.expression.evaluate({zoom:0},a,u,void 0,p);this._setPaintValue(e,r,m)}_setPaintValue(e,r,a){if(this.type==="color"){const u=l_(a);for(let p=e;p`u_${y}_t`),this.type=a,this.useIntegerZoom=u,this.zoom=p,this.maxValue=0,this.paintVertexAttributes=r.map(y=>({name:`a_${y}`,type:"Float32",components:a==="color"?4:2,offset:0})),this.paintVertexArray=new m}populatePaintArray(e,r,a,u,p,m){const y=this.expression.evaluate(new C(this.zoom),r,{},p,u,m),w=this.expression.evaluate(new C(this.zoom+1),r,{},p,u,m),b=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(b,e,y,w)}updatePaintArray(e,r,a,u,p){const m=this.expression.evaluate({zoom:this.zoom},a,u,void 0,p),y=this.expression.evaluate({zoom:this.zoom+1},a,u,void 0,p);this._setPaintValue(e,r,m,y)}_setPaintValue(e,r,a,u){if(this.type==="color"){const p=l_(a),m=l_(u);for(let y=e;y!0){this.binders={},this._buffers=[];const u=[];for(const p in e.paint._values){if(!a(p))continue;const m=e.paint.get(p);if(!(m instanceof Z&&ta(m.property.specification)))continue;const y=iC(p,e.type),w=m.value,b=m.property.specification.type,A=!!m.property.useIntegerZoom,I=p==="line-dasharray"||p.endsWith("pattern"),k=p==="line-dasharray"&&e.layout.get("line-cap").value.kind!=="constant";if(w.kind!=="constant"||k)if(w.kind==="source"||k||I){const L=Cx(p,b,"source");this.binders[p]=I?new ca(w,y,b,L,e.id):new ws(w,y,b,L),u.push(`/a_${p}`)}else{const L=Cx(p,b,"composite");this.binders[p]=new fo(w,y,b,A,r,L),u.push(`/z_${p}`)}else this.binders[p]=I?new Dc(w.value,y):new Bh(w.value,y,b),u.push(`/u_${p}`)}this.cacheKey=u.sort().join("")}getMaxValue(e){const r=this.binders[e];return r instanceof ws||r instanceof fo?r.maxValue:0}populatePaintArrays(e,r,a,u,p,m){for(const y in this.binders){const w=this.binders[y];(w instanceof ws||w instanceof fo||w instanceof ca)&&w.populatePaintArray(e,r,a,u,p,m)}}setConstantPatternPositions(e){for(const r in this.binders){const a=this.binders[r];a instanceof Dc&&a.setConstantPatternPositions(e)}}updatePaintArrays(e,r,a,u,p,m){let y=!1;for(const w in e){const b=r.getPositions(w);for(const A of b){const I=a.feature(A.index);for(const k in this.binders){const L=this.binders[k];if((L instanceof ws||L instanceof fo||L instanceof ca)&&L.expression.isStateDependent===!0){const R=u.paint.get(k);L.expression=R.value,L.updatePaintArray(A.start,A.end,I,e[w],p,m),y=!0}}}}return y}defines(){const e=[];for(const r in this.binders){const a=this.binders[r];(a instanceof Bh||a instanceof Dc)&&e.push(...a.uniformNames.map(u=>`#define HAS_UNIFORM_${u}`))}return e}getBinderAttributes(){const e=[];for(const r in this.binders){const a=this.binders[r];if(a instanceof ws||a instanceof fo||a instanceof ca)for(let u=0;u!0){this.programConfigurations={};for(const u of e)this.programConfigurations[u.id]=new ua(u,r,a);this.needsUpload=!1,this._featureMap=new of,this._bufferOffset=0}populatePaintArrays(e,r,a,u,p,m,y){for(const w in this.programConfigurations)this.programConfigurations[w].populatePaintArrays(e,r,u,p,m,y);r.id!==void 0&&this._featureMap.add(r.id,a,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,r,a,u,p){for(const m of a)this.needsUpload=this.programConfigurations[m.id].updatePaintArrays(e,this._featureMap,r,m,u,p)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(e);this.needsUpload=!1}}destroy(){for(const e in this.programConfigurations)this.programConfigurations[e].destroy()}}const nC={"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-pattern":["pattern","pixel_ratio"],"fill-pattern":["pattern","pixel_ratio"],"fill-extrusion-pattern":["pattern","pixel_ratio"],"line-dasharray":["dash"]};function iC(n,e){return nC[n]||[n.replace(`${e}-`,"").replace(/-/g,"_")]}const rC={"line-pattern":{source:Ee,composite:Ee},"fill-pattern":{source:Ee,composite:Ee},"fill-extrusion-pattern":{source:Ee,composite:Ee},"line-dasharray":{source:Oe,composite:Oe}},oC={color:{source:$r,composite:qe},number:{source:on,composite:$r}};function Cx(n,e,r){const a=rC[n];return a&&a[r]||oC[e][r]}ht(Bh,"ConstantBinder"),ht(Dc,"PatternConstantBinder"),ht(ws,"SourceExpressionBinder"),ht(ca,"PatternCompositeBinder"),ht(fo,"CompositeExpressionBinder"),ht(ua,"ProgramConfiguration",{omit:["_buffers"]}),ht(El,"ProgramConfigurationSet");const Ix="-transition";class mo extends Ka{constructor(e,r){if(super(),this.id=e.id,this.type=e.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,e.type!=="custom"&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!=="background"&&e.type!=="sky"&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new W(r.layout)),r.paint)){this._transitionablePaint=new D(r.paint);for(const a in e.paint)this.setPaintProperty(a,e.paint[a],{validate:!1});for(const a in e.layout)this.setLayoutProperty(a,e.layout[a],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new H(r.paint)}}getLayoutProperty(e){return e==="visibility"?this.visibility:this._unevaluatedLayout.getValue(e)}setLayoutProperty(e,r,a={}){r!=null&&this._validate(t_,`layers.${this.id}.layout.${e}`,e,r,a)||(e!=="visibility"?this._unevaluatedLayout.setValue(e,r):this.visibility=r)}getPaintProperty(e){return yn(e,Ix)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,r,a={}){if(r!=null&&this._validate(e_,`layers.${this.id}.paint.${e}`,e,r,a))return!1;if(yn(e,Ix))return this._transitionablePaint.setTransition(e.slice(0,-11),r||void 0),!1;{const u=this._transitionablePaint._values[e],p=u.value.isDataDriven(),m=u.value;this._transitionablePaint.setValue(e,r),this._handleSpecialPaintPropertyUpdate(e);const y=this._transitionablePaint._values[e].value,w=y.isDataDriven(),b=yn(e,"pattern")||e==="line-dasharray";return w||p||b||this._handleOverridablePaintPropertyUpdate(e,m,y)}}_handleSpecialPaintPropertyUpdate(e){}getProgramIds(){return null}getProgramConfiguration(e){return null}_handleOverridablePaintPropertyUpdate(e,r,a){return!1}isHidden(e){return!!(this.minzoom&&e=this.maxzoom)||this.visibility==="none"}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(e,r){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,r)}serialize(){const 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&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(e.layout=e.layout||{},e.layout.visibility=this.visibility),Ro(e,(r,a)=>!(r===void 0||a==="layout"&&!Object.keys(r).length||a==="paint"&&!Object.keys(r).length))}_validate(e,r,a,u,p={}){return(!p||p.validate!==!1)&&ef(this,e.call(Qp,{key:r,layerType:this.type,objectKey:a,value:u,styleSpec:Le,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const e in this.paint._values){const r=this.paint.get(e);if(r instanceof Z&&ta(r.property.specification)&&(r.value.kind==="source"||r.value.kind==="composite")&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=Mc(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const sC=_e([{name:"a_pos",components:2,type:"Int16"}],4),aC=_e([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);class jn{constructor(e=[]){this.segments=e}prepareSegment(e,r,a,u){let p=this.segments[this.segments.length-1];return e>jn.MAX_VERTEX_ARRAY_LENGTH&&vn(`Max vertices per segment is ${jn.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}`),(!p||p.vertexLength+e>jn.MAX_VERTEX_ARRAY_LENGTH||p.sortKey!==u)&&(p={vertexOffset:r.length,primitiveOffset:a.length,vertexLength:0,primitiveLength:0},u!==void 0&&(p.sortKey=u),this.segments.push(p)),p}get(){return this.segments}destroy(){for(const e of this.segments)for(const r in e.vaos)e.vaos[r].destroy()}static simpleSegment(e,r,a,u){return new jn([{vertexOffset:e,primitiveOffset:r,vertexLength:a,primitiveLength:u,vaos:{},sortKey:0}])}}jn.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,ht(jn,"SegmentVector");var vt=8192;class ha{constructor(e,r){e&&(r?this.setSouthWest(e).setNorthEast(r):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 ln?new ln(e.lng,e.lat):ln.convert(e),this}setSouthWest(e){return this._sw=e instanceof ln?new ln(e.lng,e.lat):ln.convert(e),this}extend(e){const r=this._sw,a=this._ne;let u,p;if(e instanceof ln)u=e,p=e;else{if(!(e instanceof ha))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(ha.convert(e)):this.extend(ln.convert(e)):typeof e=="object"&&e!==null&&e.hasOwnProperty("lat")&&(e.hasOwnProperty("lon")||e.hasOwnProperty("lng"))?this.extend(ln.convert(e)):this;if(u=e._sw,p=e._ne,!u||!p)return this}return r||a?(r.lng=Math.min(u.lng,r.lng),r.lat=Math.min(u.lat,r.lat),a.lng=Math.max(p.lng,a.lng),a.lat=Math.max(p.lat,a.lat)):(this._sw=new ln(u.lng,u.lat),this._ne=new ln(p.lng,p.lat)),this}getCenter(){return new ln((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 ln(this.getWest(),this.getNorth())}getSouthEast(){return new ln(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){const{lng:r,lat:a}=ln.convert(e);let u=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(u=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=a&&a<=this._ne.lat&&u}static convert(e){return!e||e instanceof ha?e:new ha(e)}}var lf=1e-6,cr=typeof Float32Array<"u"?Float32Array:Array;function Mx(){var n=new cr(9);return cr!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function kx(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=r[0],L=r[1],R=r[2],B=r[3],V=r[4],K=r[5],ie=r[6],Y=r[7],te=r[8];return n[0]=k*a+L*m+R*b,n[1]=k*u+L*y+R*A,n[2]=k*p+L*w+R*I,n[3]=B*a+V*m+K*b,n[4]=B*u+V*y+K*A,n[5]=B*p+V*w+K*I,n[6]=ie*a+Y*m+te*b,n[7]=ie*u+Y*y+te*A,n[8]=ie*p+Y*w+te*I,n}function go(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function c_(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=e[4],y=e[5],w=e[6],b=e[7],A=e[8],I=e[9],k=e[10],L=e[11],R=e[12],B=e[13],V=e[14],K=e[15],ie=r*y-a*m,Y=r*w-u*m,te=r*b-p*m,ae=a*w-u*y,se=a*b-p*y,Se=u*b-p*w,be=A*B-I*R,Re=A*V-k*R,We=A*K-L*R,Ie=I*V-k*B,Ne=I*K-L*B,Ue=k*K-L*V,$e=ie*Ue-Y*Ne+te*Ie+ae*We-se*Re+Se*be;return $e?(n[0]=(y*Ue-w*Ne+b*Ie)*($e=1/$e),n[1]=(u*Ne-a*Ue-p*Ie)*$e,n[2]=(B*Se-V*se+K*ae)*$e,n[3]=(k*se-I*Se-L*ae)*$e,n[4]=(w*We-m*Ue-b*Re)*$e,n[5]=(r*Ue-u*We+p*Re)*$e,n[6]=(V*te-R*Se-K*Y)*$e,n[7]=(A*Se-k*te+L*Y)*$e,n[8]=(m*Ne-y*We+b*be)*$e,n[9]=(a*We-r*Ne-p*be)*$e,n[10]=(R*se-B*te+K*ie)*$e,n[11]=(I*te-A*se-L*ie)*$e,n[12]=(y*Re-m*Ie-w*be)*$e,n[13]=(r*Ie-a*Re+u*be)*$e,n[14]=(B*Y-R*ae-V*ie)*$e,n[15]=(A*ae-I*Y+k*ie)*$e,n):null}function Tl(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=e[9],L=e[10],R=e[11],B=e[12],V=e[13],K=e[14],ie=e[15],Y=r[0],te=r[1],ae=r[2],se=r[3];return n[0]=Y*a+te*y+ae*I+se*B,n[1]=Y*u+te*w+ae*k+se*V,n[2]=Y*p+te*b+ae*L+se*K,n[3]=Y*m+te*A+ae*R+se*ie,n[4]=(Y=r[4])*a+(te=r[5])*y+(ae=r[6])*I+(se=r[7])*B,n[5]=Y*u+te*w+ae*k+se*V,n[6]=Y*p+te*b+ae*L+se*K,n[7]=Y*m+te*A+ae*R+se*ie,n[8]=(Y=r[8])*a+(te=r[9])*y+(ae=r[10])*I+(se=r[11])*B,n[9]=Y*u+te*w+ae*k+se*V,n[10]=Y*p+te*b+ae*L+se*K,n[11]=Y*m+te*A+ae*R+se*ie,n[12]=(Y=r[12])*a+(te=r[13])*y+(ae=r[14])*I+(se=r[15])*B,n[13]=Y*u+te*w+ae*k+se*V,n[14]=Y*p+te*b+ae*L+se*K,n[15]=Y*m+te*A+ae*R+se*ie,n}function Fh(n,e,r){var a,u,p,m,y,w,b,A,I,k,L,R,B=r[0],V=r[1],K=r[2];return e===n?(n[12]=e[0]*B+e[4]*V+e[8]*K+e[12],n[13]=e[1]*B+e[5]*V+e[9]*K+e[13],n[14]=e[2]*B+e[6]*V+e[10]*K+e[14],n[15]=e[3]*B+e[7]*V+e[11]*K+e[15]):(u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=e[9],L=e[10],R=e[11],n[0]=a=e[0],n[1]=u,n[2]=p,n[3]=m,n[4]=y,n[5]=w,n[6]=b,n[7]=A,n[8]=I,n[9]=k,n[10]=L,n[11]=R,n[12]=a*B+y*V+I*K+e[12],n[13]=u*B+w*V+k*K+e[13],n[14]=p*B+b*V+L*K+e[14],n[15]=m*B+A*V+R*K+e[15]),n}function Sl(n,e,r){var a=r[0],u=r[1],p=r[2];return n[0]=e[0]*a,n[1]=e[1]*a,n[2]=e[2]*a,n[3]=e[3]*a,n[4]=e[4]*u,n[5]=e[5]*u,n[6]=e[6]*u,n[7]=e[7]*u,n[8]=e[8]*p,n[9]=e[9]*p,n[10]=e[10]*p,n[11]=e[11]*p,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n}function u_(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[4],m=e[5],y=e[6],w=e[7],b=e[8],A=e[9],I=e[10],k=e[11];return e!==n&&(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[4]=p*u+b*a,n[5]=m*u+A*a,n[6]=y*u+I*a,n[7]=w*u+k*a,n[8]=b*u-p*a,n[9]=A*u-m*a,n[10]=I*u-y*a,n[11]=k*u-w*a,n}function cf(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[0],m=e[1],y=e[2],w=e[3],b=e[8],A=e[9],I=e[10],k=e[11];return e!==n&&(n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[0]=p*u-b*a,n[1]=m*u-A*a,n[2]=y*u-I*a,n[3]=w*u-k*a,n[8]=p*a+b*u,n[9]=m*a+A*u,n[10]=y*a+I*u,n[11]=w*a+k*u,n}function Px(n,e){return n[0]=e[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=e[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function zx(n,e,r){var a,u,p,m=r[0],y=r[1],w=r[2],b=Math.hypot(m,y,w);return b0&&(p=1/Math.sqrt(p)),n[0]=e[0]*p,n[1]=e[1]*p,n[2]=e[2]*p,n}function qr(n,e){return n[0]*e[0]+n[1]*e[1]+n[2]*e[2]}function p_(n,e,r){var a=e[0],u=e[1],p=e[2],m=r[0],y=r[1],w=r[2];return n[0]=u*w-p*y,n[1]=p*m-a*w,n[2]=a*y-u*m,n}function On(n,e,r){var a=e[0],u=e[1],p=e[2],m=r[3]*a+r[7]*u+r[11]*p+r[15];return n[0]=(r[0]*a+r[4]*u+r[8]*p+r[12])/(m=m||1),n[1]=(r[1]*a+r[5]*u+r[9]*p+r[13])/m,n[2]=(r[2]*a+r[6]*u+r[10]*p+r[14])/m,n}function Dx(n,e,r){var a=r[0],u=r[1],p=r[2],m=e[0],y=e[1],w=e[2],b=u*w-p*y,A=p*m-a*w,I=a*y-u*m,k=u*I-p*A,L=p*b-a*I,R=a*A-u*b,B=2*r[3];return A*=B,I*=B,L*=2,R*=2,n[0]=m+(b*=B)+(k*=2),n[1]=y+A+L,n[2]=w+I+R,n}var Gh,_o=d_,cC=Rx,uC=Nh;function Ox(n,e,r){return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3]*r,n}function Bx(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=r*r+a*a+u*u+p*p;return m>0&&(m=1/Math.sqrt(m)),n[0]=r*m,n[1]=a*m,n[2]=u*m,n[3]=p*m,n}function Al(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3];return n[0]=r[0]*a+r[4]*u+r[8]*p+r[12]*m,n[1]=r[1]*a+r[5]*u+r[9]*p+r[13]*m,n[2]=r[2]*a+r[6]*u+r[10]*p+r[14]*m,n[3]=r[3]*a+r[7]*u+r[11]*p+r[15]*m,n}function Fx(){var n=new cr(4);return cr!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function Nx(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n}function Ux(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w+m*y,n[1]=u*w+p*y,n[2]=p*w-u*y,n[3]=m*w-a*y,n}function jx(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w-p*y,n[1]=u*w+m*y,n[2]=p*w+a*y,n[3]=m*w-u*y,n}h_(),Gh=new cr(4),cr!=Float32Array&&(Gh[0]=0,Gh[1]=0,Gh[2]=0,Gh[3]=0);var hC=Bx;h_(),Oc(1,0,0),Oc(0,1,0),Fx(),Fx(),Mx();const dC=_e([{type:"Float32",name:"a_globe_pos",components:3},{type:"Float32",name:"a_uv",components:2}]),{members:Vx}=dC,Gx=_e([{name:"a_pos_3",components:3,type:"Int16"}]);var $h=_e([{name:"a_pos",type:"Int16",components:2}]);class f_{constructor(e,r){this.pos=e,this.dir=r}intersectsPlane(e,r,a){const u=qr(r,this.dir);if(Math.abs(u)<1e-6)return!1;const p=((e[0]-this.pos[0])*r[0]+(e[1]-this.pos[1])*r[1]+(e[2]-this.pos[2])*r[2])/u;return a[0]=this.pos[0]+this.dir[0]*p,a[1]=this.pos[1]+this.dir[1]*p,a[2]=this.pos[2]+this.dir[2]*p,!0}closestPointOnSphere(e,r,a){if(function(L,R){var B=L[0],V=L[1],K=L[2],ie=R[0],Y=R[1],te=R[2];return Math.abs(B-ie)<=lf*Math.max(1,Math.abs(B),Math.abs(ie))&&Math.abs(V-Y)<=lf*Math.max(1,Math.abs(V),Math.abs(Y))&&Math.abs(K-te)<=lf*Math.max(1,Math.abs(K),Math.abs(te))}(this.pos,e)||r===0)return a[0]=a[1]=a[2]=0,!1;const[u,p,m]=this.dir,y=this.pos[0]-e[0],w=this.pos[1]-e[1],b=this.pos[2]-e[2],A=u*u+p*p+m*m,I=2*(y*u+w*p+b*m),k=I*I-4*A*(y*y+w*w+b*b-r*r);if(k<0){const L=Math.max(-I/2,0),R=y+u*L,B=w+p*L,V=b+m*L,K=Math.hypot(R,B,V);return a[0]=R*r/K,a[1]=B*r/K,a[2]=V*r/K,!1}{const L=(-I-Math.sqrt(k))/(2*A);if(L<0){const R=Math.hypot(y,w,b);return a[0]=y*r/R,a[1]=w*r/R,a[2]=b*r/R,!1}return a[0]=y+u*L,a[1]=w+p*L,a[2]=b+m*L,!0}}}class m_{constructor(e,r,a,u,p){this.TL=e,this.TR=r,this.BR=a,this.BL=u,this.horizon=p}static fromInvProjectionMatrix(e,r,a){const u=[-1,1,1],p=[1,1,1],m=[1,-1,1],y=[-1,-1,1],w=On(u,u,e),b=On(p,p,e),A=On(m,m,e),I=On(y,y,e);return new m_(w,b,A,I,r/a)}}class g_{constructor(e,r){this.points=e,this.planes=r}static fromInvProjectionMatrix(e,r,a,u){const p=Math.pow(2,a),m=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(w=>{const b=Al([],w,e),A=1/b[3]/r*p;return function(I,k,L){return I[0]=k[0]*L[0],I[1]=k[1]*L[1],I[2]=k[2]*L[2],I[3]=k[3]*L[3],I}(b,b,[A,A,u?1/b[3]:A,A])}),y=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(w=>{const b=Bi([],p_([],_o([],m[w[0]],m[w[1]]),_o([],m[w[2]],m[w[1]]))),A=-qr(b,m[w[1]]);return b.concat(A)});return new g_(m,y)}}class Fi{static fromPoints(e){const r=[1/0,1/0,1/0],a=[-1/0,-1/0,-1/0];for(const u of e)Uh(r,r,u),jh(a,a,u);return new Fi(r,a)}static applyTransform(e,r){const a=e.getCorners();for(let u=0;u=0;if(m===0)return 0;m!==r.length&&(a=!1)}if(a)return 2;for(let u=0;u<3;u++){let p=Number.MAX_VALUE,m=-Number.MAX_VALUE;for(let y=0;ythis.max[u]-this.min[u])return 0}return 1}}const __=5,$x=6,Vo=vt/Math.PI/2,pC=16383,Cl=64,qh=[Cl,32,16],Zr=-Vo,Wr=Vo,fC=[new Fi([Zr,Zr,Zr],[Wr,Wr,Wr]),new Fi([Zr,Zr,Zr],[0,0,Wr]),new Fi([0,Zr,Zr],[Wr,0,Wr]),new Fi([Zr,0,Zr],[0,Wr,Wr]),new Fi([0,0,Zr],[Wr,Wr,Wr])];function uf(n){return n*Vo/Hh}function qx(n,e,r,a=!0){const u=Sr([],n._camera.position,n.worldSize),p=[e,r,1,1];Al(p,p,n.pixelMatrixInverse),Ox(p,p,1/p[3]);const m=Bi([],_o([],p,u)),y=n.globeMatrix,w=[y[12],y[13],y[14]],b=_o([],w,u),A=Nh(b),I=Bi([],b),k=n.worldSize/(2*Math.PI),L=qr(I,m),R=Math.asin(k/A);if(R1?null:function(a,u,p,m){const y=Math.sin(p);return a*(Math.sin((1-m)*p)/y)+u*(Math.sin(m*p)/y)}(n.a[e],n.b[e],n.angle,Ke(r,0,1))+n.center[e]}function Go(n){if(n.z<=1)return fC[n.z+2*n.y+n.x];const e=v_(hf(n));return Fi.fromPoints(e)}function Il(n,e,r){return Sr(n,n,1-r),Vh(n,n,e,r)}function Zx(n,e){const r=Nc(e.zoom);if(r===0)return Go(n);const a=hf(n),u=v_(a),p=$o(a.getWest())*e.worldSize,m=$o(a.getEast())*e.worldSize,y=qo(a.getNorth())*e.worldSize,w=qo(a.getSouth())*e.worldSize,b=[p,y,0],A=[m,y,0],I=[p,w,0],k=[m,w,0],L=c_([],e.globeMatrix);return On(b,b,L),On(A,A,L),On(I,I,L),On(k,k,L),u[0]=Il(u[0],I,r),u[1]=Il(u[1],k,r),u[2]=Il(u[2],A,r),u[3]=Il(u[3],b,r),Fi.fromPoints(u)}function Wx(n,e,r){for(const a of n)On(a,a,e),Sr(a,a,r)}function gC(n,e,r){const a=e/n.worldSize,u=n.globeMatrix;if(r.z<=1){const be=Go(r).getCorners();return Wx(be,u,a),Fi.fromPoints(be)}const p=hf(r),m=v_(p);Wx(m,u,a);const y=Number.MAX_VALUE,w=[-y,-y,-y],b=[y,y,y];if(p.contains(n.center)){for(const We of m)Uh(b,b,We),jh(w,w,We);w[2]=0;const be=n.point,Re=[be.x*a,be.y*a,0];return Uh(b,b,Re),jh(w,w,Re),new Fi(b,w)}const A=[u[12]*a,u[13]*a,u[14]*a],I=p.getCenter(),k=Ke(n.center.lat,-Ei,Ei),L=Ke(I.lat,-Ei,Ei),R=$o(n.center.lng),B=qo(k);let V=R-$o(I.lng);const K=B-qo(L);V>.5?V-=1:V<-.5&&(V+=1);let ie=0;Math.abs(V)>Math.abs(K)?ie=V>=0?1:3:(ie=K>=0?0:2,Vh(A,A,[u[4]*a,u[5]*a,u[6]*a],-Math.sin(St(K>=0?p.getSouth():p.getNorth()))*Vo));const Y=m[ie],te=m[(ie+1)%4],ae=new mC(Y,te,A),se=[y_(ae,0)||Y[0],y_(ae,1)||Y[1],y_(ae,2)||Y[2]],Se=Nc(n.zoom);if(Se>0){const be=function({x:We,y:Ie,z:Ne},Ue,$e,Je,Pe){const rt=1/(1<.5?_t=-1:Ct<-.5&&(_t=1),pt=((pt+_t)*Ue-(Je*=Ue))*$e+Je,ot=((ot+_t)*Ue-Je)*$e+Je,At=(At*Ue-(Pe*=Ue))*$e+Pe,Qe=(Qe*Ue-Pe)*$e+Pe,[[pt,Qe,0],[ot,Qe,0],[ot,At,0],[pt,At,0]]}(r,e,n._pixelsPerMercatorPixel,R,B);for(let We=0;WeMath.PI/2*1.01}const Yx=St(85),_C=Math.cos(Yx),yC=Math.sin(Yx),Hh=63710088e-1,Jx=2*Math.PI*Hh;class da{constructor(e,r){if(isNaN(e)||isNaN(r))throw new Error(`Invalid LngLat object: (${e}, ${r})`);if(this.lng=+e,this.lat=+r,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new da(xt(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){const r=Math.PI/180,a=this.lat*r,u=e.lat*r,p=Math.sin(a)*Math.sin(u)+Math.cos(a)*Math.cos(u)*Math.cos((e.lng-this.lng)*r);return Hh*Math.acos(Math.min(p,1))}toBounds(e=0){const r=360*e/40075017,a=r/Math.cos(Math.PI/180*this.lat);return new ha(new da(this.lng-a,this.lat-r),new da(this.lng+a,this.lat+r))}toEcef(e){const r=uf(e);return Fc(this.lat,this.lng,Vo+r)}static convert(e){if(e instanceof da)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new da(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e=="object"&&e!==null)return new da(Number("lng"in e?e.lng:e.lon),Number(e.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}var ln=da;function b_(n){return Jx*Math.cos(n*Math.PI/180)}function $o(n){return(180+n)/360}function qo(n){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n*Math.PI/360)))/360}function yo(n,e){return n/b_(e)}function Ar(n){return 360*n-180}function bi(n){return 360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90}function Qx(n,e){return n*b_(bi(e))}const Ei=85.051129;function e1(n){return 1/Math.cos(n*Math.PI/180)}class Uc{constructor(e,r,a=0){this.x=+e,this.y=+r,this.z=+a}static fromLngLat(e,r=0){const a=ln.convert(e);return new Uc($o(a.lng),qo(a.lat),yo(r,a.lat))}toLngLat(){return new ln(Ar(this.x),bi(this.y))}toAltitude(){return Qx(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Jx*e1(bi(this.y))}}function E_(n,e,r,a,u,p,m,y,w){const b=(e+a)/2,A=(r+u)/2,I=new Ve(b,A);y(I),function(k,L,R,B,V,K){const ie=R-V,Y=B-K;return Math.abs((B-L)*ie-(R-k)*Y)/Math.hypot(ie,Y)}(I.x,I.y,p.x,p.y,m.x,m.y)>=w?(E_(n,e,r,b,A,p,I,y,w),E_(n,b,A,a,u,I,m,y,w)):n.push(m)}function t1(n,e,r){let a=n[0],u=a.x,p=a.y;e(a);const m=[a];for(let y=1;yn.x+1||an.y+1)&&vn("Geometry exceeds allowed extent, reduce your vector tile buffer size"),n}function Es(n,e,r){const a=n.loadGeometry(),u=n.extent,p=vt/u;if(e&&r&&r.projection.isReprojectedInTileSpace){const m=1<{const L=Ar((e.x+k.x/u)/m),R=bi((e.y+k.y/u)/m),B=A.project(L,R);k.x=(B.x*y-w)*u,k.y=(B.y*y-b)*u};for(let k=0;k=u||R.y<0||R.y>=u||(I(R),L.push(R));a[k]=L}}for(const m of a)for(const y of m)xC(y,p);return a}function Ml(n,e){return{type:n.type,id:n.id,properties:n.properties,geometry:e?Es(n):[]}}function pf(n,e,r,a,u){n.emplaceBack(2*e+(a+1)/2,2*r+(u+1)/2)}function ff(n,e,r){n.emplaceBack(e.x,e.y,e.z,r[0]*16384,r[1]*16384,r[2]*16384)}class A_{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.projection=e.projection,this.layoutVertexArray=new Ze,this.indexArray=new mt,this.segments=new jn,this.programConfigurations=new El(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,a,u){const p=this.layers[0],m=[];let y=null;p.type==="circle"&&(y=p.layout.get("circle-sort-key"));for(const{feature:b,id:A,index:I,sourceLayerIndex:k}of e){const L=this.layers[0]._featureFilter.needGeometry,R=Ml(b,L);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),R,a))continue;const B=y?y.evaluate(R,{},a):void 0,V={id:A,properties:b.properties,type:b.type,sourceLayerIndex:k,index:I,geometry:L?R.geometry:Es(b,a,u),patterns:{},sortKey:B};m.push(V)}y&&m.sort((b,A)=>b.sortKey-A.sortKey);let w=null;u.projection.name==="globe"&&(this.globeExtVertexArray=new He,w=u.projection);for(const b of m){const{geometry:A,index:I,sourceLayerIndex:k}=b,L=e[I].feature;this.addFeature(b,A,I,r.availableImages,a,w),r.featureIndex.insert(L,A,I,k,this.index)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,sC.members),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,aC.members))),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}addFeature(e,r,a,u,p,m){for(const y of r)for(const w of y){const b=w.x,A=w.y;if(b<0||b>=vt||A<0||A>=vt)continue;if(m){const L=m.projectTilePoint(b,A,p),R=m.upVector(p,b,A),B=this.globeExtVertexArray;ff(B,L,R),ff(B,L,R),ff(B,L,R),ff(B,L,R)}const I=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,e.sortKey),k=I.vertexLength;pf(this.layoutVertexArray,b,A,-1,-1),pf(this.layoutVertexArray,b,A,1,-1),pf(this.layoutVertexArray,b,A,1,1),pf(this.layoutVertexArray,b,A,-1,1),this.indexArray.emplaceBack(k,k+1,k+2),this.indexArray.emplaceBack(k,k+2,k+3),I.vertexLength+=4,I.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{},u,p)}}function i1(n,e){for(let r=0;r1){if(C_(n,e))return!0;for(let a=0;a1?r:r.sub(e)._mult(u)._add(e))}function s1(n,e){let r,a,u,p=!1;for(let m=0;me.y!=u.y>e.y&&e.x<(u.x-a.x)*(e.y-a.y)/(u.y-a.y)+a.x&&(p=!p)}return p}function kl(n,e){let r=!1;for(let a=0,u=n.length-1;ae.y!=m.y>e.y&&e.x<(m.x-p.x)*(e.y-p.y)/(m.y-p.y)+p.x&&(r=!r)}return r}function a1(n,e,r,a,u){for(const m of n)if(e<=m.x&&r<=m.y&&a>=m.x&&u>=m.y)return!0;const p=[new Ve(e,r),new Ve(e,u),new Ve(a,u),new Ve(a,r)];if(n.length>2){for(const m of p)if(kl(n,m))return!0}for(let m=0;mu.x&&e.x>u.x||n.yu.y&&e.y>u.y)return!1;const p=nr(n,e,r[0]);return p!==nr(n,e,r[1])||p!==nr(n,e,r[2])||p!==nr(n,e,r[3])}function jc(n,e,r){const a=e.paint.get(n).value;return a.kind==="constant"?a.value:r.programConfigurations.get(e.id).getMaxValue(n)}function mf(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function l1(n,e,r,a,u){if(!e[0]&&!e[1])return n;const p=Ve.convert(e)._mult(u);r==="viewport"&&p._rotate(-a);const m=[];for(let y=0;y0){const Y=r.projection.upVector(b,L.x,L.y);B.x+=Y[0]*A*R,B.y+=Y[1]*A*R,B.z+=Y[2]*A*R}const V=p?L:CC(B.x,B.y,B.z,a),K=p?n.tilespaceRays.map(Y=>MC(Y,R)):n.queryGeometry.screenGeometry,ie=Al([],[B.x,B.y,B.z,1],a);if(!m&&p?w*=ie[3]/r.cameraToCenterDistance:m&&!p&&(w*=r.cameraToCenterDistance/ie[3]),p){const Y=bi((k.y/vt+b.y)/(1<n.width||u.height>n.height||r.x>n.width-u.width||r.y>n.height-u.height)throw new RangeError("out of range source coordinates for image copy");if(u.width>e.width||u.height>e.height||a.x>e.width-u.width||a.y>e.height-u.height)throw new RangeError("out of range destination coordinates for image copy");const m=n.data,y=e.data;for(let w=0;w{e[n.evaluationKey]=w;const b=n.expression.evaluate(e);u.data[m+y+0]=Math.floor(255*b.r/b.a),u.data[m+y+1]=Math.floor(255*b.g/b.a),u.data[m+y+2]=Math.floor(255*b.b/b.a),u.data[m+y+3]=Math.floor(255*b.a)};if(n.clips)for(let m=0,y=0;m80*r){a=p=n[0],u=m=n[1];for(var R=r;Rp&&(p=y),w>m&&(m=w);b=(b=Math.max(p-a,m-u))!==0?32767/b:0}return Xh(k,L,r,a,u,b,0),L}function m1(n,e,r,a,u){var p,m;if(u===R_(n,e,r,a)>0)for(p=e;p=e;p-=a)m=y1(p,n[p],n[p+1],m);return m&&_f(m,m.next)&&(Yh(m),m=m.next),m}function Pl(n,e){if(!n)return n;e||(e=n);var r,a=n;do if(r=!1,a.steiner||!_f(a,a.next)&&Vn(a.prev,a,a.next)!==0)a=a.next;else{if(Yh(a),(a=e=a.prev)===a.next)break;r=!0}while(r||a!==e);return e}function Xh(n,e,r,a,u,p,m){if(n){!m&&p&&function(A,I,k,L){var R=A;do R.z===0&&(R.z=z_(R.x,R.y,I,k,L)),R.prevZ=R.prev,R.nextZ=R.next,R=R.next;while(R!==A);R.prevZ.nextZ=null,R.prevZ=null,function(B){var V,K,ie,Y,te,ae,se,Se,be=1;do{for(K=B,B=null,te=null,ae=0;K;){for(ae++,ie=K,se=0,V=0;V0||Se>0&&ie;)se!==0&&(Se===0||!ie||K.z<=ie.z)?(Y=K,K=K.nextZ,se--):(Y=ie,ie=ie.nextZ,Se--),te?te.nextZ=Y:B=Y,Y.prevZ=te,te=Y;K=ie}te.nextZ=null,be*=2}while(ae>1)}(R)}(n,a,u,p);for(var y,w,b=n;n.prev!==n.next;)if(y=n.prev,w=n.next,p?DC(n,a,u,p):RC(n))e.push(y.i/r|0),e.push(n.i/r|0),e.push(w.i/r|0),Yh(n),n=w.next,b=w.next;else if((n=w)===b){m?m===1?Xh(n=OC(Pl(n),e,r),e,r,a,u,p,2):m===2&&BC(n,e,r,a,u,p):Xh(Pl(n),e,r,a,u,p,1);break}}}function RC(n){var e=n.prev,r=n,a=n.next;if(Vn(e,r,a)>=0)return!1;for(var u=e.x,p=r.x,m=a.x,y=e.y,w=r.y,b=a.y,A=up?u>m?u:m:p>m?p:m,L=y>w?y>b?y:b:w>b?w:b,R=a.next;R!==e;){if(R.x>=A&&R.x<=k&&R.y>=I&&R.y<=L&&Vc(u,y,p,w,m,b,R.x,R.y)&&Vn(R.prev,R,R.next)>=0)return!1;R=R.next}return!0}function DC(n,e,r,a){var u=n.prev,p=n,m=n.next;if(Vn(u,p,m)>=0)return!1;for(var y=u.x,w=p.x,b=m.x,A=u.y,I=p.y,k=m.y,L=yw?y>b?y:b:w>b?w:b,V=A>I?A>k?A:k:I>k?I:k,K=z_(L,R,e,r,a),ie=z_(B,V,e,r,a),Y=n.prevZ,te=n.nextZ;Y&&Y.z>=K&&te&&te.z<=ie;){if(Y.x>=L&&Y.x<=B&&Y.y>=R&&Y.y<=V&&Y!==u&&Y!==m&&Vc(y,A,w,I,b,k,Y.x,Y.y)&&Vn(Y.prev,Y,Y.next)>=0||(Y=Y.prevZ,te.x>=L&&te.x<=B&&te.y>=R&&te.y<=V&&te!==u&&te!==m&&Vc(y,A,w,I,b,k,te.x,te.y)&&Vn(te.prev,te,te.next)>=0))return!1;te=te.nextZ}for(;Y&&Y.z>=K;){if(Y.x>=L&&Y.x<=B&&Y.y>=R&&Y.y<=V&&Y!==u&&Y!==m&&Vc(y,A,w,I,b,k,Y.x,Y.y)&&Vn(Y.prev,Y,Y.next)>=0)return!1;Y=Y.prevZ}for(;te&&te.z<=ie;){if(te.x>=L&&te.x<=B&&te.y>=R&&te.y<=V&&te!==u&&te!==m&&Vc(y,A,w,I,b,k,te.x,te.y)&&Vn(te.prev,te,te.next)>=0)return!1;te=te.nextZ}return!0}function OC(n,e,r){var a=n;do{var u=a.prev,p=a.next.next;!_f(u,p)&&g1(u,a,a.next,p)&&Kh(u,p)&&Kh(p,u)&&(e.push(u.i/r|0),e.push(a.i/r|0),e.push(p.i/r|0),Yh(a),Yh(a.next),a=n=p),a=a.next}while(a!==n);return Pl(a)}function BC(n,e,r,a,u,p){var m=n;do{for(var y=m.next.next;y!==m.prev;){if(m.i!==y.i&&VC(m,y)){var w=_1(m,y);return m=Pl(m,m.next),w=Pl(w,w.next),Xh(m,e,r,a,u,p,0),void Xh(w,e,r,a,u,p,0)}y=y.next}m=m.next}while(m!==n)}function FC(n,e){return n.x-e.x}function NC(n,e){var r=function(u,p){var m,y=p,w=u.x,b=u.y,A=-1/0;do{if(b<=y.y&&b>=y.next.y&&y.next.y!==y.y){var I=y.x+(b-y.y)*(y.next.x-y.x)/(y.next.y-y.y);if(I<=w&&I>A&&(A=I,m=y.x=y.x&&y.x>=R&&w!==y.x&&Vc(bm.x||y.x===m.x&&UC(m,y)))&&(m=y,V=k)),y=y.next;while(y!==L);return m}(n,e);if(!r)return e;var a=_1(r,n);return Pl(a,a.next),Pl(r,r.next)}function UC(n,e){return Vn(n.prev,n,e.prev)<0&&Vn(e.next,n,n.next)<0}function z_(n,e,r,a,u){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*u|0)|n<<8))|n<<4))|n<<2))|n<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-a)*u|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function jC(n){var e=n,r=n;do(e.x=(n-m)*(p-y)&&(n-m)*(a-y)>=(r-m)*(e-y)&&(r-m)*(p-y)>=(u-m)*(a-y)}function VC(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!function(r,a){var u=r;do{if(u.i!==r.i&&u.next.i!==r.i&&u.i!==a.i&&u.next.i!==a.i&&g1(u,u.next,r,a))return!0;u=u.next}while(u!==r);return!1}(n,e)&&(Kh(n,e)&&Kh(e,n)&&function(r,a){var u=r,p=!1,m=(r.x+a.x)/2,y=(r.y+a.y)/2;do u.y>y!=u.next.y>y&&u.next.y!==u.y&&m<(u.next.x-u.x)*(y-u.y)/(u.next.y-u.y)+u.x&&(p=!p),u=u.next;while(u!==r);return p}(n,e)&&(Vn(n.prev,n,e.prev)||Vn(n,e.prev,e))||_f(n,e)&&Vn(n.prev,n,n.next)>0&&Vn(e.prev,e,e.next)>0)}function Vn(n,e,r){return(e.y-n.y)*(r.x-e.x)-(e.x-n.x)*(r.y-e.y)}function _f(n,e){return n.x===e.x&&n.y===e.y}function g1(n,e,r,a){var u=vf(Vn(n,e,r)),p=vf(Vn(n,e,a)),m=vf(Vn(r,a,n)),y=vf(Vn(r,a,e));return u!==p&&m!==y||!(u!==0||!yf(n,r,e))||!(p!==0||!yf(n,a,e))||!(m!==0||!yf(r,n,a))||!(y!==0||!yf(r,e,a))}function yf(n,e,r){return e.x<=Math.max(n.x,r.x)&&e.x>=Math.min(n.x,r.x)&&e.y<=Math.max(n.y,r.y)&&e.y>=Math.min(n.y,r.y)}function vf(n){return n>0?1:n<0?-1:0}function Kh(n,e){return Vn(n.prev,n,n.next)<0?Vn(n,e,n.next)>=0&&Vn(n,n.prev,e)>=0:Vn(n,e,n.prev)<0||Vn(n,n.next,e)<0}function _1(n,e){var r=new L_(n.i,n.x,n.y),a=new L_(e.i,e.x,e.y),u=n.next,p=e.prev;return n.next=e,e.prev=n,r.next=u,u.prev=r,a.next=r,r.prev=a,p.next=a,a.prev=p,a}function y1(n,e,r,a){var u=new L_(n,e,r);return a?(u.next=a.next,u.prev=a,a.next.prev=u,a.next=u):(u.prev=u,u.next=u),u}function Yh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function L_(n,e,r){this.i=n,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function R_(n,e,r,a){for(var u=0,p=e,m=r-a;p0&&r.holes.push(a+=n[u-1].length)}return r};var D_=le(P_.exports);function GC(n,e,r,a,u){v1(n,e,r||0,a||n.length-1,u||$C)}function v1(n,e,r,a,u){for(;a>r;){if(a-r>600){var p=a-r+1,m=e-r+1,y=Math.log(p),w=.5*Math.exp(2*y/3),b=.5*Math.sqrt(y*w*(p-w)/p)*(m-p/2<0?-1:1);v1(n,e,Math.max(r,Math.floor(e-m*w/p+b)),Math.min(a,Math.floor(e+(p-m)*w/p+b)),u)}var A=n[e],I=r,k=a;for(Jh(n,r,e),u(n[a],A)>0&&Jh(n,r,a);I0;)k--}u(n[r],A)===0?Jh(n,r,k):Jh(n,++k,a),k<=e&&(r=k+1),e<=k&&(a=k-1)}}function Jh(n,e,r){var a=n[e];n[e]=n[r],n[r]=a}function $C(n,e){return ne?1:0}function O_(n,e){const r=n.length;if(r<=1)return[n];const a=[];let u,p;for(let m=0;m1)for(let m=0;mr.id),this.index=e.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Ze,this.indexArray=new mt,this.indexArray2=new si,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.segments2=new jn,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id),this.projection=e.projection}populate(e,r,a,u){this.hasPattern=B_("fill",this.layers,r);const p=this.layers[0].layout.get("fill-sort-key"),m=[];for(const{feature:y,id:w,index:b,sourceLayerIndex:A}of e){const I=this.layers[0]._featureFilter.needGeometry,k=Ml(y,I);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),k,a))continue;const L=p?p.evaluate(k,{},a,r.availableImages):void 0,R={id:w,properties:y.properties,type:y.type,sourceLayerIndex:A,index:b,geometry:I?k.geometry:Es(y,a,u),patterns:{},sortKey:L};m.push(R)}p&&m.sort((y,w)=>y.sortKey-w.sortKey);for(const y of m){const{geometry:w,index:b,sourceLayerIndex:A}=y;if(this.hasPattern){const I=F_("fill",this.layers,y,this.zoom,r);this.patternFeatures.push(I)}else this.addFeature(y,w,b,a,{},r.availableImages);r.featureIndex.insert(e[b].feature,w,b,A,this.index)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}addFeatures(e,r,a,u,p){for(const m of this.patternFeatures)this.addFeature(m,m.geometry,m.index,r,a,u)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,LC),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(e,r,a,u,p,m=[]){for(const y of O_(r,500)){let w=0;for(const R of y)w+=R.length;const b=this.segments.prepareSegment(w,this.layoutVertexArray,this.indexArray),A=b.vertexLength,I=[],k=[];for(const R of y){if(R.length===0)continue;R!==y[0]&&k.push(I.length/2);const B=this.segments2.prepareSegment(R.length,this.layoutVertexArray,this.indexArray2),V=B.vertexLength;this.layoutVertexArray.emplaceBack(R[0].x,R[0].y),this.indexArray2.emplaceBack(V+R.length-1,V),I.push(R[0].x),I.push(R[0].y);for(let K=1;K>3}if(u--,a===1||a===2)p+=n.readSVarint(),m+=n.readSVarint(),a===1&&(e&&y.push(e),e=[]),e.push(new JC(p,m));else{if(a!==7)throw new Error("unknown command "+a);e&&e.push(e[0].clone())}}return e&&y.push(e),y},Gc.prototype.bbox=function(){var n=this._pbf;n.pos=this._geometry;for(var e=n.readVarint()+n.pos,r=1,a=0,u=0,p=0,m=1/0,y=-1/0,w=1/0,b=-1/0;n.pos>3}if(a--,r===1||r===2)(u+=n.readSVarint())y&&(y=u),(p+=n.readSVarint())b&&(b=p);else if(r!==7)throw new Error("unknown command "+r)}return[m,w,y,b]},Gc.prototype.toGeoJSON=function(n,e,r){var a,u,p=this.extent*Math.pow(2,r),m=this.extent*n,y=this.extent*e,w=this.loadGeometry(),b=Gc.types[this.type];function A(L){for(var R=0;R>3;u=m===1?a.readString():m===2?a.readFloat():m===3?a.readDouble():m===4?a.readVarint64():m===5?a.readVarint():m===6?a.readSVarint():m===7?a.readBoolean():null}return u}(r))}b1.prototype.feature=function(n){if(n<0||n>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[n];var e=this._pbf.readVarint()+this._pbf.pos;return new tI(this._pbf,e,this.extent,this._keys,this._values)};var iI=w1;function rI(n,e,r){if(n===3){var a=new iI(r,r.readVarint()+r.pos);a.length&&(e[a.name]=a)}}var N_=wf.VectorTile=function(n,e){this.layers=n.readFields(rI,{},e)},bf=wf.VectorTileFeature=x1;function Ef(n,e,r,a){const u=[],p=a===0?(m,y,w,b,A,I)=>{m.push(new Ve(I,w+(I-y)/(b-y)*(A-w)))}:(m,y,w,b,A,I)=>{m.push(new Ve(y+(I-w)/(A-w)*(b-y),I))};for(const m of n){const y=[];for(const w of m){if(w.length<=2)continue;const b=[];for(let k=0;ke&&p(b,L,R,B,V,e):K>r?ie=e&&p(b,L,R,B,V,e),ie>r&&K<=r&&p(b,L,R,B,V,r)}let A=w[w.length-1];const I=a===0?A.x:A.y;I>=e&&I<=r&&b.push(A),b.length&&(A=b[b.length-1],b[0].x===A.x&&b[0].y===A.y||b.push(b[0]),y.push(b))}y.length&&u.push(y)}return u}wf.VectorTileLayer=w1;const oI=bf.types,sI=Math.pow(2,13);function Qh(n,e,r,a,u,p,m,y){n.emplaceBack((e<<1)+m,(r<<1)+p,(Math.floor(a*sI)<<1)+u,Math.round(y))}function ed(n,e,r){n.emplaceBack(e.x,e.y,e.z,r[0]*16384,r[1]*16384,r[2]*16384)}class E1{constructor(){this.acc=new Ve(0,0),this.polyCount=[]}startRing(e){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new Ve(e.x,e.y),this.max=new Ve(e.x,e.y))}append(e,r){this.currentPolyCount.edges++,this.acc._add(e);const a=this.min,u=this.max;e.xu.x&&(u.x=e.x),e.yu.y&&(u.y=e.y),((e.x===0||e.x===vt)&&e.x===r.x)!=((e.y===0||e.y===vt)&&e.y===r.y)&&this.processBorderOverlap(e,r),r.x<0!=e.x<0&&this.addBorderIntersection(0,Zt(r.y,e.y,(0-r.x)/(e.x-r.x))),r.x>vt!=e.x>vt&&this.addBorderIntersection(1,Zt(r.y,e.y,(vt-r.x)/(e.x-r.x))),r.y<0!=e.y<0&&this.addBorderIntersection(2,Zt(r.x,e.x,(0-r.y)/(e.y-r.y))),r.y>vt!=e.y>vt&&this.addBorderIntersection(3,Zt(r.x,e.x,(vt-r.y)/(e.y-r.y)))}addBorderIntersection(e,r){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const a=this.borders[e];ra[1]&&(a[1]=r)}processBorderOverlap(e,r){if(e.x===r.x){if(e.y===r.y)return;const a=e.x===0?0:1;this.addBorderIntersection(a,r.y),this.addBorderIntersection(a,e.y)}else{const a=e.y===0?2:3;this.addBorderIntersection(a,r.x),this.addBorderIntersection(a,e.x)}}centroid(){const e=this.polyCount.reduce((r,a)=>r+a.edges,0);return e!==0?this.acc.div(e)._round():new Ve(0,0)}span(){return new Ve(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((e,r)=>e+ +(r[0]!==Number.MAX_VALUE),0)}}class td{constructor(e){this.zoom=e.zoom,this.canonical=e.canonical,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=e.projection,this.layoutVertexArray=new Be,this.centroidVertexArray=new po,this.indexArray=new mt,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id),this.enableTerrain=e.enableTerrain}populate(e,r,a,u){this.features=[],this.hasPattern=B_("fill-extrusion",this.layers,r),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(p){const m=Math.exp(Math.PI*(1-p.y/(1<=0;K--){const ie=L[K];(ie.length===0||(R=ie[0]).every(Y=>Y.x<=0)||R.every(Y=>Y.x>=vt)||R.every(Y=>Y.y<=0)||R.every(Y=>Y.y>=vt))&&L.splice(K,1)}var R;let B;if(A)B=k1(L,w,u);else{B=[];for(const K of L)B.push({polygon:K,bounds:w})}const V=k?this.edgeRadius:0;for(const{polygon:K,bounds:ie}of B){let Y=0,te=0;for(const se of K)k&&!se[0].equals(se[se.length-1])&&se.push(se[0]),te+=k?se.length-1:se.length;const ae=this.segments.prepareSegment((k?5:4)*te,this.layoutVertexArray,this.indexArray);if(k){const se=[],Se=[];Y=ae.vertexLength;for(const Re of K){let We,Ie;Re.length&&Re!==K[0]&&Se.push(se.length/2),We=Re[1].sub(Re[0])._perp()._unit();for(let Ne=1;Ne4&&C1(se[se.length-2],se[0],se[1]),Ie=V?aI(se[se.length-2],se[0],se[1],V):0;be=se[1].sub(se[0])._perp()._unit();let Ne=!0;for(let Ue=1,$e=0;Ue0?1:0,Qe=Je.dist(Pe);if($e+Qe>32768&&($e=0),V){Re=rt.sub(Pe)._perp()._unit();let It=S1(Je,Pe,rt,T1(be,Re),V);isNaN(It)&&(It=0);const bt=Pe.sub(Je)._unit();Je=Je.add(bt.mult(Ie))._round(),Pe=Pe.add(bt.mult(-It))._round(),Ie=It,be=Re}const _t=ae.vertexLength,Ct=se.length>4&&C1(Je,Pe,rt);let Ht=I1($e,We,Ne);if(Qh(this.layoutVertexArray,Je.x,Je.y,ot,At,0,0,Ht),Qh(this.layoutVertexArray,Je.x,Je.y,ot,At,0,1,Ht),$e+=Qe,Ht=I1($e,Ct,!Ne),We=Ct,Qh(this.layoutVertexArray,Pe.x,Pe.y,ot,At,0,0,Ht),Qh(this.layoutVertexArray,Pe.x,Pe.y,ot,At,0,1,Ht),ae.vertexLength+=4,this.indexArray.emplaceBack(_t+0,_t+1,_t+2),this.indexArray.emplaceBack(_t+1,_t+3,_t+2),ae.primitiveLength+=2,V){const It=Y+(Ue===1?se.length-2:Ue-2),bt=Ue===1?Y:It+1;if(this.indexArray.emplaceBack(_t+1,It,_t+3),this.indexArray.emplaceBack(It,bt,_t+3),ae.primitiveLength+=2,Se===void 0&&(Se=_t),!A1(rt,se[Ue],ie)){const xn=Ue===se.length-1?Se:ae.vertexLength;this.indexArray.emplaceBack(_t+2,_t+3,xn),this.indexArray.emplaceBack(_t+3,xn+1,xn),this.indexArray.emplaceBack(_t+3,bt,xn+1),ae.primitiveLength+=3}Ne=!Ne}if(A){const It=this.layoutVertexExtArray,bt=b.projectTilePoint(Je.x,Je.y,u),xn=b.projectTilePoint(Pe.x,Pe.y,u),zt=b.upVector(u,Je.x,Je.y),Lt=b.upVector(u,Pe.x,Pe.y);ed(It,bt,zt),ed(It,bt,zt),ed(It,xn,Lt),ed(It,xn,Lt)}}k&&(Y+=se.length-1)}}if(I&&I.polyCount.length>0){if(I.borders){I.vertexArrayOffset=this.centroidVertexArray.length;const K=I.borders,ie=this.featuresOnBorder.push(I)-1;for(let Y=0;Y<4;Y++)K[Y][0]!==Number.MAX_VALUE&&this.borders[Y].push(ie)}this.encodeCentroid(I.borders?void 0:I.centroid(),I)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,p,m,u)}sortBorders(){for(let e=0;e<4;e++)this.borders[e].sort((r,a)=>this.featuresOnBorder[r].borders[e][0]-this.featuresOnBorder[a].borders[e][0])}encodeCentroid(e,r,a=!0){let u,p;if(e)if(e.y!==0){const y=r.span()._mult(this.tileToMeter);u=(Math.max(e.x,1)<<3)+Math.min(7,Math.round(y.x/10)),p=(Math.max(e.y,1)<<3)+Math.min(7,Math.round(y.y/10))}else u=Math.ceil(7*(e.x+450)),p=0;else u=0,p=+a;let m=a?this.centroidVertexArray.length:r.vertexArrayOffset;for(const y of r.polyCount){a&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*y.edges+y.top);for(let w=0;wr[1].x&&e.x>r[1].x||n.yr[1].y&&e.y>r[1].y}function C1(n,e,r){if(n.x<0||n.x>=vt||e.x<0||e.x>=vt||r.x<0||r.x>=vt)return!1;const a=r.sub(e),u=a.perp(),p=n.sub(e);return(a.x*p.x+a.y*p.y)/Math.sqrt((a.x*a.x+a.y*a.y)*(p.x*p.x+p.y*p.y))>-.866&&u.x*p.x+u.y*p.y<0}function I1(n,e,r){const a=e?2|n:-3&n;return r?1|a:-2&a}function M1(){const n=Math.PI/32,e=Math.tan(n),r=Hh;return r*Math.sqrt(1+2*e*e)-r}function k1(n,e,r){const a=1<{for(const be of se)R.push({polygon:be,bounds:Se})},V=Math.ceil(Math.log2(A)),K=Math.ceil(Math.log2(I)),ie=V-K,Y=[];for(let se=0;se0?0:1);for(let se=0;seSe+1?ae.push({polygons:$e,bounds:Pe,depth:Se+1}):B($e,Pe)}if(Je.length){const Pe=[new Ve(be===0?Ue:Re.x,be===1?Ue:Re.y),We];Y.length>Se+1?ae.push({polygons:Je,bounds:Pe,depth:Se+1}):B(Je,Pe)}}return R}(n,e,Math.ceil((p-u)/11.25),Math.ceil((m-y)/11.25),1,(w,b,A)=>{if(w===0)return .5*(b+A);{const I=bi((r.y+b/vt)/a);return(qo(.5*(bi((r.y+A/vt)/a)+I))*a-r.y)*vt}})}ht(td,"FillExtrusionBucket",{omit:["layers","features"]}),ht(E1,"PartMetadata");const lI=new Q({"fill-extrusion-edge-radius":new O(Le["layout_fill-extrusion"]["fill-extrusion-edge-radius"])});var cI={paint:new Q({"fill-extrusion-opacity":new O(Le["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new G(Le["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new O(Le["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new O(Le["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new G(Le["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new G(Le["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new G(Le["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new O(Le["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),"fill-extrusion-ambient-occlusion-intensity":new O(Le["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-intensity"]),"fill-extrusion-ambient-occlusion-radius":new O(Le["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-radius"]),"fill-extrusion-rounded-roof":new O(Le["paint_fill-extrusion"]["fill-extrusion-rounded-roof"])}),layout:lI};function P1(n,e,r){var a=2*Math.PI*6378137/256/Math.pow(2,r);return[n*a-2*Math.PI*6378137/2,e*a-2*Math.PI*6378137/2]}class Tf{constructor(e,r,a){this.z=e,this.x=r,this.y=a,this.key=nd(0,e,e,r,a)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,r){const a=function(p,m,y){var w=P1(256*p,256*(m=Math.pow(2,y)-m-1),y),b=P1(256*(p+1),256*(m+1),y);return w[0]+","+w[1]+","+b[0]+","+b[1]}(this.x,this.y,this.z),u=function(p,m,y){let w,b="";for(let A=p;A>0;A--)w=1<this.canonical.z?new Ni(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Ni(e,this.wrap,e,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(e,r=!0){if(this.overscaledZ===e&&r)return this.key;if(e>this.canonical.z)return nd(this.wrap*+r,e,this.canonical.z,this.canonical.x,this.canonical.y);{const a=this.canonical.z-e;return nd(this.wrap*+r,e,e,this.canonical.x>>a,this.canonical.y>>a)}}isChildOf(e){if(e.wrap!==this.wrap)return!1;const r=this.canonical.z-e.canonical.z;return e.overscaledZ===0||e.overscaledZ>r&&e.canonical.y===this.canonical.y>>r}children(e){if(this.overscaledZ>=e)return[new Ni(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,a=2*this.canonical.x,u=2*this.canonical.y;return[new Ni(r,this.wrap,r,a,u),new Ni(r,this.wrap,r,a+1,u),new Ni(r,this.wrap,r,a,u+1),new Ni(r,this.wrap,r,a+1,u+1)]}isLessThan(e){return this.wrape.wrap)&&(this.overscaledZe.overscaledZ)&&(this.canonical.xe.canonical.x)&&this.canonical.yr.id),this.index=e.index,this.projection=e.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(r=>{this.gradients[r.id]={}}),this.layoutVertexArray=new Ce,this.layoutVertexArray2=new qe,this.indexArray=new mt,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,a,u){this.hasPattern=B_("line",this.layers,r);const p=this.layers[0].layout.get("line-sort-key"),m=[];for(const{feature:A,id:I,index:k,sourceLayerIndex:L}of e){const R=this.layers[0]._featureFilter.needGeometry,B=Ml(A,R);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),B,a))continue;const V=p?p.evaluate(B,{},a):void 0,K={id:I,properties:A.properties,type:A.type,sourceLayerIndex:L,index:k,geometry:R?B.geometry:Es(A,a,u),patterns:{},sortKey:V};m.push(K)}p&&m.sort((A,I)=>A.sortKey-I.sortKey);const{lineAtlas:y,featureIndex:w}=r,b=this.addConstantDashes(y);for(const A of m){const{geometry:I,index:k,sourceLayerIndex:L}=A;if(b&&this.addFeatureDashes(A,y),this.hasPattern){const R=F_("line",this.layers,A,this.zoom,r);this.patternFeatures.push(R)}else this.addFeature(A,I,k,a,y.positions,r.availableImages);w.insert(e[k].feature,I,k,L,this.index)}}addConstantDashes(e){let r=!1;for(const a of this.layers){const u=a.paint.get("line-dasharray").value,p=a.layout.get("line-cap").value;if(u.kind!=="constant"||p.kind!=="constant")r=!0;else{const m=p.value,y=u.value;if(!y)continue;e.addDash(y,m)}}return r}addFeatureDashes(e,r){const a=this.zoom;for(const u of this.layers){const p=u.paint.get("line-dasharray").value,m=u.layout.get("line-cap").value;if(p.kind==="constant"&&m.kind==="constant")continue;let y,w;if(p.kind==="constant"){if(y=p.value,!y)continue}else y=p.evaluate({zoom:a},e);w=m.kind==="constant"?m.value:m.evaluate({zoom:a},e),r.addDash(y,w),e.patterns[u.id]=r.getKey(y,w)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}addFeatures(e,r,a,u,p){for(const m of this.patternFeatures)this.addFeature(m,m.geometry,m.index,r,a,u)}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,pI)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hI),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(e){if(e.properties&&e.properties.hasOwnProperty("mapbox_clip_start")&&e.properties.hasOwnProperty("mapbox_clip_end"))return{start:+e.properties.mapbox_clip_start,end:+e.properties.mapbox_clip_end}}addFeature(e,r,a,u,p,m){const y=this.layers[0].layout,w=y.get("line-join").evaluate(e,{}),b=y.get("line-cap").evaluate(e,{}),A=y.get("line-miter-limit"),I=y.get("line-round-limit");this.lineClips=this.lineFeatureClips(e);for(const k of r)this.addLine(k,e,w,b,A,I);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,p,m,u)}addLine(e,r,a,u,p,m){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let K=0;K=2&&e[w-1].equals(e[w-2]);)w--;let b=0;for(;b0;if(Se&&K>b){const Ie=k.dist(L);if(Ie>2*A){const Ne=k.sub(k.sub(L)._mult(A/Ie)._round());this.updateDistance(L,Ne),this.addCurrentVertex(Ne,B,0,0,I),L=Ne}}const Re=L&&R;let We=Re?a:y?"butt":u;if(Re&&We==="round"&&(aep&&(We="bevel"),We==="bevel"&&(ae>2&&(We="flipbevel"),ae100)ie=V.mult(-1);else{const Ie=ae*B.add(V).mag()/B.sub(V).mag();ie._perp()._mult(Ie*(be?-1:1))}this.addCurrentVertex(k,ie,0,0,I),this.addCurrentVertex(k,ie.mult(-1),0,0,I)}else if(We==="bevel"||We==="fakeround"){const Ie=-Math.sqrt(ae*ae-1),Ne=be?Ie:0,Ue=be?0:Ie;if(L&&this.addCurrentVertex(k,B,Ne,Ue,I),We==="fakeround"){const $e=Math.round(180*se/Math.PI/20);for(let Je=1;Je<$e;Je++){let Pe=Je/$e;if(Pe!==.5){const pt=Pe-.5;Pe+=Pe*pt*(Pe-1)*((1.0904+Y*(Y*(3.55645-1.43519*Y)-3.2452))*pt*pt+(.848013+Y*(.215638*Y-1.06021)))}const rt=V.sub(B)._mult(Pe)._add(B)._unit()._mult(be?-1:1);this.addHalfVertex(k,rt.x,rt.y,!1,be,0,I)}}R&&this.addCurrentVertex(k,V,-Ne,-Ue,I)}else if(We==="butt")this.addCurrentVertex(k,ie,0,0,I);else if(We==="square"){const Ie=L?1:-1;L||this.addCurrentVertex(k,ie,Ie,Ie,I),this.addCurrentVertex(k,ie,0,0,I),L&&this.addCurrentVertex(k,ie,Ie,Ie,I)}else We==="round"&&(L&&(this.addCurrentVertex(k,B,0,0,I),this.addCurrentVertex(k,B,1,1,I,!0)),R&&(this.addCurrentVertex(k,V,-1,-1,I,!0),this.addCurrentVertex(k,V,0,0,I)));if(Se&&K2*A){const Ne=k.add(R.sub(k)._mult(A/Ie)._round());this.updateDistance(k,Ne),this.addCurrentVertex(Ne,V,0,0,I),k=Ne}}}}addCurrentVertex(e,r,a,u,p,m=!1){const y=r.y*u-r.x,w=-r.y-r.x*u;this.addHalfVertex(e,r.x+r.y*a,r.y-r.x*a,m,!1,a,p),this.addHalfVertex(e,y,w,m,!0,-u,p)}addHalfVertex({x:e,y:r},a,u,p,m,y,w){this.layoutVertexArray.emplaceBack((e<<1)+(p?1:0),(r<<1)+(m?1:0),Math.round(63*a)+128,Math.round(63*u)+128,1+(y===0?0:y<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);const b=w.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,b),w.primitiveLength++),m?this.e2=b:this.e1=b}updateScaledDistance(){if(this.lineClips){const e=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=e*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(e,r){this.distance+=e.dist(r),this.updateScaledDistance()}}ht(Sf,"LineBucket",{omit:["layers","patternFeatures"]});const gI=new Q({"line-cap":new G(Le.layout_line["line-cap"]),"line-join":new G(Le.layout_line["line-join"]),"line-miter-limit":new O(Le.layout_line["line-miter-limit"]),"line-round-limit":new O(Le.layout_line["line-round-limit"]),"line-sort-key":new G(Le.layout_line["line-sort-key"])});var D1={paint:new Q({"line-opacity":new G(Le.paint_line["line-opacity"]),"line-color":new G(Le.paint_line["line-color"]),"line-translate":new O(Le.paint_line["line-translate"]),"line-translate-anchor":new O(Le.paint_line["line-translate-anchor"]),"line-width":new G(Le.paint_line["line-width"]),"line-gap-width":new G(Le.paint_line["line-gap-width"]),"line-offset":new G(Le.paint_line["line-offset"]),"line-blur":new G(Le.paint_line["line-blur"]),"line-dasharray":new G(Le.paint_line["line-dasharray"]),"line-pattern":new G(Le.paint_line["line-pattern"]),"line-gradient":new J(Le.paint_line["line-gradient"]),"line-trim-offset":new O(Le.paint_line["line-trim-offset"])}),layout:gI};const O1=new class extends G{possiblyEvaluate(n,e){return e=new C(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,transition:e.transition}),super.possiblyEvaluate(n,e)}evaluate(n,e,r,a){return e=_n({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(n,e,r,a)}}(D1.paint.properties["line-width"].specification);function B1(n,e){return e>0?e+2*n:n}O1.useIntegerZoom=!0;const _I=_e([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),yI=_e([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),vI=_e([{name:"a_projected_pos",components:4,type:"Float32"}],4);_e([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const xI=_e([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),wI=_e([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const F1=_e([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),bI=_e([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);_e([{name:"triangle",components:3,type:"Uint16"}]),_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),_e([{type:"Float32",name:"offsetX"}]),_e([{type:"Int16",name:"x"},{type:"Int16",name:"y"}]);var mi=24;const vo=128;function U_(n,e){const{expression:r}=e;if(r.kind==="constant")return{kind:"constant",layoutSize:r.evaluate(new C(n+1))};if(r.kind==="source")return{kind:"source"};{const{zoomStops:a,interpolationType:u}=r;let p=0;for(;p{a.text=function(u,p,m){const y=p.layout.get("text-transform").evaluate(m,{});return y==="uppercase"?u=u.toLocaleUpperCase():y==="lowercase"&&(u=u.toLocaleLowerCase()),S.applyArabicShaping&&(u=S.applyArabicShaping(u)),u}(a.text,e,r)}),n}const rd={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂","←":"↑","→":"↓"};function SI(n){return n==="︶"||n==="﹈"||n==="︸"||n==="﹄"||n==="﹂"||n==="︾"||n==="︼"||n==="︺"||n==="︘"||n==="﹀"||n==="︐"||n==="︓"||n==="︔"||n==="`"||n===" ̄"||n==="︑"||n==="︒"}function AI(n){return n==="︵"||n==="﹇"||n==="︷"||n==="﹃"||n==="﹁"||n==="︽"||n==="︻"||n==="︹"||n==="︗"||n==="︿"}var N1=pn,U1=function(n,e,r,a,u){var p,m,y=8*u-a-1,w=(1<>1,A=-7,I=r?u-1:0,k=r?-1:1,L=n[e+I];for(I+=k,p=L&(1<<-A)-1,L>>=-A,A+=y;A>0;p=256*p+n[e+I],I+=k,A-=8);for(m=p&(1<<-A)-1,p>>=-A,A+=a;A>0;m=256*m+n[e+I],I+=k,A-=8);if(p===0)p=1-b;else{if(p===w)return m?NaN:1/0*(L?-1:1);m+=Math.pow(2,a),p-=b}return(L?-1:1)*m*Math.pow(2,p-a)},j1=function(n,e,r,a,u,p){var m,y,w,b=8*p-u-1,A=(1<>1,k=u===23?Math.pow(2,-24)-Math.pow(2,-77):0,L=a?0:p-1,R=a?1:-1,B=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(y=isNaN(e)?1:0,m=A):(m=Math.floor(Math.log(e)/Math.LN2),e*(w=Math.pow(2,-m))<1&&(m--,w*=2),(e+=m+I>=1?k/w:k*Math.pow(2,1-I))*w>=2&&(m++,w/=2),m+I>=A?(y=0,m=A):m+I>=1?(y=(e*w-1)*Math.pow(2,u),m+=I):(y=e*Math.pow(2,I-1)*Math.pow(2,u),m=0));u>=8;n[r+L]=255&y,L+=R,y/=256,u-=8);for(m=m<0;n[r+L]=255&m,L+=R,m/=256,b-=8);n[r+L-R]|=128*B};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function pn(n){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(n)?n:new Uint8Array(n||0),this.pos=0,this.type=0,this.length=this.buf.length}pn.Varint=0,pn.Fixed64=1,pn.Bytes=2,pn.Fixed32=5;var j_=4294967296,V1=1/j_,G1=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Ss(n){return n.type===pn.Bytes?n.readVarint()+n.pos:n.pos+1}function Zc(n,e,r){return r?4294967296*e+(n>>>0):4294967296*(e>>>0)+(n>>>0)}function $1(n,e,r){var a=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(a);for(var u=r.pos-1;u>=n;u--)r.buf[u+a]=r.buf[u]}function CI(n,e){for(var r=0;r>>8,n[r+2]=e>>>16,n[r+3]=e>>>24}function q1(n,e){return(n[e]|n[e+1]<<8|n[e+2]<<16)+(n[e+3]<<24)}pn.prototype={destroy:function(){this.buf=null},readFields:function(n,e,r){for(r=r||this.length;this.pos>3,p=this.pos;this.type=7&a,n(u,e,this),this.pos===p&&this.skip(a)}return e},readMessage:function(n,e){return this.readFields(n,e,this.readVarint()+this.pos)},readFixed32:function(){var n=Cf(this.buf,this.pos);return this.pos+=4,n},readSFixed32:function(){var n=q1(this.buf,this.pos);return this.pos+=4,n},readFixed64:function(){var n=Cf(this.buf,this.pos)+Cf(this.buf,this.pos+4)*j_;return this.pos+=8,n},readSFixed64:function(){var n=Cf(this.buf,this.pos)+q1(this.buf,this.pos+4)*j_;return this.pos+=8,n},readFloat:function(){var n=U1(this.buf,this.pos,!0,23,4);return this.pos+=4,n},readDouble:function(){var n=U1(this.buf,this.pos,!0,52,8);return this.pos+=8,n},readVarint:function(n){var e,r,a=this.buf;return e=127&(r=a[this.pos++]),r<128?e:(e|=(127&(r=a[this.pos++]))<<7,r<128?e:(e|=(127&(r=a[this.pos++]))<<14,r<128?e:(e|=(127&(r=a[this.pos++]))<<21,r<128?e:function(u,p,m){var y,w,b=m.buf;if(y=(112&(w=b[m.pos++]))>>4,w<128||(y|=(127&(w=b[m.pos++]))<<3,w<128)||(y|=(127&(w=b[m.pos++]))<<10,w<128)||(y|=(127&(w=b[m.pos++]))<<17,w<128)||(y|=(127&(w=b[m.pos++]))<<24,w<128)||(y|=(1&(w=b[m.pos++]))<<31,w<128))return Zc(u,y,p);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=a[this.pos]))<<28,n,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var n=this.readVarint();return n%2==1?(n+1)/-2:n/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var n=this.readVarint()+this.pos,e=this.pos;return this.pos=n,n-e>=12&&G1?function(r,a,u){return G1.decode(r.subarray(a,u))}(this.buf,e,n):function(r,a,u){for(var p="",m=a;m239?4:A>223?3:A>191?2:1;if(m+k>u)break;k===1?A<128&&(I=A):k===2?(192&(y=r[m+1]))==128&&(I=(31&A)<<6|63&y)<=127&&(I=null):k===3?(w=r[m+2],(192&(y=r[m+1]))==128&&(192&w)==128&&((I=(15&A)<<12|(63&y)<<6|63&w)<=2047||I>=55296&&I<=57343)&&(I=null)):k===4&&(w=r[m+2],b=r[m+3],(192&(y=r[m+1]))==128&&(192&w)==128&&(192&b)==128&&((I=(15&A)<<18|(63&y)<<12|(63&w)<<6|63&b)<=65535||I>=1114112)&&(I=null)),I===null?(I=65533,k=1):I>65535&&(I-=65536,p+=String.fromCharCode(I>>>10&1023|55296),I=56320|1023&I),p+=String.fromCharCode(I),m+=k}return p}(this.buf,e,n)},readBytes:function(){var n=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,n);return this.pos=n,e},readPackedVarint:function(n,e){if(this.type!==pn.Bytes)return n.push(this.readVarint(e));var r=Ss(this);for(n=n||[];this.pos127;);else if(e===pn.Bytes)this.pos=this.readVarint()+this.pos;else if(e===pn.Fixed32)this.pos+=4;else{if(e!==pn.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(n,e){this.writeVarint(n<<3|e)},realloc:function(n){for(var e=this.length||16;e268435455||n<0?function(e,r){var a,u;if(e>=0?(a=e%4294967296|0,u=e/4294967296|0):(u=~(-e/4294967296),4294967295^(a=~(-e%4294967296))?a=a+1|0:(a=0,u=u+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");r.realloc(10),function(p,m,y){y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,y.buf[y.pos]=127&(p>>>=7)}(a,0,r),function(p,m){var y=(7&p)<<4;m.buf[m.pos++]|=y|((p>>>=3)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p)))))}(u,r)}(n,this):(this.realloc(4),this.buf[this.pos++]=127&n|(n>127?128:0),n<=127||(this.buf[this.pos++]=127&(n>>>=7)|(n>127?128:0),n<=127||(this.buf[this.pos++]=127&(n>>>=7)|(n>127?128:0),n<=127||(this.buf[this.pos++]=n>>>7&127))))},writeSVarint:function(n){this.writeVarint(n<0?2*-n-1:2*n)},writeBoolean:function(n){this.writeVarint(!!n)},writeString:function(n){n=String(n),this.realloc(4*n.length),this.pos++;var e=this.pos;this.pos=function(a,u,p){for(var m,y,w=0;w55295&&m<57344){if(!y){m>56319||w+1===u.length?(a[p++]=239,a[p++]=191,a[p++]=189):y=m;continue}if(m<56320){a[p++]=239,a[p++]=191,a[p++]=189,y=m;continue}m=y-55296<<10|m-56320|65536,y=null}else y&&(a[p++]=239,a[p++]=191,a[p++]=189,y=null);m<128?a[p++]=m:(m<2048?a[p++]=m>>6|192:(m<65536?a[p++]=m>>12|224:(a[p++]=m>>18|240,a[p++]=m>>12&63|128),a[p++]=m>>6&63|128),a[p++]=63&m|128)}return p}(this.buf,n,this.pos);var r=this.pos-e;r>=128&&$1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(n){this.realloc(4),j1(this.buf,n,this.pos,!0,23,4),this.pos+=4},writeDouble:function(n){this.realloc(8),j1(this.buf,n,this.pos,!0,52,8),this.pos+=8},writeBytes:function(n){var e=n.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&$1(r,a,this),this.pos=r-1,this.writeVarint(a),this.pos+=a},writeMessage:function(n,e,r){this.writeTag(n,pn.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(n,e){e.length&&this.writeMessage(n,CI,e)},writePackedSVarint:function(n,e){e.length&&this.writeMessage(n,II,e)},writePackedBoolean:function(n,e){e.length&&this.writeMessage(n,PI,e)},writePackedFloat:function(n,e){e.length&&this.writeMessage(n,MI,e)},writePackedDouble:function(n,e){e.length&&this.writeMessage(n,kI,e)},writePackedFixed32:function(n,e){e.length&&this.writeMessage(n,zI,e)},writePackedSFixed32:function(n,e){e.length&&this.writeMessage(n,LI,e)},writePackedFixed64:function(n,e){e.length&&this.writeMessage(n,RI,e)},writePackedSFixed64:function(n,e){e.length&&this.writeMessage(n,DI,e)},writeBytesField:function(n,e){this.writeTag(n,pn.Bytes),this.writeBytes(e)},writeFixed32Field:function(n,e){this.writeTag(n,pn.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(n,e){this.writeTag(n,pn.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(n,e){this.writeTag(n,pn.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(n,e){this.writeTag(n,pn.Fixed64),this.writeSFixed64(e)},writeVarintField:function(n,e){this.writeTag(n,pn.Varint),this.writeVarint(e)},writeSVarintField:function(n,e){this.writeTag(n,pn.Varint),this.writeSVarint(e)},writeStringField:function(n,e){this.writeTag(n,pn.Bytes),this.writeString(e)},writeFloatField:function(n,e){this.writeTag(n,pn.Fixed32),this.writeFloat(e)},writeDoubleField:function(n,e){this.writeTag(n,pn.Fixed64),this.writeDouble(e)},writeBooleanField:function(n,e){this.writeVarintField(n,!!e)}};var If=le(N1);const V_=3;function OI(n,e,r){e.glyphs=[],n===1&&r.readMessage(BI,e)}function BI(n,e,r){if(n===3){const{id:a,bitmap:u,width:p,height:m,left:y,top:w,advance:b}=r.readMessage(FI,{});e.glyphs.push({id:a,bitmap:new Ts({width:p+2*V_,height:m+2*V_},u),metrics:{width:p,height:m,left:y,top:w,advance:b}})}else n===4?e.ascender=r.readSVarint():n===5&&(e.descender=r.readSVarint())}function FI(n,e,r){n===1?e.id=r.readVarint():n===2?e.bitmap=r.readBytes():n===3?e.width=r.readVarint():n===4?e.height=r.readVarint():n===5?e.left=r.readSVarint():n===6?e.top=r.readSVarint():n===7&&(e.advance=r.readVarint())}const Z1=V_;function G_(n){let e=0,r=0;for(const m of n)e+=m.w*m.h,r=Math.max(r,m.w);n.sort((m,y)=>y.h-m.h);const a=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let u=0,p=0;for(const m of n)for(let y=a.length-1;y>=0;y--){const w=a[y];if(!(m.w>w.w||m.h>w.h)){if(m.x=w.x,m.y=w.y,p=Math.max(p,m.y+m.h),u=Math.max(u,m.x+m.w),m.w===w.w&&m.h===w.h){const b=a.pop();ye.hasImage(a)),e.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const a in e.updatedImages)this.patchUpdatedImage(this.iconPositions[a],e.getImage(a),r),this.patchUpdatedImage(this.patternPositions[a],e.getImage(a),r)}patchUpdatedImage(e,r,a){if(!e||!r||e.version===r.version)return;e.version=r.version;const[u,p]=e.tl;a.update(r.data,void 0,{x:u,y:p})}}ht($_,"ImagePosition"),ht(W1,"ImageAtlas");const Cr={horizontal:1,vertical:2,horizontalOnly:3},H1=-17;class od{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(e,r){const a=new od;return a.scale=e||1,a.fontStack=r,a}static forImage(e){const r=new od;return r.imageName=e,r}}class Hc{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(e,r){const a=new Hc;for(let u=0;u=0&&a>=e&&Mf[this.text.charCodeAt(a)];a--)r--;this.text=this.text.substring(e,r),this.sectionIndex=this.sectionIndex.slice(e,r)}substring(e,r){const a=new Hc;return a.text=this.text.substring(e,r),a.sectionIndex=this.sectionIndex.slice(e,r),a.sections=this.sections,a}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,r)=>Math.max(e,this.sections[r].scale),0)}addTextSection(e,r){this.text+=e.text,this.sections.push(od.forText(e.scale,e.fontStack||r));const a=this.sections.length-1;for(let u=0;u=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function q_(n,e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=Hc.fromFeature(n,u);I===Cr.vertical&&B.verticalizePunctuation(k);let V=[];const K=function(se,Se,be,Re,We,Ie){if(!se)return[];const Ne=[],Ue=function(rt,pt,ot,At,Qe,_t){let Ct=0;for(let Ht=0;Ht=0;let Je=0;for(let rt=0;rt0&&bo>un&&(un=bo)}else{const ji=be[Jn.fontStack];if(!ji)continue;ji[In]&&(gn=ji[In]);const li=Se[Jn.fontStack];if(!li)continue;const bo=li.glyphs[In];if(!bo)continue;if(qn=bo.metrics,Zn=In!==8203?mi:0,_t){const tu=li.ascender!==void 0?Math.abs(li.ascender):0,md=li.descender!==void 0?Math.abs(li.descender):0,gd=(tu+md)*Kt;Cn-r/2;){if(m--,m<0)return!1;y-=n[m].dist(p),p=n[m]}y+=n[m].dist(n[m+1]),m++;const w=[];let b=0;for(;ya;)b-=w.shift().angleDelta;if(b>u)return!1;m++,y+=A.dist(I)}return!0}function nw(n){let e=0;for(let r=0;rb){const R=(b-w)/L,B=Zt(I.x,k.x,R),V=Zt(I.y,k.y,R),K=new As(B,V,0,k.angleTo(I),A);return!m||tw(n,K,y,m,e)?K:void 0}w+=L}}function GI(n,e,r,a,u,p,m,y,w){const b=iw(a,p,m),A=rw(a,u),I=A*m,k=n[0].x===0||n[0].x===w||n[0].y===0||n[0].y===w;return e-I=0&&te=0&&ae=0&&k+b<=A){const se=new As(te,ae,0,ie,R);se._round(),a&&!tw(n,se,p,a,u)||L.push(se)}}I+=K}return y||L.length||m||(L=ow(n,I/2,r,a,u,p,m,!0,w)),L}function sw(n,e,r,a,u){const p=[];for(let m=0;m=a&&I.x>=a||(A.x>=a?A=new Ve(a,A.y+(a-A.x)/(I.x-A.x)*(I.y-A.y))._round():I.x>=a&&(I=new Ve(a,A.y+(a-A.x)/(I.x-A.x)*(I.y-A.y))._round()),A.y>=u&&I.y>=u||(A.y>=u?A=new Ve(A.x+(u-A.y)/(I.y-A.y)*(I.x-A.x),u)._round():I.y>=u&&(I=new Ve(A.x+(u-A.y)/(I.y-A.y)*(I.x-A.x),u)._round()),w&&A.equals(w[w.length-1])||(w=[A],p.push(w)),w.push(I)))))}}return p}ht(As,"Anchor");const sd=1e20;function aw(n,e,r,a,u,p,m,y,w){for(let b=e;b-1);w++,p[w]=y,m[w]=b,m[w+1]=sd}for(let y=0,w=0;y{let y=this.entries[u];y||(y=this.entries[u]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let w=y.glyphs[p];if(w!==void 0)return void m(null,{stack:u,id:p,glyph:w});if(w=this._tinySDF(y,u,p),w)return y.glyphs[p]=w,void m(null,{stack:u,id:p,glyph:w});const b=Math.floor(p/256);if(256*b>65535)return void m(new Error("glyphs > 65535 not supported"));if(y.ranges[b])return void m(null,{stack:u,id:p,glyph:w});let A=y.requests[b];A||(A=y.requests[b]=[],Xc.loadGlyphRange(u,b,this.url,this.requestManager,(I,k)=>{if(k){y.ascender=k.ascender,y.descender=k.descender;for(const L in k.glyphs)this._doesCharSupportLocalGlyph(+L)||(y.glyphs[+L]=k.glyphs[+L]);y.ranges[b]=!0}for(const L of A)L(I,k);delete y.requests[b]})),A.push((I,k)=>{I?m(I):k&&m(null,{stack:u,id:p,glyph:k.glyphs[p]||null})})},(u,p)=>{if(u)r(u);else if(p){const m={};for(const{stack:y,id:w,glyph:b}of p)m[y]===void 0&&(m[y]={}),m[y].glyphs===void 0&&(m[y].glyphs={}),m[y].glyphs[w]=b&&{id:b.id,bitmap:b.bitmap.clone(),metrics:b.metrics},m[y].ascender=this.entries[y].ascender,m[y].descender=this.entries[y].descender;r(null,m)}})}_doesCharSupportLocalGlyph(e){return this.localGlyphMode!==W_.none&&(this.localGlyphMode===W_.all?!!this.localFontFamily:!!this.localFontFamily&&(st["CJK Unified Ideographs"](e)||st["Hangul Syllables"](e)||st.Hiragana(e)||st.Katakana(e)||st["CJK Symbols and Punctuation"](e)))}_tinySDF(e,r,a){const u=this.localFontFamily;if(!u||!this._doesCharSupportLocalGlyph(a))return;let p=e.tinySDF;if(!p){let B="400";/bold/i.test(r)?B="900":/medium/i.test(r)?B="500":/light/i.test(r)&&(B="200"),p=e.tinySDF=new Xc.TinySDF({fontFamily:u,fontWeight:B,fontSize:24*xo,buffer:3*xo,radius:8*xo}),p.fontWeight=B}if(this.localGlyphs[p.fontWeight][a])return this.localGlyphs[p.fontWeight][a];const m=String.fromCharCode(a),{data:y,width:w,height:b,glyphWidth:A,glyphHeight:I,glyphLeft:k,glyphTop:L,glyphAdvance:R}=p.draw(m);return this.localGlyphs[p.fontWeight][a]={id:a,bitmap:new Ts({width:w,height:b},y),metrics:{width:A/xo,height:I/xo,left:k/xo,top:L/xo-27,advance:R/xo,localGlyph:!0}}}}Xc.loadGlyphRange=function(n,e,r,a,u){const p=256*e,m=p+255,y=a.transformRequest(a.normalizeGlyphsURL(r).replace("{fontstack}",n).replace("{range}",`${p}-${m}`),ss.Glyphs);Gs(y,(w,b)=>{if(w)u(w);else if(b){const A={},I=function(k){return new If(k).readFields(OI,{})}(b);for(const k of I.glyphs)A[k.id]=k;u(null,{glyphs:A,ascender:I.ascender,descender:I.descender})}})},Xc.TinySDF=class{constructor({fontSize:n=24,buffer:e=3,radius:r=8,cutoff:a=.25,fontFamily:u="sans-serif",fontWeight:p="normal",fontStyle:m="normal"}={}){this.buffer=e,this.cutoff=a,this.radius=r;const y=this.size=n+4*e,w=this._createCanvas(y),b=this.ctx=w.getContext("2d",{willReadFrequently:!0});b.font=`${m} ${p} ${n}px ${u}`,b.textBaseline="alphabetic",b.textAlign="left",b.fillStyle="black",this.gridOuter=new Float64Array(y*y),this.gridInner=new Float64Array(y*y),this.f=new Float64Array(y),this.z=new Float64Array(y+1),this.v=new Uint16Array(y)}_createCanvas(n){const e=document.createElement("canvas");return e.width=e.height=n,e}draw(n){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:a,actualBoundingBoxLeft:u,actualBoundingBoxRight:p}=this.ctx.measureText(n),m=Math.ceil(r),y=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(p-u))),w=Math.min(this.size-this.buffer,m+Math.ceil(a)),b=y+2*this.buffer,A=w+2*this.buffer,I=Math.max(b*A,0),k=new Uint8ClampedArray(I),L={data:k,width:b,height:A,glyphWidth:y,glyphHeight:w,glyphTop:m,glyphLeft:0,glyphAdvance:e};if(y===0||w===0)return L;const{ctx:R,buffer:B,gridInner:V,gridOuter:K}=this;R.clearRect(B,B,y,w),R.fillText(n,B,B+m);const ie=R.getImageData(B,B,y,w);K.fill(sd,0,I),V.fill(0,0,I);for(let Y=0;Y0?Se*Se:0,V[se]=Se<0?Se*Se:0}}aw(K,0,0,b,A,b,this.f,this.v,this.z),aw(V,B,B,y,w,b,this.f,this.v,this.z);for(let Y=0;YIe+Ne[1]-Ne[0],R=I.reduce(L,0),B=k.reduce(L,0),V=y-R,K=w-B;let ie=0,Y=R,te=0,ae=B,se=0,Se=V,be=0,Re=K;if(p.content&&a){const Ie=p.content;ie=kf(I,0,Ie[0]),te=kf(k,0,Ie[1]),Y=kf(I,Ie[0],Ie[2]),ae=kf(k,Ie[1],Ie[3]),se=Ie[0]-ie,be=Ie[1]-te,Se=Ie[2]-Ie[0]-Y,Re=Ie[3]-Ie[1]-ae}const We=(Ie,Ne,Ue,$e)=>{const Je=Pf(Ie.stretch-ie,Y,b,n.left),Pe=zf(Ie.fixed-se,Se,Ie.stretch,R),rt=Pf(Ne.stretch-te,ae,A,n.top),pt=zf(Ne.fixed-be,Re,Ne.stretch,B),ot=Pf(Ue.stretch-ie,Y,b,n.left),At=zf(Ue.fixed-se,Se,Ue.stretch,R),Qe=Pf($e.stretch-te,ae,A,n.top),_t=zf($e.fixed-be,Re,$e.stretch,B),Ct=new Ve(Je,rt),Ht=new Ve(ot,rt),It=new Ve(ot,Qe),bt=new Ve(Je,Qe),xn=new Ve(Pe/m,pt/m),zt=new Ve(At/m,_t/m),Lt=e*Math.PI/180;if(Lt){const mn=Math.sin(Lt),un=Math.cos(Lt),Cn=[un,-mn,mn,un];Ct._matMult(Cn),Ht._matMult(Cn),bt._matMult(Cn),It._matMult(Cn)}const cn=Ie.stretch+Ie.fixed,fn=Ne.stretch+Ne.fixed;return{tl:Ct,tr:Ht,bl:bt,br:It,tex:{x:p.paddedRect.x+Kc+cn,y:p.paddedRect.y+Kc+fn,w:Ue.stretch+Ue.fixed-cn,h:$e.stretch+$e.fixed-fn},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:xn,pixelOffsetBR:zt,minFontScaleX:Se/m/b,minFontScaleY:Re/m/A,isSDF:r}};if(a&&(p.stretchX||p.stretchY)){const Ie=uw(I,V,R),Ne=uw(k,K,B);for(let Ue=0;Ue0)for(let a=(this.length>>1)-1;a>=0;a--)this._down(a)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const e=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:r,compare:a}=this,u=r[e];for(;e>0;){const p=e-1>>1,m=r[p];if(a(u,m)>=0)break;r[e]=m,e=p}r[e]=u}_down(e){const{data:r,compare:a}=this,u=this.length>>1,p=r[e];for(;e=0)break;r[e]=y,e=m}r[e]=p}}function ZI(n,e){return ne?1:0}function WI(n,e=1,r=!1){let a=1/0,u=1/0,p=-1/0,m=-1/0;const y=n[0];for(let L=0;Lp)&&(p=R.x),(!L||R.y>m)&&(m=R.y)}const w=Math.min(p-a,m-u);let b=w/2;const A=new qI([],HI);if(w===0)return new Ve(a,u);for(let L=a;LI.d||!I.d)&&(I=L,r&&console.log("found best %d after %d probes",Math.round(1e4*L.d)/1e4,k)),L.max-I.d<=e||(b=L.h/2,A.push(new Yc(L.p.x-b,L.p.y-b,b,n)),A.push(new Yc(L.p.x+b,L.p.y-b,b,n)),A.push(new Yc(L.p.x-b,L.p.y+b,b,n)),A.push(new Yc(L.p.x+b,L.p.y+b,b,n)),k+=4)}return r&&(console.log(`num probes: ${k}`),console.log(`best distance: ${I.d}`)),I.p}function HI(n,e){return e.max-n.max}class Yc{constructor(e,r,a,u){this.p=new Ve(e,r),this.h=a,this.d=function(p,m){let y=!1,w=1/0;for(let b=0;bp.y!=B.y>p.y&&p.x<(B.x-R.x)*(p.y-R.y)/(B.y-R.y)+R.x&&(y=!y),w=Math.min(w,o1(p,R,B))}}return(y?1:-1)*Math.sqrt(w)}(this.p,u),this.max=this.d+this.h*Math.SQRT2}}const Jc=7,H_=Number.POSITIVE_INFINITY,XI=Math.sqrt(2);function hw(n,[e,r]){let a=0,u=0;if(r===H_){e<0&&(e=0);const p=e/XI;switch(n){case"top-right":case"top-left":u=p-Jc;break;case"bottom-right":case"bottom-left":u=-p+Jc;break;case"bottom":u=-e+Jc;break;case"top":u=e-Jc}switch(n){case"top-right":case"bottom-right":a=-p;break;case"top-left":case"bottom-left":a=p;break;case"left":a=e;break;case"right":a=-e}}else{switch(e=Math.abs(e),r=Math.abs(r),n){case"top-right":case"top-left":case"top":u=r-Jc;break;case"bottom-right":case"bottom-left":case"bottom":u=-r+Jc}switch(n){case"top-right":case"bottom-right":case"right":a=-e;break;case"top-left":case"bottom-left":case"left":a=e}}return[a,u]}function KI(n,e,r,a,u,p,m,y,w,b){n.createArrays(),n.tilePixelRatio=vt/(512*n.overscaling),n.compareText={},n.iconsNeedLinear=!1;const A=n.layers[0].layout,I=n.layers[0]._unevaluatedLayout._values,k={};if(n.textSizeData.kind==="composite"){const{minZoom:B,maxZoom:V}=n.textSizeData;k.compositeTextSizes=[I["text-size"].possiblyEvaluate(new C(B),y),I["text-size"].possiblyEvaluate(new C(V),y)]}if(n.iconSizeData.kind==="composite"){const{minZoom:B,maxZoom:V}=n.iconSizeData;k.compositeIconSizes=[I["icon-size"].possiblyEvaluate(new C(B),y),I["icon-size"].possiblyEvaluate(new C(V),y)]}k.layoutTextSize=I["text-size"].possiblyEvaluate(new C(w+1),y),k.layoutIconSize=I["icon-size"].possiblyEvaluate(new C(w+1),y),k.textMaxSize=I["text-size"].possiblyEvaluate(new C(18),y);const L=A.get("text-rotation-alignment")==="map"&&A.get("symbol-placement")!=="point",R=A.get("text-size");for(const B of n.features){const V=A.get("text-font").evaluate(B,{},y).join(","),K=R.evaluate(B,{},y),ie=k.layoutTextSize.evaluate(B,{},y),Y=(k.layoutIconSize.evaluate(B,{},y),{horizontal:{},vertical:void 0}),te=B.text;let ae,se=[0,0];if(te){const Re=te.toString(),We=A.get("text-letter-spacing").evaluate(B,{},y)*mi,Ie=A.get("text-line-height").evaluate(B,{},y)*mi,Ne=i_(Re)?We:0,Ue=A.get("text-anchor").evaluate(B,{},y),$e=A.get("text-variable-anchor");if(!$e){const ot=A.get("text-radial-offset").evaluate(B,{},y);se=ot?hw(Ue,[ot*mi,H_]):A.get("text-offset").evaluate(B,{},y).map(At=>At*mi)}let Je=L?"center":A.get("text-justify").evaluate(B,{},y);const Pe=A.get("symbol-placement")==="point",rt=Pe?A.get("text-max-width").evaluate(B,{},y)*mi:1/0,pt=ot=>{n.allowVerticalPlacement&&Ph(Re)&&(Y.vertical=q_(te,e,r,u,V,rt,Ie,Ue,ot,Ne,se,Cr.vertical,!0,ie,K))};if(!L&&$e){const ot=Je==="auto"?$e.map(Qe=>X_(Qe)):[Je];let At=!1;for(let Qe=0;Qe=0||!Ph(Re)){const ot=q_(te,e,r,u,V,rt,Ie,Ue,Je,Ne,se,Cr.horizontal,!1,ie,K);ot&&(Y.horizontal[Je]=ot)}pt(Pe?"left":Je)}}let Se=!1;if(B.icon&&B.icon.name){const Re=a[B.icon.name];Re&&(ae=jI(u[B.icon.name],A.get("icon-offset").evaluate(B,{},y),A.get("icon-anchor").evaluate(B,{},y)),Se=Re.sdf,n.sdfIcons===void 0?n.sdfIcons=Re.sdf:n.sdfIcons!==Re.sdf&&vn("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(Re.pixelRatio!==n.pixelRatio||A.get("icon-rotate").constantOr(1)!==0)&&(n.iconsNeedLinear=!0))}const be=pw(Y.horizontal)||Y.vertical;n.iconsInText||(n.iconsInText=!!be&&be.iconsInText),(be||ae)&&YI(n,B,Y,ae,a,k,ie,0,se,Se,m,y,b)}p&&n.generateCollisionDebugBuffers(w,n.collisionBoxArray)}function X_(n){switch(n){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function YI(n,e,r,a,u,p,m,y,w,b,A,I,k){let L=p.textMaxSize.evaluate(e,{},I);L===void 0&&(L=m);const R=n.layers[0].layout,B=R.get("icon-offset").evaluate(e,{},I),V=pw(r.horizontal)||r.vertical,K=k.name==="globe",ie=mi,Y=m/ie,te=n.tilePixelRatio*L/ie,ae=(Ue=n.overscaling,n.zoom>18&&Ue>2&&(Ue>>=1),Math.max(vt/(512*Ue),1)*R.get("symbol-spacing")),se=R.get("text-padding")*n.tilePixelRatio,Se=R.get("icon-padding")*n.tilePixelRatio,be=St(R.get("text-max-angle")),Re=R.get("text-rotation-alignment")==="map"&&R.get("symbol-placement")!=="point",We=R.get("icon-rotation-alignment")==="map"&&R.get("symbol-placement")!=="point",Ie=R.get("symbol-placement"),Ne=ae/2;var Ue;const $e=R.get("icon-text-fit");let Je;a&&$e!=="none"&&(n.allowVerticalPlacement&&r.vertical&&(Je=ew(a,r.vertical,$e,R.get("icon-text-fit-padding"),B,Y)),V&&(a=ew(a,V,$e,R.get("icon-text-fit-padding"),B,Y)));const Pe=(rt,pt,ot)=>{if(pt.x<0||pt.x>=vt||pt.y<0||pt.y>=vt)return;let At=null;if(K){const{x:Qe,y:_t,z:Ct}=k.projectTilePoint(pt.x,pt.y,ot);At={anchor:new As(Qe,_t,Ct,0,void 0),up:k.upVector(ot,pt.x,pt.y)}}(function(Qe,_t,Ct,Ht,It,bt,xn,zt,Lt,cn,fn,mn,un,Cn,zn,Gn,hn,Jn,$n,In,Kt,qn,gn,Ui,Zn){const gi=Qe.addToLineVertexArray(_t,Ht);let ai,ji,li,bo,tu,md,gd,Zw=0,Ww=0,Hw=0,Xw=0,uy=-1,hy=-1;const Xo={};let Kw=s_("");const Rl=Ct?Ct.anchor:_t;let dy=0,py=0;if(Lt._unevaluatedLayout.getValue("text-radial-offset")===void 0?[dy,py]=Lt.layout.get("text-offset").evaluate(Kt,{},Zn).map(hr=>hr*mi):(dy=Lt.layout.get("text-radial-offset").evaluate(Kt,{},Zn)*mi,py=H_),Qe.allowVerticalPlacement&&It.vertical){const hr=It.vertical;if(zn)md=K_(hr),zt&&(gd=K_(zt));else{const dr=Lt.layout.get("text-rotate").evaluate(Kt,{},Zn)+90;li=Lf(cn,Rl,_t,fn,mn,un,hr,Cn,dr,Gn),zt&&(bo=Lf(cn,Rl,_t,fn,mn,un,zt,Jn,dr))}}if(bt){const hr=Lt.layout.get("icon-rotate").evaluate(Kt,{},Zn),dr=Lt.layout.get("icon-text-fit")!=="none",_d=cw(bt,hr,gn,dr),my=zt?cw(zt,hr,gn,dr):void 0;ji=Lf(cn,Rl,_t,fn,mn,un,bt,Jn,hr),Zw=4*_d.length;const Yw=Qe.iconSizeData;let Dl=null;Yw.kind==="source"?(Dl=[vo*Lt.layout.get("icon-size").evaluate(Kt,{},Zn)],Dl[0]>pa&&vn(`${Qe.layerIds[0]}: Value for "icon-size" is >= ${ad}. Reduce your "icon-size".`)):Yw.kind==="composite"&&(Dl=[vo*qn.compositeIconSizes[0].evaluate(Kt,{},Zn),vo*qn.compositeIconSizes[1].evaluate(Kt,{},Zn)],(Dl[0]>pa||Dl[1]>pa)&&vn(`${Qe.layerIds[0]}: Value for "icon-size" is >= ${ad}. Reduce your "icon-size".`)),Qe.addSymbols(Qe.icon,_d,Dl,In,$n,Kt,!1,Ct,_t,gi.lineStartIndex,gi.lineLength,-1,Ui,Zn),uy=Qe.icon.placedSymbolArray.length-1,my&&(Ww=4*my.length,Qe.addSymbols(Qe.icon,my,Dl,In,$n,Kt,Cr.vertical,Ct,_t,gi.lineStartIndex,gi.lineLength,-1,Ui,Zn),hy=Qe.icon.placedSymbolArray.length-1)}for(const hr in It.horizontal){const dr=It.horizontal[hr];ai||(Kw=s_(dr.text),zn?tu=K_(dr):ai=Lf(cn,Rl,_t,fn,mn,un,dr,Cn,Lt.layout.get("text-rotate").evaluate(Kt,{},Zn),Gn));const _d=dr.positionedLines.length===1;if(Hw+=dw(Qe,Ct,_t,dr,xn,Lt,zn,Kt,Gn,gi,It.vertical?Cr.horizontal:Cr.horizontalOnly,_d?Object.keys(It.horizontal):[hr],Xo,uy,qn,Ui,Zn),_d)break}It.vertical&&(Xw+=dw(Qe,Ct,_t,It.vertical,xn,Lt,zn,Kt,Gn,gi,Cr.vertical,["vertical"],Xo,hy,qn,Ui,Zn));let va=-1;const fy=(hr,dr)=>hr?Math.max(hr,dr):dr;va=fy(tu,va),va=fy(md,va),va=fy(gd,va);const SM=va>-1?1:0;Qe.glyphOffsetArray.length>=ma.MAX_GLYPHS&&vn("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Kt.sortKey!==void 0&&Qe.addToSortKeyRanges(Qe.symbolInstances.length,Kt.sortKey),Qe.symbolInstances.emplaceBack(Rl.x,Rl.y,Rl.z,_t.x,_t.y,Xo.right>=0?Xo.right:-1,Xo.center>=0?Xo.center:-1,Xo.left>=0?Xo.left:-1,Xo.vertical>=0?Xo.vertical:-1,uy,hy,Kw,ai!==void 0?ai:Qe.collisionBoxArray.length,ai!==void 0?ai+1:Qe.collisionBoxArray.length,li!==void 0?li:Qe.collisionBoxArray.length,li!==void 0?li+1:Qe.collisionBoxArray.length,ji!==void 0?ji:Qe.collisionBoxArray.length,ji!==void 0?ji+1:Qe.collisionBoxArray.length,bo||Qe.collisionBoxArray.length,bo?bo+1:Qe.collisionBoxArray.length,fn,Hw,Xw,Zw,Ww,SM,0,dy,py,va)})(n,pt,At,rt,r,a,u,Je,n.layers[0],n.collisionBoxArray,e.index,e.sourceLayerIndex,n.index,se,Re,w,0,Se,We,B,e,p,b,A,I)};if(Ie==="line")for(const rt of sw(e.geometry,0,0,vt,vt)){const pt=GI(rt,ae,be,r.vertical||V,a,ie,te,n.overscaling,vt);for(const ot of pt)V&&JI(n,V.text,Ne,ot)||Pe(rt,ot,I)}else if(Ie==="line-center"){for(const rt of e.geometry)if(rt.length>1){const pt=VI(rt,be,r.vertical||V,a,ie,te);pt&&Pe(rt,pt,I)}}else if(e.type==="Polygon")for(const rt of O_(e.geometry,0)){const pt=WI(rt,16);Pe(rt[0],new As(pt.x,pt.y,0,0,void 0),I)}else if(e.type==="LineString")for(const rt of e.geometry)Pe(rt,new As(rt[0].x,rt[0].y,0,0,void 0),I);else if(e.type==="Point")for(const rt of e.geometry)for(const pt of rt)Pe([pt],new As(pt.x,pt.y,0,0,void 0),I)}const ad=255,pa=ad*vo;function dw(n,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V){const K=function(te,ae,se,Se,be,Re,We,Ie){const Ne=[];if(ae.positionedLines.length===0)return Ne;const Ue=Se.layout.get("text-rotate").evaluate(Re,{})*Math.PI/180,$e=function(ot){const At=ot[0],Qe=ot[1],_t=At*Qe;return _t>0?[At,-Qe]:_t<0?[-At,Qe]:At===0?[Qe,At]:[Qe,-At]}(se);let Je=Math.abs(ae.top-ae.bottom);for(const ot of ae.positionedLines)Je-=ot.lineOffset;const Pe=ae.positionedLines.length,rt=Je/Pe;let pt=ae.top-se[1];for(let ot=0;otpa&&vn(`${n.layerIds[0]}: Value for "text-size" is >= ${ad}. Reduce your "text-size".`)):ie.kind==="composite"&&(Y=[vo*R.compositeTextSizes[0].evaluate(y,{},V),vo*R.compositeTextSizes[1].evaluate(y,{},V)],(Y[0]>pa||Y[1]>pa)&&vn(`${n.layerIds[0]}: Value for "text-size" is >= ${ad}. Reduce your "text-size".`)),n.addSymbols(n.text,K,Y,w,m,y,A,e,r,b.lineStartIndex,b.lineLength,L,B,V);for(const te of I)k[te]=n.text.placedSymbolArray.length-1;return 4*K.length}function pw(n){for(const e in n)return n[e];return null}function Lf(n,e,r,a,u,p,m,y,w,b){let A=m.top,I=m.bottom,k=m.left,L=m.right;const R=m.collisionPadding;if(R&&(k-=R[0],A-=R[1],L+=R[2],I+=R[3]),w){const B=new Ve(k,A),V=new Ve(L,A),K=new Ve(k,I),ie=new Ve(L,I),Y=St(w);let te=new Ve(0,0);b&&(te=new Ve(b[0],b[1])),B._rotateAround(Y,te),V._rotateAround(Y,te),K._rotateAround(Y,te),ie._rotateAround(Y,te),k=Math.min(B.x,V.x,K.x,ie.x),L=Math.max(B.x,V.x,K.x,ie.x),A=Math.min(B.y,V.y,K.y,ie.y),I=Math.max(B.y,V.y,K.y,ie.y)}return n.emplaceBack(e.x,e.y,e.z,r.x,r.y,k,A,L,I,y,a,u,p),n.length-1}function K_(n){n.collisionPadding&&(n.top-=n.collisionPadding[1],n.bottom+=n.collisionPadding[3]);const e=n.bottom-n.top;return e>0?Math.max(10,e):null}function JI(n,e,r,a){const u=n.compareText;if(e in u){const p=u[e];for(let m=p.length-1;m>=0;m--)if(a.dist(p[m])Y&&(te(se,$e,be,Re,Ne,Ue),te($e,Se,Ne,Ue,We,Ie))}te(I,k,a,p,u,p),te(k,L,u,p,u,m),te(L,R,u,m,a,m),te(R,I,a,m,a,p),B-=Y,V-=Y,K+=Y,ie+=Y;const ae=1/Math.max(K-B,ie-V);return{scale:ae,x:B*ae,y:V*ae,x2:K*ae,y2:ie*ae,projection:e}}const QI=go(new Float32Array(16));class fa{constructor(e){this.spec=e,this.name=e.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7]}project(e,r){return{x:0,y:0,z:0}}unproject(e,r){return new ln(0,0)}projectTilePoint(e,r,a){return{x:e,y:r,z:0}}locationPoint(e,r,a=!0){return e._coordinatePoint(e.locationCoordinate(r),a)}pixelsPerMeter(e,r){return yo(1,e)*r}pixelSpaceConversion(e,r,a){return 1}farthestPixelDistance(e){return fw(e,e.pixelsPerMeter)}pointCoordinate(e,r,a,u){const p=e.horizonLineFromTop(!1),m=new Ve(r,Math.max(p,a));return e.rayIntersectionCoordinate(e.pointRayIntersection(m,u))}pointCoordinate3D(e,r,a){const u=new Ve(r,a);if(e.elevation)return e.elevation.pointCoordinate(u);{const p=this.pointCoordinate(e,u.x,u.y,0);return[p.x,p.y,p.z]}}isPointAboveHorizon(e,r){if(e.elevation)return!this.pointCoordinate3D(e,r.x,r.y);const a=e.horizonLineFromTop();return r.y0?r<-Qc+a&&(r=-Qc+a):r>Qc-a&&(r=Qc-a);const m=p/Math.pow(Df(r),u);let y=m*Math.sin(u*e),w=p-m*Math.cos(u*e);return y=.5*(y/Math.PI+.5),w=.5*(w/Math.PI+.5),{x:y,y:this.southernCenter?w:1-w,z:0}}unproject(e,r){e=(2*e-.5)*Math.PI,this.southernCenter&&(r=1-r),r=(2*(1-r)-.5)*Math.PI;const{n:a,f:u}=this,p=u-r,m=Math.sign(p),y=Math.sign(a)*Math.sqrt(e*e+p*p);let w=Math.atan2(e,Math.abs(p))*m;p*a<0&&(w-=Math.PI*Math.sign(e)*m);const b=Ke(Vt(w/a)+this.center[0],-180,180),A=Ke(Vt(2*Math.atan(Math.pow(u/y,1/a))-Qc),-Ei,Ei);return new ln(b,this.southernCenter?-A:A)}}class mw extends fa{constructor(e){super(e),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null}project(e,r){return{x:$o(e),y:qo(r),z:0}}unproject(e,r){const a=Ar(e),u=bi(r);return new ln(a,u)}}const gw=St(Ei);class rM extends fa{project(e,r){const a=(r=St(r))*r,u=a*a;return{x:.5*((e=St(e))*(.8707-.131979*a+u*(u*(.003971*a-.001529*u)-.013791))/Math.PI+.5),y:1-.5*(r*(1.007226+a*(.015085+u*(.028874*a-.044475-.005916*u)))/Math.PI+1),z:0}}unproject(e,r){e=(2*e-.5)*Math.PI;let a=r=(2*(1-r)-1)*Math.PI,u=25,p=0,m=a*a;do{m=a*a;const b=m*m;p=(a*(1.007226+m*(.015085+b*(.028874*m-.044475-.005916*b)))-r)/(1.007226+m*(.045255+b*(.259866*m-.311325-.005916*11*b))),a=Ke(a-p,-gw,gw)}while(Math.abs(p)>1e-6&&--u>0);m=a*a;const y=Ke(Vt(e/(.8707+m*(m*(m*m*m*(.003971-.001529*m)-.013791)-.131979))),-180,180),w=Vt(a);return new ln(y,w)}}const _w=St(Ei);class oM extends fa{project(e,r){r=St(r),e=St(e);const a=Math.cos(r),u=2/Math.PI,p=Math.acos(a*Math.cos(e/2)),m=Math.sin(p)/p,y=.5*(e*u+2*a*Math.sin(e/2)/m)||0,w=.5*(r+Math.sin(r)/m)||0;return{x:.5*(y/Math.PI+.5),y:1-.5*(w/Math.PI+1),z:0}}unproject(e,r){let a=e=(2*e-.5)*Math.PI,u=r=(2*(1-r)-1)*Math.PI,p=25;const m=1e-6;let y=0,w=0;do{const b=Math.cos(u),A=Math.sin(u),I=2*A*b,k=A*A,L=b*b,R=Math.cos(a/2),B=Math.sin(a/2),V=2*R*B,K=B*B,ie=1-L*R*R,Y=ie?1/ie:0,te=ie?Math.acos(b*R)*Math.sqrt(1/ie):0,ae=.5*(2*te*b*B+2*a/Math.PI)-e,se=.5*(te*A+u)-r,Se=.5*Y*(L*K+te*b*R*k)+1/Math.PI,be=Y*(V*I/4-te*A*B),Re=.125*Y*(I*B-te*A*L*V),We=.5*Y*(k*R+te*K*b)+.5,Ie=be*Re-We*Se;y=(se*be-ae*We)/Ie,w=(ae*Re-se*Se)/Ie,a=Ke(a-y,-Math.PI,Math.PI),u=Ke(u-w,-_w,_w)}while((Math.abs(y)>m||Math.abs(w)>m)&&--p>0);return new ln(Vt(a),Vt(u))}}class yw extends fa{constructor(e){super(e),this.center=e.center||[0,0],this.parallels=e.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(St(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0}project(e,r){const{scale:a,cosPhi:u}=this;return{x:St(e)*u*a+.5,y:-Math.sin(St(r))/u*a+.5,z:0}}unproject(e,r){const{scale:a,cosPhi:u}=this,p=-(r-.5)/a,m=Ke(Vt((e-.5)/a)/u,-180,180),y=Math.asin(Ke(p*u,-1,1)),w=Ke(Vt(y),-Ei,Ei);return new ln(m,w)}}class sM extends mw{constructor(e){super(e),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug"],this.range=[3,5]}projectTilePoint(e,r,a){const u=Zh(e,r,a);return On(u,u,Wh(Go(a))),{x:u[0],y:u[1],z:u[2]}}locationPoint(e,r){const a=Fc(r.lat,r.lng),u=Bi([],a),p=e.elevation?e.elevation.getAtPointOrZero(e.locationCoordinate(r),e._centerAltitude):e._centerAltitude;Vh(a,a,u,yo(1,0)*vt*p);const m=go(new Float64Array(16));return Tl(m,e.pixelMatrix,e.globeMatrix),On(a,a,m),new Ve(a[0],a[1])}pixelsPerMeter(e,r){return yo(1,0)*r}pixelSpaceConversion(e,r,a){const u=yo(1,e)*r,p=Zt(yo(1,45)*r,u,a);return this.pixelsPerMeter(e,r)/p}createTileMatrix(e,r,a){const u=x_(Go(a.canonical));return Tl(new Float64Array(16),e.globeMatrix,u)}createInversionMatrix(e,r){const{center:a}=e,u=Wh(Go(r));return cf(u,u,St(a.lng)),u_(u,u,St(a.lat)),Sl(u,u,[e._pixelsPerMercatorPixel,e._pixelsPerMercatorPixel,1]),Float32Array.from(u)}pointCoordinate(e,r,a,u){return qx(e,r,a,!0)||new Uc(0,0)}pointCoordinate3D(e,r,a){const u=this.pointCoordinate(e,r,a,0);return[u.x,u.y,u.z]}isPointAboveHorizon(e,r){return!qx(e,r.x,r.y,!1)}farthestPixelDistance(e){const r=function(u,p){const m=u.cameraToCenterDistance,y=u._centerAltitude*p,w=u._camera,b=u._camera.forward(),A=bs([],Sr([],b,-m),[0,0,y]),I=u.worldSize/(2*Math.PI),k=[0,0,-I],L=u.width/u.height,R=Math.tan(u.fovAboveCenter),B=Sr([],w.up(),R),V=Sr([],w.right(),R*L),K=Bi([],bs([],bs([],b,B),V)),ie=[];let Y;if(new f_(A,K).closestPointOnSphere(k,I,ie)){const te=bs([],ie,k),ae=_o([],te,A);Y=Math.cos(u.fovAboveCenter)*Nh(ae)}else{const te=_o([],A,k),ae=_o([],k,A);Bi(ae,ae);const se=Nh(te)-I;Y=Math.sqrt(se*(se+2*I));const Se=Math.acos(Y/(I+se))-Math.acos(qr(b,ae));Y*=Math.cos(Se)}return 1.01*Y}(e,this.pixelsPerMeter(e.center.lat,e.worldSize)),a=Nc(e.zoom);if(a>0){const u=fw(e,yo(1,e.center.lat)*e.worldSize),p=e.worldSize/(2*Math.PI),m=Math.max(e.width,e.height)/e.worldSize*Math.PI;return Zt(r,u+p*(1-Math.cos(m)),Math.pow(a,10))}return r}upVector(e,r,a){return Zh(r,a,e,1)}upVectorScale(e){return{metersToTile:uf(df(Go(e)))}}}function vw(n){const e=n.parallels,r=!!e&&Math.abs(e[0]+e[1])<.01;switch(n.name){case"mercator":return new mw(n);case"equirectangular":return new nM(n);case"naturalEarth":return new rM(n);case"equalEarth":return new tM(n);case"winkelTripel":return new oM(n);case"albers":return r?new yw(n):new eM(n);case"lambertConformalConic":return r?new yw(n):new iM(n);case"globe":return new sM(n)}throw new Error(`Invalid projection name: ${n.name}`)}const aM=bf.types,lM=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function Of(n,e,r,a,u,p,m,y,w,b,A,I,k){const L=y?Math.min(pa,Math.round(y[0])):0,R=y?Math.min(pa,Math.round(y[1])):0;n.emplaceBack(e,r,Math.round(32*a),Math.round(32*u),p,m,(L<<1)+(w?1:0),R,16*b,16*A,256*I,256*k)}function Bf(n,e,r,a,u,p,m){n.emplaceBack(e,r,a,u,p,m)}function Ff(n,e,r,a,u){n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u)}function cM(n){for(const e of n.sections)if(o_(e.text))return!0;return!1}class Y_{constructor(e){this.layoutVertexArray=new Ge,this.indexArray=new mt,this.programConfigurations=e,this.segments=new jn,this.dynamicLayoutVertexArray=new qe,this.opacityVertexArray=new gt,this.placedSymbolArray=new Un,this.globeExtVertexArray=new Xe}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,r,a,u){this.isEmpty()||(a&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,_I.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,vI.members,!0),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,lM,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,yI.members,!0)),this.opacityVertexBuffer.itemSize=1),(a||u)&&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(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}}ht(Y_,"SymbolBuffers");class J_{constructor(e,r,a){this.layoutVertexArray=new e,this.layoutAttributes=r,this.indexArray=new a,this.segments=new jn,this.collisionVertexArray=new Ut,this.collisionVertexArrayExt=new Ot}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,xI.members,!0),this.collisionVertexBufferExt=e.createVertexBuffer(this.collisionVertexArrayExt,wI.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}ht(J_,"CollisionBuffers");class ma{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(m=>m.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=go([]),this.placementViewportMatrix=go([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=U_(this.zoom,r["text-size"]),this.iconSizeData=U_(this.zoom,r["icon-size"]);const a=this.layers[0].layout,u=a.get("symbol-sort-key"),p=a.get("symbol-z-order");this.canOverlap=a.get("text-allow-overlap")||a.get("icon-allow-overlap")||a.get("text-ignore-placement")||a.get("icon-ignore-placement"),this.sortFeaturesByKey=p!=="viewport-y"&&u.constantOr(1)!==void 0,this.sortFeaturesByY=(p==="viewport-y"||p==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=a.get("text-writing-mode").map(m=>Cr[m]),this.stateDependentLayerIds=this.layers.filter(m=>m.isStateDependent()).map(m=>m.id),this.sourceID=e.sourceID,this.projection=e.projection}createArrays(){this.text=new Y_(new El(this.layers,this.zoom,e=>/^text/.test(e))),this.icon=new Y_(new El(this.layers,this.zoom,e=>/^icon/.test(e))),this.glyphOffsetArray=new Oi,this.lineVertexArray=new Lc,this.symbolInstances=new wn}calculateGlyphDependencies(e,r,a,u,p){for(let m=0;m0)&&(w.value.kind!=="constant"||w.value.value.length>0),k=A.value.kind!=="constant"||!!A.value.value||Object.keys(A.parameters).length>0,L=m.get("symbol-sort-key");if(this.features=[],!I&&!k)return;const R=r.iconDependencies,B=r.glyphDependencies,V=r.availableImages,K=new C(this.zoom);for(const{feature:ie,id:Y,index:te,sourceLayerIndex:ae}of e){const se=p._featureFilter.needGeometry,Se=Ml(ie,se);if(!p._featureFilter.filter(K,Se,a))continue;if(se||(Se.geometry=Es(ie,a,u)),y&&ie.type!==1&&a.z<=5){const Ie=Se.geometry,Ne=.98078528056,Ue=($e,Je)=>qr(Zh($e.x,$e.y,a,1),Zh(Je.x,Je.y,a,1))=0;for(const Ue of be.sections)if(Ue.image)R[Ue.image.name]=!0;else{const $e=Ph(be.toString()),Je=Ue.fontStack||Ie,Pe=B[Je]=B[Je]||{};this.calculateGlyphDependencies(Ue.text,Pe,Ne,this.allowVerticalPlacement,$e)}}}m.get("symbol-placement")==="line"&&(this.features=function(ie){const Y={},te={},ae=[];let se=0;function Se(Ie){ae.push(ie[Ie]),se++}function be(Ie,Ne,Ue){const $e=te[Ie];return delete te[Ie],te[Ne]=$e,ae[$e].geometry[0].pop(),ae[$e].geometry[0]=ae[$e].geometry[0].concat(Ue[0]),$e}function Re(Ie,Ne,Ue){const $e=Y[Ne];return delete Y[Ne],Y[Ie]=$e,ae[$e].geometry[0].shift(),ae[$e].geometry[0]=Ue[0].concat(ae[$e].geometry[0]),$e}function We(Ie,Ne,Ue){const $e=Ue?Ne[0][Ne[0].length-1]:Ne[0][0];return`${Ie}:${$e.x}:${$e.y}`}for(let Ie=0;IeIe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((ie,Y)=>ie.sortKey-Y.sortKey)}update(e,r,a,u){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,r,this.layers,a,u),this.icon.programConfigurations.updatePaintArrays(e,r,this.layers,a,u))}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=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}getProjection(){return this.projectionInstance||(this.projectionInstance=vw(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(e,r){const a=this.lineVertexArray.length;if(e.segment!==void 0)for(const{x:u,y:p}of r)this.lineVertexArray.emplaceBack(u,p);return{lineStartIndex:a,lineLength:this.lineVertexArray.length-a}}addSymbols(e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=e.indexArray,V=e.layoutVertexArray,K=e.globeExtVertexArray,ie=e.segments.prepareSegment(4*r.length,V,B,this.canOverlap?m.sortKey:void 0),Y=this.glyphOffsetArray.length,te=ie.vertexLength,ae=this.allowVerticalPlacement&&y===Cr.vertical?Math.PI/2:0,se=m.text&&m.text.sections;for(let be=0;be=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:u),m=Af(this.textSizeData,e,p)/mi;return this.tilePixelRatio*m}getSymbolInstanceIconSize(e,r,a){const u=this.icon.placedSymbolArray.get(a),p=Af(this.iconSizeData,e,u);return this.tilePixelRatio*p}_commitDebugCollisionVertexUpdate(e,r,a){e.emplaceBack(r,-a,-a),e.emplaceBack(r,a,-a),e.emplaceBack(r,a,a),e.emplaceBack(r,-a,a)}_updateTextDebugCollisionBoxes(e,r,a,u,p,m){for(let y=u;y0}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,r){const a=e.placedSymbolArray.get(r),u=a.vertexStartIndex+4*a.numGlyphs;for(let p=a.vertexStartIndex;pu[y]-u[w]||p[w]-p[y]),m}addToSortKeyRanges(e,r){const a=this.sortKeyRanges[this.sortKeyRanges.length-1];a&&a.sortKey===r?a.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:r,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(const r of this.symbolInstanceIndexes){const a=this.symbolInstances.get(r);this.featureSortOrder.push(a.featureIndex);const{rightJustifiedTextSymbolIndex:u,centerJustifiedTextSymbolIndex:p,leftJustifiedTextSymbolIndex:m,verticalPlacedTextSymbolIndex:y,placedIconSymbolIndex:w,verticalPlacedIconSymbolIndex:b}=a;u>=0&&this.addIndicesForPlacedSymbol(this.text,u),p>=0&&p!==u&&this.addIndicesForPlacedSymbol(this.text,p),m>=0&&m!==p&&m!==u&&this.addIndicesForPlacedSymbol(this.text,m),y>=0&&this.addIndicesForPlacedSymbol(this.text,y),w>=0&&this.addIndicesForPlacedSymbol(this.icon,w),b>=0&&this.addIndicesForPlacedSymbol(this.icon,b)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}ht(ma,"SymbolBucket",{omit:["layers","collisionBoxArray","features","compareText"]}),ma.MAX_GLYPHS=65535,ma.addDynamicAttributes=Ff;const uM=new Q({"symbol-placement":new O(Le.layout_symbol["symbol-placement"]),"symbol-spacing":new O(Le.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new O(Le.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new G(Le.layout_symbol["symbol-sort-key"]),"symbol-z-order":new O(Le.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new O(Le.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new O(Le.layout_symbol["icon-ignore-placement"]),"icon-optional":new O(Le.layout_symbol["icon-optional"]),"icon-rotation-alignment":new O(Le.layout_symbol["icon-rotation-alignment"]),"icon-size":new G(Le.layout_symbol["icon-size"]),"icon-text-fit":new O(Le.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new O(Le.layout_symbol["icon-text-fit-padding"]),"icon-image":new G(Le.layout_symbol["icon-image"]),"icon-rotate":new G(Le.layout_symbol["icon-rotate"]),"icon-padding":new O(Le.layout_symbol["icon-padding"]),"icon-keep-upright":new O(Le.layout_symbol["icon-keep-upright"]),"icon-offset":new G(Le.layout_symbol["icon-offset"]),"icon-anchor":new G(Le.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new O(Le.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new O(Le.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new O(Le.layout_symbol["text-rotation-alignment"]),"text-field":new G(Le.layout_symbol["text-field"]),"text-font":new G(Le.layout_symbol["text-font"]),"text-size":new G(Le.layout_symbol["text-size"]),"text-max-width":new G(Le.layout_symbol["text-max-width"]),"text-line-height":new G(Le.layout_symbol["text-line-height"]),"text-letter-spacing":new G(Le.layout_symbol["text-letter-spacing"]),"text-justify":new G(Le.layout_symbol["text-justify"]),"text-radial-offset":new G(Le.layout_symbol["text-radial-offset"]),"text-variable-anchor":new O(Le.layout_symbol["text-variable-anchor"]),"text-anchor":new G(Le.layout_symbol["text-anchor"]),"text-max-angle":new O(Le.layout_symbol["text-max-angle"]),"text-writing-mode":new O(Le.layout_symbol["text-writing-mode"]),"text-rotate":new G(Le.layout_symbol["text-rotate"]),"text-padding":new O(Le.layout_symbol["text-padding"]),"text-keep-upright":new O(Le.layout_symbol["text-keep-upright"]),"text-transform":new G(Le.layout_symbol["text-transform"]),"text-offset":new G(Le.layout_symbol["text-offset"]),"text-allow-overlap":new O(Le.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new O(Le.layout_symbol["text-ignore-placement"]),"text-optional":new O(Le.layout_symbol["text-optional"])});var Q_={paint:new Q({"icon-opacity":new G(Le.paint_symbol["icon-opacity"]),"icon-color":new G(Le.paint_symbol["icon-color"]),"icon-halo-color":new G(Le.paint_symbol["icon-halo-color"]),"icon-halo-width":new G(Le.paint_symbol["icon-halo-width"]),"icon-halo-blur":new G(Le.paint_symbol["icon-halo-blur"]),"icon-translate":new O(Le.paint_symbol["icon-translate"]),"icon-translate-anchor":new O(Le.paint_symbol["icon-translate-anchor"]),"text-opacity":new G(Le.paint_symbol["text-opacity"]),"text-color":new G(Le.paint_symbol["text-color"],{runtimeType:Xi,getOverride:n=>n.textColor,hasOverride:n=>!!n.textColor}),"text-halo-color":new G(Le.paint_symbol["text-halo-color"]),"text-halo-width":new G(Le.paint_symbol["text-halo-width"]),"text-halo-blur":new G(Le.paint_symbol["text-halo-blur"]),"text-translate":new O(Le.paint_symbol["text-translate"]),"text-translate-anchor":new O(Le.paint_symbol["text-translate-anchor"])}),layout:uM};class xw{constructor(e){this.type=e.property.overrides?e.property.overrides.runtimeType:qs,this.defaultValue=e}evaluate(e){if(e.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(e.formattedSection))return r.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){this.defaultValue.isConstant()||e(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}ht(xw,"FormatSectionOverride",{omit:["defaultValue"]});class Nf extends mo{constructor(e){super(e,Q_)}recalculate(e,r){super.recalculate(e,r),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const a=this.layout.get("text-writing-mode");if(a){const u=[];for(const p of a)u.indexOf(p)<0&&u.push(p);this.layout._values["text-writing-mode"]=u}else this.layout._values["text-writing-mode"]=this.layout.get("symbol-placement")==="point"?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(e,r,a,u){const p=this.layout.get(e).evaluate(r,{},a,u),m=this._unevaluatedLayout._values[e];return m.isDataDriven()||ia(m.value)||!p?p:function(y,w){return w.replace(/{([^{}]+)}/g,(b,A)=>A in y?String(y[A]):"")}(r.properties,p)}createBucket(e){return new ma(e)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const e of Q_.paint.overridableProperties){if(!Nf.hasPaintOverride(this.layout,e))continue;const r=this.paint.get(e),a=new xw(r),u=new Sc(a,r.property.specification);let p=null;p=r.value.kind==="constant"||r.value.kind==="source"?new xh("source",u):new fl("composite",u,r.value.zoomStops,r.value._interpolationType),this.paint._values[e]=new Z(r.property,p,r.parameters)}}_handleOverridablePaintPropertyUpdate(e,r,a){return!(!this.layout||r.isDataDriven()||a.isDataDriven())&&Nf.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,r){const a=e.get("text-field"),u=Q_.paint.properties[r];let p=!1;const m=y=>{for(const w of y)if(u.overrides&&u.overrides.hasOverride(w))return void(p=!0)};if(a.value.kind==="constant"&&a.value.value instanceof Di)m(a.value.value.sections);else if(a.value.kind==="source"){const y=b=>{p||(b instanceof hs&&Pn(b.value)===Ya?m(b.value.sections):b instanceof No?m(b.sections):b.eachChild(y))},w=a.value;w._styleExpression&&y(w._styleExpression.expression)}return p}getProgramConfiguration(e){return new ua(this,e)}}var hM={paint:new Q({"background-color":new O(Le.paint_background["background-color"]),"background-pattern":new O(Le.paint_background["background-pattern"]),"background-opacity":new O(Le.paint_background["background-opacity"])})},dM={paint:new Q({"raster-opacity":new O(Le.paint_raster["raster-opacity"]),"raster-hue-rotate":new O(Le.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new O(Le.paint_raster["raster-brightness-min"]),"raster-brightness-max":new O(Le.paint_raster["raster-brightness-max"]),"raster-saturation":new O(Le.paint_raster["raster-saturation"]),"raster-contrast":new O(Le.paint_raster["raster-contrast"]),"raster-resampling":new O(Le.paint_raster["raster-resampling"]),"raster-fade-duration":new O(Le.paint_raster["raster-fade-duration"])})};class pM extends mo{constructor(e){super(e,{}),this.implementation=e}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}isLayerDraped(){return this.implementation.renderToTile!==void 0}shouldRedrape(){return!!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){}onAdd(e){this.implementation.onAdd&&this.implementation.onAdd(e,e.painter.context.gl)}onRemove(e){this.implementation.onRemove&&this.implementation.onRemove(e,e.painter.context.gl)}}var fM={paint:new Q({"sky-type":new O(Le.paint_sky["sky-type"]),"sky-atmosphere-sun":new O(Le.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new O(Le.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new O(Le.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new O(Le.paint_sky["sky-gradient-radius"]),"sky-gradient":new J(Le.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new O(Le.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new O(Le.paint_sky["sky-atmosphere-color"]),"sky-opacity":new O(Le.paint_sky["sky-opacity"])})};function ey(n,e,r){const a=[0,0,1],u=Nx([]);return jx(u,u,r?-St(n)+Math.PI:St(n)),Ux(u,u,-St(e)),Dx(a,a,u),Bi(a,a)}const mM={circle:class extends mo{constructor(n){super(n,AC)}createBucket(n){return new A_(n)}queryRadius(n){const e=n;return jc("circle-radius",this,e)+jc("circle-stroke-width",this,e)+mf(this.paint.get("circle-translate"))}queryIntersectsFeature(n,e,r,a,u,p,m,y){const w=c1(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),b=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r);return u1(n,a,p,m,y,this.paint.get("circle-pitch-alignment")==="map",this.paint.get("circle-pitch-scale")==="map",w,b)}getProgramIds(){return["circle"]}getProgramConfiguration(n){return new ua(this,n)}},heatmap:class extends mo{createBucket(n){return new d1(n)}constructor(n){super(n,kC),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(n){n==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=k_({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(n){return jc("heatmap-radius",this,n)}queryIntersectsFeature(n,e,r,a,u,p,m,y){const w=this.paint.get("heatmap-radius").evaluate(e,r);return u1(n,a,p,m,y,!0,!0,new Ve(0,0),w)}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(n){return new ua(this,n)}},hillshade:class extends mo{constructor(n){super(n,PC)}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"}getProgramIds(){return["hillshade","hillshadePrepare"]}},fill:class extends mo{constructor(n){super(n,WC)}getProgramIds(){const n=this.paint.get("fill-pattern"),e=n&&n.constantOr(1),r=[e?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&r.push(e&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),r}getProgramConfiguration(n){return new ua(this,n)}recalculate(n,e){super.recalculate(n,e);const r=this.paint._values["fill-outline-color"];r.value.kind==="constant"&&r.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(n){return new xf(n)}queryRadius(){return mf(this.paint.get("fill-translate"))}queryIntersectsFeature(n,e,r,a,u,p){return!n.queryGeometry.isAboveHorizon&&r1(l1(n.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),a)}isTileClipped(){return!0}},"fill-extrusion":class extends mo{constructor(n){super(n,cI)}createBucket(n){return new td(n)}queryRadius(){return mf(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(n){return new ua(this,n)}queryIntersectsFeature(n,e,r,a,u,p,m,y,w){const b=c1(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),A=this.paint.get("fill-extrusion-height").evaluate(e,r),I=this.paint.get("fill-extrusion-base").evaluate(e,r),k=[0,0],L=y&&p.elevation,R=p.elevation?p.elevation.exaggeration():1,B=n.tile.getBucket(this);if(L&&B instanceof td){const te=B.centroidVertexArray,ae=w+1;aete.polygon).flat());const V=L?y:null,[K,ie]=function(te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e){return te.projection.name==="globe"?function(Je,Pe,rt,pt,ot,At,Qe,_t,Ct,Ht,It){const bt=[],xn=[],zt=Je.projection.upVectorScale(It,Je.center.lat,Je.worldSize).metersToTile,Lt=[0,0,0,1],cn=[0,0,0,1],fn=(un,Cn,zn,Gn)=>{un[0]=Cn,un[1]=zn,un[2]=Gn,un[3]=1},mn=M1();rt>0&&(rt+=mn),pt+=mn;for(const un of Pe){const Cn=[],zn=[];for(const Gn of un){const hn=Gn.x+ot.x,Jn=Gn.y+ot.y,$n=Je.projection.projectTilePoint(hn,Jn,It),In=Je.projection.upVector(It,Gn.x,Gn.y);let Kt=rt,qn=pt;if(Qe){const gn=R1(hn,Jn,rt,pt,Qe,_t,Ct,Ht);Kt+=gn.base,qn+=gn.top}rt!==0?fn(Lt,$n.x+In[0]*zt*Kt,$n.y+In[1]*zt*Kt,$n.z+In[2]*zt*Kt):fn(Lt,$n.x,$n.y,$n.z),fn(cn,$n.x+In[0]*zt*qn,$n.y+In[1]*zt*qn,$n.z+In[2]*zt*qn),On(Lt,Lt,At),On(cn,cn,At),Cn.push(new $c(Lt[0],Lt[1],Lt[2])),zn.push(new $c(cn[0],cn[1],cn[2]))}bt.push(Cn),xn.push(zn)}return[bt,xn]}(te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e):We?function(Je,Pe,rt,pt,ot,At,Qe,_t,Ct){const Ht=[],It=[],bt=[0,0,0,1];for(const xn of Je){const zt=[],Lt=[];for(const cn of xn){const fn=cn.x+pt.x,mn=cn.y+pt.y,un=R1(fn,mn,Pe,rt,At,Qe,_t,Ct);bt[0]=fn,bt[1]=mn,bt[2]=un.base,bt[3]=1,Al(bt,bt,ot),bt[3]=Math.max(bt[3],1e-5);const Cn=new $c(bt[0]/bt[3],bt[1]/bt[3],bt[2]/bt[3]);bt[0]=fn,bt[1]=mn,bt[2]=un.top,bt[3]=1,Al(bt,bt,ot),bt[3]=Math.max(bt[3],1e-5);const zn=new $c(bt[0]/bt[3],bt[1]/bt[3],bt[2]/bt[3]);zt.push(Cn),Lt.push(zn)}Ht.push(zt),It.push(Lt)}return[Ht,It]}(ae,se,Se,be,Re,We,Ie,Ne,Ue):function(Je,Pe,rt,pt,ot){const At=[],Qe=[],_t=ot[8]*Pe,Ct=ot[9]*Pe,Ht=ot[10]*Pe,It=ot[11]*Pe,bt=ot[8]*rt,xn=ot[9]*rt,zt=ot[10]*rt,Lt=ot[11]*rt;for(const cn of Je){const fn=[],mn=[];for(const un of cn){const Cn=un.x+pt.x,zn=un.y+pt.y,Gn=ot[0]*Cn+ot[4]*zn+ot[12],hn=ot[1]*Cn+ot[5]*zn+ot[13],Jn=ot[2]*Cn+ot[6]*zn+ot[14],$n=ot[3]*Cn+ot[7]*zn+ot[15],In=Gn+_t,Kt=hn+Ct,qn=Jn+Ht,gn=Math.max($n+It,1e-5),Ui=Gn+bt,Zn=hn+xn,gi=Jn+zt,ai=Math.max($n+Lt,1e-5);fn.push(new $c(In/gn,Kt/gn,qn/gn)),mn.push(new $c(Ui/ai,Zn/ai,gi/ai))}At.push(fn),Qe.push(mn)}return[At,Qe]}(ae,se,Se,be,Re)}(p,a,I,A,b,m,V,k,R,p.center.lat,n.tileID.canonical),Y=n.queryGeometry;return function(te,ae,se){let Se=1/0;r1(se,ae)&&(Se=L1(se,ae[0]));for(let be=0;be=3){for(let R=0;R{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){this._channel=void 0,this._callback=()=>{}}}class _M{constructor(){this.tasks={},this.taskQueue=[],Br(["process"],this),this.invoker=new gM(this.process),this.nextId=0}add(e,r){const a=this.nextId++,u=function({type:p,isSymbolTile:m,zoom:y}){return y=y||0,p==="message"?0:p!=="maybePrepare"||m?p!=="parseTile"||m?p==="parseTile"&&m?300-y:p==="maybePrepare"&&m?400-y:500:200-y:100-y}(r);if(u===0){to();try{e()}finally{}return{cancel:()=>{}}}return this.tasks[a]={fn:e,metadata:r,priority:u,id:a},this.taskQueue.push(a),this.invoker.trigger(),{cancel:()=>{delete this.tasks[a]}}}process(){to();try{if(this.taskQueue=this.taskQueue.filter(a=>!!this.tasks[a]),!this.taskQueue.length)return;const e=this.pick();if(e===null)return;const r=this.tasks[e];if(delete this.tasks[e],this.taskQueue.length&&this.invoker.trigger(),!r)return;r.fn()}finally{}}pick(){let e=null,r=1/0;for(let u=0;u>=1)>1;){const b=r+u>>1,A=a+p>>1;1&e?(u=r,p=a,r=m,a=y):(r=u,a=p,u=m,p=y),m=b,y=A}const w=4*n;ga[w+0]=r,ga[w+1]=a,ga[w+2]=u,ga[w+3]=p}const Wo=new Uint16Array(2178),_a=new Uint8Array(1089),Uf=new Uint16Array(1089);function Ew(n){return n===0?-.03125:n===32?.03125:0}var Tw=_e([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const Sw={type:2,extent:vt,loadGeometry:()=>[[new Ve(0,0),new Ve(vt+1,0),new Ve(vt+1,vt+1),new Ve(0,vt+1),new Ve(0,0)]]};class ty{constructor(e,r,a,u,p){this.tileID=e,this.uid=Wi(),this.uses=0,this.tileSize=r,this.tileZoom=a,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=p,this.expiredRequestCount=0,this.state="loading",u&&u.transform&&(this.projection=u.transform.projection)}registerFadeDuration(e){const r=e+this.timeAdded;rp.getLayer(b)).filter(Boolean);if(w.length!==0){y.layers=w,y.stateDependentLayerIds&&(y.stateDependentLayers=y.stateDependentLayerIds.map(b=>w.filter(A=>A.id===b)[0]));for(const b of w)m[b.id]=y}}return m}(e.buckets,r.style),this.hasSymbolBuckets=!1;for(const u in this.buckets){const p=this.buckets[u];if(p instanceof ma){if(this.hasSymbolBuckets=!0,!a)break;p.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const u in this.buckets){const p=this.buckets[u];if(p instanceof ma&&p.hasRTLText){this.hasRTLText=!0,S.isLoading()||S.isLoaded()||v()!=="deferred"||E();break}}this.queryPadding=0;for(const u in this.buckets){const p=this.buckets[u];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(u).queryRadius(p))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage),e.lineAtlas&&(this.lineAtlas=e.lineAtlas)}else this.collisionBoxArray=new an}unloadVectorData(){if(this.hasData()){for(const e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(e){return this.buckets[e.id]}upload(e){for(const a in this.buckets){const u=this.buckets[a];u.uploadPending()&&u.upload(e)}const r=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new dd(e,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new dd(e,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new dd(e,this.lineAtlas.image,r.ALPHA),this.lineAtlas.uploaded=!0)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,r,a,u,p,m,y,w){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:u,pixelPosMatrix:y,transform:m,params:p,tileTransform:this.tileTransform},e,r,a):{}}querySourceFeatures(e,r){const a=this.latestFeatureIndex;if(!a||!a.rawTileData)return;const u=a.loadVTLayers(),p=r?r.sourceLayer:"",m=u._geojsonTileLayer||u[p];if(!m)return;const y=Mc(r&&r.filter),{z:w,x:b,y:A}=this.tileID.canonical,I={z:w,x:b,y:A};for(let k=0;ka)u=!1;else if(r)if(this.expirationTime=0;V--){const K=4*V,ie=ga[K+0],Y=ga[K+1],te=ga[K+2],ae=ga[K+3],se=ie+te>>1,Se=Y+ae>>1,be=se+Se-Y,Re=Se+ie-se,We=Y*Zo+ie,Ie=ae*Zo+te,Ne=Se*Zo+se,Ue=Math.hypot((Wo[2*We+0]+Wo[2*Ie+0])/2-Wo[2*Ne+0],(Wo[2*We+1]+Wo[2*Ie+1])/2-Wo[2*Ne+1])>=16;_a[Ne]=_a[Ne]||(Ue?1:0),V<1022&&(_a[Ne]=_a[Ne]||_a[(Y+Re>>1)*Zo+(ie+be>>1)]||_a[(ae+Re>>1)*Zo+(te+be>>1)])}const I=new Be,k=new mt;let L=0;function R(V,K){const ie=K*Zo+V;return Uf[ie]===0&&(I.emplaceBack(Wo[2*ie+0],Wo[2*ie+1],V*vt/Hr,K*vt/Hr),Uf[ie]=++L),Uf[ie]-1}function B(V,K,ie,Y,te,ae){const se=V+ie>>1,Se=K+Y>>1;if(Math.abs(V-te)+Math.abs(K-ae)>1&&_a[Se*Zo+se])B(te,ae,V,K,se,Se),B(ie,Y,te,ae,se,Se);else{const be=R(V,K),Re=R(ie,Y),We=R(te,ae);k.emplaceBack(be,Re,We)}}return B(0,0,Hr,Hr,Hr,0),B(Hr,Hr,0,0,0,Hr),{vertices:I,indices:k}}(this.tileID.canonical,r);u=m.vertices,p=m.indices}else{u=new Be,p=new mt;for(const{x:y,y:w}of a)u.emplaceBack(y,w,0,0);const m=D_(u.int16,void 0,4);for(let y=0;y0&&(y=c_(new Float64Array(16),r.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(e,u,r,p,y,m),this._makeGlobeTileDebugTextBuffer(e,u,r,p,y,m)}_globePoint(e,r,a,u,p,m,y){let w=Zh(e,r,a);if(m){const b=1<.5?L=-1:k<-.5&&(L=1);let R=(e/vt+a.x)/b+L,B=(r/vt+a.y)/b;R=(R-A)*u._pixelsPerMercatorPixel+A,B=(B-I)*u._pixelsPerMercatorPixel+I;const V=[R*u.worldSize,B*u.worldSize,0];On(V,V,m),w=Il(w,V,y)}return On(w,w,p)}_makeGlobeTileDebugBorderBuffer(e,r,a,u,p,m){const y=new Ze,w=new lr,b=new we,A=(k,L,R,B,V)=>{const K=(R-k)/(V-1),ie=(B-L)/(V-1),Y=y.length;for(let te=0;teI*L+R;for(let L=0;Le[m])return null}else{const y=1/a[m];let w=(n[m]-r[m])*y,b=(e[m]-r[m])*y;if(w>b){const A=w;w=b,b=A}if(w>u&&(u=w),bp)return null}return u}function Iw(n,e,r,a,u,p,m,y,w,b,A){const I=a-n,k=u-e,L=p-r,R=m-n,B=y-e,V=w-r,K=A[1]*V-A[2]*B,ie=A[2]*R-A[0]*V,Y=A[0]*B-A[1]*R,te=I*K+k*ie+L*Y;if(Math.abs(te)<1e-15)return null;const ae=1/te,se=b[0]-n,Se=b[1]-e,be=b[2]-r,Re=(se*K+Se*ie+be*Y)*ae;if(Re<0||Re>1)return null;const We=Se*L-be*k,Ie=be*I-se*L,Ne=se*k-Se*I,Ue=(A[0]*We+A[1]*Ie+A[2]*Ne)*ae;return Ue<0||Re+Ue>1?null:(R*We+B*Ie+V*Ne)*ae}function Mw(n,e,r){return(n-e)/(r-e)}function kw(n,e,r,a,u,p,m,y,w){const b=1<{const ie=V?1:0,Y=(L+1)*B-ie,te=R*B,ae=(R+1)*B-ie;K[0]=L*B,K[1]=te,K[2]=Y,K[3]=ae};let I=new Aw(w);const k=[];for(let L=0;L=1;w/=2){const L=y[y.length-1];I=new Aw(w);for(let R=0;R0;){const{idx:R,t:B,nodex:V,nodey:K,depth:ie}=L.pop();if(this.leaves[R]){kw(V,K,ie,e,r,a,u,I,k);const te=1<=Pe[2])return B}continue}let Y=0;for(let te=0;te=b[A[be]]&&(A.splice(be,0,te),Se=!0);Se||(A[Y]=te),Y++}}for(let te=0;te=this.dim+1||r<-1||r>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(e+1)}static pack(e,r){const a=[0,0,0,0],u=jf.getUnpackVector(r);let p=Math.floor((e+u[3])/u[2]);return a[2]=p%256,p=Math.floor(p/256),a[1]=p%256,p=Math.floor(p/256),a[0]=p,a}getPixels(){return new ur({width:this.stride,height:this.stride},this.pixels)}backfillBorder(e,r,a){if(this.dim!==e.dim)throw new Error("dem dimension mismatch");let u=r*this.dim,p=r*this.dim+this.dim,m=a*this.dim,y=a*this.dim+this.dim;switch(r){case-1:u=p-1;break;case 1:p=u+1}switch(a){case-1:m=y-1;break;case 1:y=m+1}const w=-r*this.dim,b=-a*this.dim;for(let A=m;A{this.remove(e,p)},a)),this.data[u].push(p),this.order.push(u),this.order.length>this.max){const m=this._getAndRemoveByKey(this.order[0]);m&&this.onRemove(m)}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){const r=this.data[e].shift();return r.timeout&&clearTimeout(r.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),r.value}getByKey(e){const r=this.data[e];return r?r[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,r){if(!this.has(e))return this;const a=e.wrapped().key,u=r===void 0?0:this.data[a].indexOf(r),p=this.data[a][u];return this.data[a].splice(u,1),p.timeout&&clearTimeout(p.timeout),this.data[a].length===0&&delete this.data[a],this.onRemove(p.value),this.order.splice(this.order.indexOf(a),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(e){const r=[];for(const a in this.data)for(const u of this.data[a])e(u.value)||r.push(u);for(const a of r)this.remove(a.value.tileID,a)}}class eu{constructor(e,r,a){this.func=e,this.mask=r,this.range=a}}eu.ReadOnly=!1,eu.ReadWrite=!0,eu.disabled=new eu(519,eu.ReadOnly,[0,1]);const ny=7680;class iy{constructor(e,r,a,u,p,m){this.test=e,this.ref=r,this.mask=a,this.fail=u,this.depthFail=p,this.pass=m}}iy.disabled=new iy({func:519,mask:0},0,0,ny,ny,ny);class Ho{constructor(e,r,a){this.blendFunction=e,this.blendColor=r,this.mask=a}}Ho.Replace=[1,0],Ho.disabled=new Ho(Ho.Replace,Dn.transparent,[!1,!1,!1,!1]),Ho.unblended=new Ho(Ho.Replace,Dn.transparent,[!0,!0,!0,!0]),Ho.alphaBlended=new Ho([1,771],Dn.transparent,[!0,!0,!0,!0]);const ry=1029,oy=2305;class wo{constructor(e,r,a){this.enable=e,this.mode=r,this.frontFace=a}}wo.disabled=new wo(!1,ry,oy),wo.backCCW=new wo(!0,ry,oy),wo.backCW=new wo(!0,ry,2304),wo.frontCW=new wo(!0,1028,2304),wo.frontCCW=new wo(!0,1028,oy);class Ll extends Ka{constructor(e,r,a){super(),this.id=e,this._onlySymbols=a,r.on("data",u=>{u.dataType==="source"&&u.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&u.dataType==="source"&&u.sourceDataType==="content"&&(this.reload(),this.transform&&this.update(this.transform))}),r.on("error",()=>{this._sourceErrored=!0}),this._source=r,this._tiles={},this._cache=new bM(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=r.minTileCacheSize,this._maxTileCacheSize=r.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new vM,this._isRaster=this._source.type==="raster"||this._source.type==="raster-dem"||this._source.type==="custom"&&this._source._dataType==="raster"}onAdd(e){this.map=e,this._minTileCacheSize=this._minTileCacheSize===void 0&&e?e._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=this._maxTileCacheSize===void 0&&e?e._maxTileCacheSize:this._maxTileCacheSize}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const e in this._tiles){const r=this._tiles[e];if(r.state!=="loaded"&&r.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(e,r){return e.isSymbolTile=this._onlySymbols,this._source.loadTile(e,r)}_unloadTile(e){if(this._source.unloadTile)return this._source.unloadTile(e,()=>{})}_abortTile(e){if(this._source.abortTile)return this._source.abortTile(e,()=>{})}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const r in this._tiles){const a=this._tiles[r];a.upload(e),a.prepare(this.map.style.imageManager)}}getIds(){return dn(this._tiles).map(e=>e.tileID).sort(Rw).map(e=>e.key)}getRenderableIds(e){const r=[];for(const a in this._tiles)this._isIdRenderable(+a,e)&&r.push(this._tiles[a]);return e?r.sort((a,u)=>{const p=a.tileID,m=u.tileID,y=new Ve(p.canonical.x,p.canonical.y)._rotate(this.transform.angle),w=new Ve(m.canonical.x,m.canonical.y)._rotate(this.transform.angle);return p.overscaledZ-m.overscaledZ||w.y-y.y||w.x-y.x}).map(a=>a.tileID.key):r.map(a=>a.tileID).sort(Rw).map(a=>a.key)}hasRenderableParent(e){const r=this.findLoadedParent(e,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(e,r){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(r||!this._tiles[e].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const e in this._tiles)this._tiles[e].state!=="errored"&&this._reloadTile(+e,"reloading")}}_reloadTile(e,r){const a=this._tiles[e];a&&(a.state!=="loading"&&(a.state=r),this._loadTile(a,this._tileLoaded.bind(this,a,e,r)))}_tileLoaded(e,r,a,u){if(u)if(e.state="errored",u.status!==404)this._source.fire(new io(u,{tile:e}));else if(this._source.type==="raster-dem"&&this.usedForTerrain&&this.map.painter.terrain){const p=this.map.painter.terrain;this.update(this.transform,p.getScaledDemTileSize(),!0),p.resetTileLookupCache(this.id)}else this.update(this.transform);else e.timeAdded=no.now(),a==="expired"&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),this._source.type==="raster-dem"&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),this._source.fire(new cs("data",{dataType:"source",tile:e,coord:e.tileID,sourceCacheId:this.id}))}_backfillDEM(e){const r=this.getRenderableIds();for(let u=0;u1||(Math.abs(m)>1&&(Math.abs(m+w)===1?m+=w:Math.abs(m-w)===1&&(m-=w)),p.dem&&u.dem&&(u.dem.backfillBorder(p.dem,m,y),u.neighboringTiles&&u.neighboringTiles[b]&&(u.neighboringTiles[b].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,r,a,u){for(const p in this._tiles){let m=this._tiles[p];if(u[p]||!m.hasData()||m.tileID.overscaledZ<=r||m.tileID.overscaledZ>a)continue;let y=m.tileID;for(;m&&m.tileID.overscaledZ>r+1;){const b=m.tileID.scaledTo(m.tileID.overscaledZ-1);m=this._tiles[b.key],m&&m.hasData()&&(y=b)}let w=y;for(;w.overscaledZ>r;)if(w=w.scaledTo(w.overscaledZ-1),e[w.key]){u[y.key]=y;break}}}findLoadedParent(e,r){if(e.key in this._loadedParentTiles){const a=this._loadedParentTiles[e.key];return a&&a.tileID.overscaledZ>=r?a:null}for(let a=e.overscaledZ-1;a>=r;a--){const u=e.scaledTo(a),p=this._getLoadedTile(u);if(p)return p}}_getLoadedTile(e){const r=this._tiles[e.key];return r&&r.hasData()?r:this._cache.getByKey(this._source.reparseOverscaled?e.wrapped().key:e.canonical.key)}updateCacheSize(e,r){r=r||this._source.tileSize;const a=Math.ceil(e.width/r)+1,u=Math.ceil(e.height/r)+1,p=Math.floor(a*u*5),m=typeof this._minTileCacheSize=="number"?Math.max(this._minTileCacheSize,p):p,y=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,m):m;this._cache.setMaxSize(y)}handleWrapJump(e){const r=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,r){const a={};for(const u in this._tiles){const p=this._tiles[u];p.tileID=p.tileID.unwrapTo(p.tileID.wrap+r),a[p.tileID.key]=p}this._tiles=a;for(const u in this._timers)clearTimeout(this._timers[u]),delete this._timers[u];for(const u in this._tiles)this._setTileReloadTimer(+u,this._tiles[u])}}update(e,r,a){if(this.transform=e,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!a)return;let u;this.updateCacheSize(e,r),this.transform.projection.name!=="globe"&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?u=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(y=>new Ni(y.canonical.z,y.wrap,y.canonical.z,y.canonical.x,y.canonical.y)):(u=e.coveringTiles({tileSize:r||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!a,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(u=u.filter(y=>this._source.hasTile(y)))):u=[];const p=this._updateRetainedTiles(u);if(Dw(this._source.type)&&u.length!==0){const y={},w={},b=Object.keys(p);for(const I of b){const k=p[I],L=this._tiles[I];if(!L||L.fadeEndTime&&L.fadeEndTime<=no.now())continue;const R=this.findLoadedParent(k,Math.max(k.overscaledZ-Ll.maxOverzooming,this._source.minzoom));R&&(this._addTile(R.tileID),y[R.tileID.key]=R.tileID),w[I]=k}const A=u[u.length-1].overscaledZ;for(const I in this._tiles){const k=this._tiles[I];if(p[I]||!k.hasData())continue;let L=k.tileID;for(;L.overscaledZ>A;){L=L.scaledTo(L.overscaledZ-1);const R=this._tiles[L.key];if(R&&R.hasData()&&w[L.key]){p[I]=k.tileID;break}}}for(const I in y)p[I]||(this._coveredTiles[I]=!0,p[I]=y[I])}for(const y in p)this._tiles[y].clearFadeHold();const m=function(y,w){const b=[];for(const A in y)A in w||b.push(A);return b}(this._tiles,p);for(const y of m){const w=this._tiles[y];w.hasSymbolBuckets&&!w.holdingForFade()?w.setHoldDuration(this.map._fadeDuration):w.hasSymbolBuckets&&!w.symbolFadeFinished()||this._removeTile(+y)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(+e)}_updateRetainedTiles(e){const r={};if(e.length===0)return r;const a={},u=e.reduce((b,A)=>Math.min(b,A.overscaledZ),1/0),p=e[0].overscaledZ,m=Math.max(p-Ll.maxOverzooming,this._source.minzoom),y=Math.max(p+Ll.maxUnderzooming,this._source.minzoom),w={};for(const b of e){const A=this._addTile(b);r[b.key]=b,A.hasData()||u=this._source.maxzoom){const k=b.children(this._source.maxzoom)[0],L=this.getTile(k);if(L&&L.hasData()){r[k.key]=k;continue}}else{const k=b.children(this._source.maxzoom);if(r[k[0].key]&&r[k[1].key]&&r[k[2].key]&&r[k[3].key])continue}let I=A.wasRequested();for(let k=b.overscaledZ-1;k>=m;--k){const L=b.scaledTo(k);if(a[L.key]||(a[L.key]=!0,A=this.getTile(L),!A&&I&&(A=this._addTile(L)),A&&(r[L.key]=L,I=A.wasRequested(),A.hasData())))break}}return r}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const r=[];let a,u=this._tiles[e].tileID;for(;u.overscaledZ>0;){if(u.key in this._loadedParentTiles){a=this._loadedParentTiles[u.key];break}r.push(u.key);const p=u.scaledTo(u.overscaledZ-1);if(a=this._getLoadedTile(p),a)break;u=p}for(const p of r)this._loadedParentTiles[p]=a}}_addTile(e){let r=this._tiles[e.key];if(r)return r;r=this._cache.getAndRemove(e),r&&(this._setTileReloadTimer(e.key,r),r.tileID=e,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,r)));const a=!!r;if(!a){const u=this.map?this.map.painter:null;r=new ty(e,this._source.tileSize*e.overscaleFactor(),this.transform.tileZoom,u,this._isRaster),this._loadTile(r,this._tileLoaded.bind(this,r,e.key,r.state))}return r?(r.uses++,this._tiles[e.key]=r,a||this._source.fire(new cs("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null}_setTileReloadTimer(e,r){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const a=r.getExpiryTimeout();a&&(this._timers[e]=setTimeout(()=>{this._reloadTile(e,"expired"),delete this._timers[e]},a))}_removeTile(e){const r=this._tiles[e];r&&(r.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),r.uses>0||(r.hasData()&&r.state!=="reloading"?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(+e);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id)}tilesIn(e,r,a){const u=[],p=this.transform;if(!p)return u;const m=p.projection.name==="globe",y=$o(p.center.lng);for(const w in this._tiles){const b=this._tiles[w];if(a&&b.clearQueryDebugViz(),b.holdingForFade())continue;let A;if(m){const I=b.tileID.canonical;if(I.z===0){const k=[Math.abs(Ke(y,...pd(I,-1))-y),Math.abs(Ke(y,...pd(I,1))-y)];A=[0,2*k.indexOf(Math.min(...k))-1]}else{const k=[Math.abs(Ke(y,...pd(I,-1))-y),Math.abs(Ke(y,...pd(I,0))-y),Math.abs(Ke(y,...pd(I,1))-y)];A=[k.indexOf(Math.min(...k))-1]}}else A=[0];for(const I of A){const k=e.containsTile(b,p,r,I);k&&u.push(k)}}return u}getVisibleCoordinates(e){const r=this.getRenderableIds(e).map(a=>this._tiles[a].tileID);for(const a of r)a.projMatrix=this.transform.calculateProjMatrix(a.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(Dw(this._source.type))for(const e in this._tiles){const r=this._tiles[e];if(r.fadeEndTime!==void 0&&r.fadeEndTime>=no.now())return!0}return!1}setFeatureState(e,r,a){this._state.updateState(e=e||"_geojsonTileLayer",r,a)}removeFeatureState(e,r,a){this._state.removeFeatureState(e=e||"_geojsonTileLayer",r,a)}getFeatureState(e,r){return this._state.getState(e=e||"_geojsonTileLayer",r)}setDependencies(e,r,a){const u=this._tiles[e];u&&u.setDependencies(r,a)}reloadTilesForDependencies(e,r){for(const a in this._tiles)this._tiles[a].hasDependency(e,r)&&this._reloadTile(+a,"reloading");this._cache.filter(a=>!a.hasDependency(e,r))}_preloadTiles(e,r){if(!this._sourceLoaded){const y=()=>{this._sourceLoaded&&(this._source.off("data",y),this._preloadTiles(e,r))};return void this._source.on("data",y)}const a=new Map,u=Array.isArray(e)?e:[e],p=this.map.painter.terrain,m=this.usedForTerrain&&p?p.getScaledDemTileSize():this._source.tileSize;for(const y of u){const w=y.coveringTiles({tileSize:m,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const b of w)a.set(b.key,b);this.usedForTerrain&&y.updateElevation(!1)}Bt(Array.from(a.values()),(y,w)=>{const b=new ty(y,this._source.tileSize*y.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(b,A=>{this._source.type==="raster-dem"&&b.dem&&this._backfillDEM(b),w(A,b)})},r)}}function Rw(n,e){const r=Math.abs(2*n.wrap)-+(n.wrap<0),a=Math.abs(2*e.wrap)-+(e.wrap<0);return n.overscaledZ-e.overscaledZ||a-r||e.canonical.y-n.canonical.y||e.canonical.x-n.canonical.x}function Dw(n){return n==="raster"||n==="image"||n==="video"||n==="custom"}function pd(n,e){const r=1<=0&&I[3]>=0&&w.insert(y,I[0],I[1],I[2],I[3])}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new N_(new If(this.rawTileData)).layers,this.sourceLayerCoder=new ww(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={};for(const e in this.vtLayers)this.vtFeatures[e]=[]}return this.vtLayers}query(e,r,a,u){this.loadVTLayers();const p=e.params||{},m=Mc(p.filter),y=e.tileResult,w=e.transform,b=y.bufferedTilespaceBounds,A=this.grid.query(b.min.x,b.min.y,b.max.x,b.max.y,(R,B,V,K)=>a1(y.bufferedTilespaceGeometry,R,B,V,K));A.sort(EM);let I=null;w.elevation&&A.length>0&&(I=Vf.create(w.elevation,this.tileID));const k={};let L;for(let R=0;R(K||(K=Es(ie,this.tileID.canonical,e.tileTransform)),Y.queryIntersectsFeature(y,ie,te,K,this.z,e.transform,e.pixelPosMatrix,I,ae)))}return k}loadMatchingFeature(e,r,a,u,p,m,y,w,b){const{featureIndex:A,bucketIndex:I,sourceLayerIndex:k,layoutVertexArrayOffset:L}=r,R=this.bucketLayerIDs[I];if(u&&!function(ie,Y){for(let te=0;te=0)return!0;return!1}(u,R))return;const B=this.sourceLayerCoder.decode(k),V=this.vtLayers[B].feature(A);if(a.needGeometry){const ie=Ml(V,!0);if(!a.filter(new C(this.tileID.overscaledZ),ie,this.tileID.canonical))return}else if(!a.filter(new C(this.tileID.overscaledZ),V))return;const K=this.getId(V,B);for(let ie=0;ie{const y=e instanceof H?e.get(m):null;return y&&y.evaluate?y.evaluate(r,a,u):y})}function EM(n,e){return e-n}ht(Ow,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});class Fw{constructor(e,r){this.width=e,this.height=r,this.nextRow=0,this.image=new Ts({width:e,height:r}),this.positions={},this.uploaded=!1}getDash(e,r){const a=this.getKey(e,r);return this.positions[a]}trim(){const e=this.width,r=this.height=pi(this.nextRow);this.image.resize({width:e,height:r})}getKey(e,r){return e.join(",")+r}getDashRanges(e,r,a){const u=[];let p=e.length%2==1?-e[e.length-1]*a:0,m=e[0]*a,y=!0;u.push({left:p,right:m,isDash:y,zeroLength:e[0]===0});let w=e[0];for(let b=1;b1&&(w=e[++y]);const A=Math.abs(b-w.left),I=Math.abs(b-w.right),k=Math.min(A,I);let L;const R=p/a*(u+1);if(w.isDash){const B=u-Math.abs(R);L=Math.sqrt(k*k+B*B)}else L=u-Math.sqrt(k*k+R*R);this.image.data[m+b]=Math.max(0,Math.min(255,L+128))}}}addRegularDash(e,r){for(let w=e.length-1;w>=0;--w){const b=e[w],A=e[w+1];b.zeroLength?e.splice(w,1):A&&A.isDash===b.isDash&&(A.left=b.left,e.splice(w,1))}const a=e[0],u=e[e.length-1];a.isDash===u.isDash&&(a.left=u.left-this.width,u.right=a.right+this.width);const p=this.width*this.nextRow;let m=0,y=e[m];for(let w=0;w1&&(y=e[++m]);const b=Math.abs(w-y.left),A=Math.abs(w-y.right),I=Math.min(b,A);this.image.data[p+w]=Math.max(0,Math.min(255,(y.isDash?I:-I)+r+128))}}addDash(e,r){const a=this.getKey(e,r);if(this.positions[a])return this.positions[a];const u=r==="round",p=u?7:0,m=2*p+1;if(this.nextRow+m>this.height)return vn("LineAtlas out of space"),null;e.length===0&&e.push(1);let y=0;for(let A=0;A=Ne.maxzoom||Ne.visibility!=="none"&&(sy(Ie,this.zoom,a),(w[Ne.id]=Ne.createBucket({index:y.bucketLayerIDs.length,layers:Ie,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Re,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:a})).populate(We,A,this.tileID.canonical,this.tileTransform),y.bucketLayerIDs.push(Ie.map(Ue=>Ue.id)))}}let k,L,R,B;b.trim();const V={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},K=()=>{if(k)return p(k);if(L&&R&&B){const ae=new Uw(L),se=new W1(R,B);for(const Se in w){const be=w[Se];be instanceof ma?(sy(be.layers,this.zoom,a),KI(be,L,ae.positions,R,se.iconPositions,this.showCollisionBoxes,a,this.tileID.canonical,this.tileZoom,this.projection)):be.hasPattern&&(be instanceof Sf||be instanceof xf||be instanceof td)&&(sy(be.layers,this.zoom,a),be.addFeatures(A,this.tileID.canonical,se.patternPositions,a,this.tileTransform))}this.status="done",p(null,{buckets:dn(w).filter(Se=>!Se.isEmpty()),featureIndex:y,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ae.image,lineAtlas:b,imageAtlas:se,glyphMap:this.returnDependencies?L:null,iconMap:this.returnDependencies?R:null,glyphPositions:this.returnDependencies?ae.positions:null})}},ie=Mt(A.glyphDependencies,ae=>Object.keys(ae).map(Number));Object.keys(ie).length?u.send("getGlyphs",{uid:this.uid,stacks:ie},(ae,se)=>{k||(k=ae,L=se,K())},void 0,!1,V):L={};const Y=Object.keys(A.iconDependencies);Y.length?u.send("getImages",{icons:Y,source:this.source,tileID:this.tileID,type:"icons"},(ae,se)=>{k||(k=ae,R=se,K())},void 0,!1,V):R={};const te=Object.keys(A.patternDependencies);te.length?u.send("getImages",{icons:te,source:this.source,tileID:this.tileID,type:"patterns"},(ae,se)=>{k||(k=ae,B=se,K())},void 0,!1,V):B={},K()}}function sy(n,e,r){const a=new C(e);for(const u of n)u.recalculate(a,r)}class jw{constructor(e){this.entries={},this.scheduler=e}request(e,r,a,u){const p=this.entries[e]=this.entries[e]||{callbacks:[]};if(p.result){const[m,y]=p.result;return this.scheduler?this.scheduler.add(()=>{u(m,y)},r):u(m,y),()=>{}}return p.callbacks.push(u),p.cancel||(p.cancel=a((m,y)=>{p.result=[m,y];for(const w of p.callbacks)this.scheduler?this.scheduler.add(()=>{w(m,y)},r):w(m,y);setTimeout(()=>delete this.entries[e],3e3)})),()=>{p.result||(p.callbacks=p.callbacks.filter(m=>m!==u),p.callbacks.length||(p.cancel(),delete this.entries[e]))}}}function Vw(n,e,r){const a=JSON.stringify(n.request);return n.data&&(this.deduped.entries[a]={result:[null,n.data]}),this.deduped.request(a,{type:"parseTile",isSymbolTile:n.isSymbolTile,zoom:n.tileZoom},u=>{const p=Gs(n.request,(m,y,w,b)=>{m?u(m):y&&u(null,{vectorTile:r?void 0:new N_(new If(y)),rawData:y,cacheControl:w,expires:b})});return()=>{p.cancel(),u()}},e)}const Gw=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class ay{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[r,a]=new Uint8Array(e,0,2);if(r!==219)throw new Error("Data does not appear to be in a KDBush format.");const u=a>>4;if(u!==1)throw new Error(`Got v${u} data when expected v1.`);const p=Gw[15&a];if(!p)throw new Error("Unrecognized array type.");const[m]=new Uint16Array(e,2,1),[y]=new Uint32Array(e,4,1);return new ay(y,m,p,e)}constructor(e,r=64,a=Float64Array,u){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=a,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const p=Gw.indexOf(this.ArrayType),m=2*e*this.ArrayType.BYTES_PER_ELEMENT,y=e*this.IndexArrayType.BYTES_PER_ELEMENT,w=(8-y%8)%8;if(p<0)throw new Error(`Unexpected typed array class: ${a}.`);u&&u instanceof ArrayBuffer?(this.data=u,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+m+y+w),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+p]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=e)}add(e,r){const a=this._pos>>1;return this.ids[a]=a,this.coords[this._pos++]=e,this.coords[this._pos++]=r,a}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return ly(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,r,a,u){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:p,coords:m,nodeSize:y}=this,w=[0,p.length-1,0],b=[];for(;w.length;){const A=w.pop()||0,I=w.pop()||0,k=w.pop()||0;if(I-k<=y){for(let V=k;V<=I;V++){const K=m[2*V],ie=m[2*V+1];K>=e&&K<=a&&ie>=r&&ie<=u&&b.push(p[V])}continue}const L=k+I>>1,R=m[2*L],B=m[2*L+1];R>=e&&R<=a&&B>=r&&B<=u&&b.push(p[L]),(A===0?e<=R:r<=B)&&(w.push(k),w.push(L-1),w.push(1-A)),(A===0?a>=R:u>=B)&&(w.push(L+1),w.push(I),w.push(1-A))}return b}within(e,r,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:u,coords:p,nodeSize:m}=this,y=[0,u.length-1,0],w=[],b=a*a;for(;y.length;){const A=y.pop()||0,I=y.pop()||0,k=y.pop()||0;if(I-k<=m){for(let V=k;V<=I;V++)qw(p[2*V],p[2*V+1],e,r)<=b&&w.push(u[V]);continue}const L=k+I>>1,R=p[2*L],B=p[2*L+1];qw(R,B,e,r)<=b&&w.push(u[L]),(A===0?e-a<=R:r-a<=B)&&(y.push(k),y.push(L-1),y.push(1-A)),(A===0?e+a>=R:r+a>=B)&&(y.push(L+1),y.push(I),y.push(1-A))}return w}}function ly(n,e,r,a,u,p){if(u-a<=r)return;const m=a+u>>1;$w(n,e,m,a,u,p),ly(n,e,r,a,m-1,1-p),ly(n,e,r,m+1,u,1-p)}function $w(n,e,r,a,u,p){for(;u>a;){if(u-a>600){const b=u-a+1,A=r-a+1,I=Math.log(b),k=.5*Math.exp(2*I/3),L=.5*Math.sqrt(I*k*(b-k)/b)*(A-b/2<0?-1:1);$w(n,e,r,Math.max(a,Math.floor(r-A*k/b+L)),Math.min(u,Math.floor(r+(b-A)*k/b+L)),p)}const m=e[2*r+p];let y=a,w=u;for(fd(n,e,a,r),e[2*u+p]>m&&fd(n,e,a,u);ym;)w--}e[2*a+p]===m?fd(n,e,a,w):(w++,fd(n,e,w,u)),w<=r&&(a=w+1),r<=w&&(u=w-1)}}function fd(n,e,r,a){cy(n,r,a),cy(e,2*r,2*a),cy(e,2*r+1,2*a+1)}function cy(n,e,r){const a=n[e];n[e]=n[r],n[r]=a}function qw(n,e,r,a){const u=n-r,p=e-a;return u*u+p*p}s.ARRAY_TYPE=cr,s.AUTH_ERR_MSG=ce,s.Aabb=Fi,s.Actor=class{constructor(n,e,r){this.target=n,this.parent=e,this.mapId=r,this.callbacks={},this.cancelCallbacks={},Br(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=to()?n:M,this.scheduler=new _M}send(n,e,r,a,u=!1,p){const m=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(r.metadata=p,this.callbacks[m]=r);const y=Us(this.globalScope)?void 0:[];return this.target.postMessage({id:m,type:n,hasCallback:!!r,targetMapId:a,mustQueue:u,sourceMapId:this.mapId,data:aa(e,y)},y),{cancel:()=>{r&&delete this.callbacks[m],this.target.postMessage({id:m,type:"",targetMapId:a,sourceMapId:this.mapId})}}}receive(n){const e=n.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(e.type===""){const a=this.cancelCallbacks[r];delete this.cancelCallbacks[r],a&&a.cancel()}else if(e.mustQueue||to()){const a=this.callbacks[r];this.cancelCallbacks[r]=this.scheduler.add(()=>this.processTask(r,e),a&&a.metadata||{type:"message"})}else this.processTask(r,e)}processTask(n,e){if(e.type===""){const r=this.callbacks[n];delete this.callbacks[n],r&&(e.error?r(_s(e.error)):r(null,_s(e.data)))}else{const r=Us(this.globalScope)?void 0:[],a=e.hasCallback?(p,m)=>{delete this.cancelCallbacks[n],this.target.postMessage({id:n,type:"",sourceMapId:this.mapId,error:p?aa(p):null,data:aa(m,r)},r)}:p=>{},u=_s(e.data);if(this.parent[e.type])this.parent[e.type](e.sourceMapId,u,a);else if(this.parent.getWorkerSource){const p=e.type.split(".");this.parent.getWorkerSource(e.sourceMapId,p[0],u.source)[p[1]](u,a)}else a(new Error(`Could not find function ${e.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},s.CanonicalTileID=Tf,s.Color=Dn,s.ColorMode=Ho,s.CullFaceMode=wo,s.DEMData=jf,s.DataConstantProperty=O,s.DedupedRequest=jw,s.DepthMode=eu,s.EXTENT=vt,s.Elevation=class{isDataAvailableAtPoint(n){const e=this._source();if(this.isUsingMockSource()||!e||n.y<0||n.y>1)return!1;const r=e.getSource().maxzoom,a=1<1)return e;const u=a.getSource().maxzoom,p=1<{const p=this.getAtTileOffset(n,u.x,u.y),m=a.upVector(n.canonical,u.x,u.y);return Sr(m,m,p*a.upVectorScale(n.canonical,e,r).metersToTile),m}}getForTilePoints(n,e,r,a){if(this.isUsingMockSource())return!1;const u=Vf.create(this,n,a);return!!u&&(e.forEach(p=>{p[2]=this.exaggeration()*u.getElevationAt(p[0],p[1],r)}),!0)}getMinMaxForTile(n){if(this.isUsingMockSource())return null;const e=this.findDEMTileFor(n);if(!e||!e.dem)return null;const r=e.dem.tree,a=e.tileID,u=1<{let k=b===p-1?b-2:b===0?b:b-1;return k+=I?24575:0,[k,A]};for(let b=0;bthis._skuTokenExpiresAt}transformRequest(n,e){return this._transformRequestFn&&this._transformRequestFn(n,e)||{url:n}}normalizeStyleURL(n,e){if(!ge(n))return n;const r=nt(n);return r.path=`/styles/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeGlyphsURL(n,e){if(!ge(n))return n;const r=nt(n);return r.path=`/fonts/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeSourceURL(n,e,r,a){if(!ge(n))return n;const u=nt(n);return u.path=`/v4/${u.authority}.json`,u.params.push("secure"),r&&u.params.push(`language=${r}`),a&&u.params.push(`worldview=${a}`),this._makeAPIURL(u,this._customAccessToken||e)}normalizeSpriteURL(n,e,r,a){const u=nt(n);return ge(n)?(u.path=`/styles/v1${u.path}/sprite${e}${r}`,this._makeAPIURL(u,this._customAccessToken||a)):(u.path+=`${e}${r}`,Ye(u))}normalizeTileURL(n,e,r){if(this._isSkuTokenExpired()&&this._createSkuToken(),n&&!ge(n))return n;const a=nt(n);a.path=a.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${e||r&&a.authority!=="raster"&&r===512?"@2x":""}${oe.supported?".webp":"$1"}`),a.authority==="raster"?a.path=`/${X.RASTER_URL_PREFIX}${a.path}`:(a.path=a.path.replace(/^.+\/v4\//,"/"),a.path=`/${X.TILE_URL_VERSION}${a.path}`);const u=this._customAccessToken||function(p){for(const m of p){const y=m.match(/^access_token=(.*)$/);if(y)return y[1]}return null}(a.params)||X.ACCESS_TOKEN;return X.REQUIRE_ACCESS_TOKEN&&u&&this._skuToken&&a.params.push(`sku=${this._skuToken}`),this._makeAPIURL(a,u)}canonicalizeTileURL(n,e){const r=nt(n);if(!r.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!r.path.match(/\.[\w]+$/))return n;let a="mapbox://";r.path.match(/^\/raster\/v1\//)?a+=`raster/${r.path.replace(`/${X.RASTER_URL_PREFIX}/`,"")}`:a+=`tiles/${r.path.replace(`/${X.TILE_URL_VERSION}/`,"")}`;let u=r.params;return e&&(u=u.filter(p=>!p.match(/^access_token=/))),u.length&&(a+=`?${u.join("&")}`),a}canonicalizeTileset(n,e){const r=!!e&&ge(e),a=[];for(const u of n.tiles||[])xe(u)?a.push(this.canonicalizeTileURL(u,r)):a.push(u);return a}_makeAPIURL(n,e){const r="See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes",a=nt(X.API_URL);if(n.protocol=a.protocol,n.authority=a.authority,n.protocol==="http"){const u=n.params.indexOf("secure");u>=0&&n.params.splice(u,1)}if(a.path!=="/"&&(n.path=`${a.path}${n.path}`),!X.REQUIRE_ACCESS_TOKEN)return Ye(n);if(e=e||X.ACCESS_TOKEN,!this._silenceAuthErrors){if(!e)throw new Error(`An API access token is required to use Mapbox GL. ${r}`);if(e[0]==="s")throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${r}`)}return n.params=n.params.filter(u=>u.indexOf("access_token")===-1),n.params.push(`access_token=${e||""}`),Ye(n)}},s.ResourceType=ss,s.SegmentVector=jn,s.SourceCache=Ll,s.StencilMode=iy,s.StructArrayLayout1ui2=lr,s.StructArrayLayout2f1f2i16=wt,s.StructArrayLayout2i4=Ze,s.StructArrayLayout2ui4=si,s.StructArrayLayout3f12=Ot,s.StructArrayLayout3ui6=mt,s.StructArrayLayout4i8=Be,s.StructArrayLayout5f20=sn,s.Texture=dd,s.Tile=ty,s.Transitionable=D,s.Uniform1f=af,s.Uniform1i=class extends xs{constructor(n){super(n),this.current=0}set(n,e,r){this.fetchUniformLocation(n,e)&&this.current!==r&&(this.current=r,this.gl.uniform1i(this.location,r))}},s.Uniform2f=class extends xs{constructor(n){super(n),this.current=[0,0]}set(n,e,r){this.fetchUniformLocation(n,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1])))}},s.Uniform3f=class extends xs{constructor(n){super(n),this.current=[0,0,0]}set(n,e,r){this.fetchUniformLocation(n,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2])))}},s.Uniform4f=Sx,s.UniformColor=Ax,s.UniformMatrix2f=class extends xs{constructor(n){super(n),this.current=tC}set(n,e,r){if(this.fetchUniformLocation(n,e)){for(let a=0;a<4;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix2fv(this.location,!1,r);break}}}},s.UniformMatrix3f=class extends xs{constructor(n){super(n),this.current=eC}set(n,e,r){if(this.fetchUniformLocation(n,e)){for(let a=0;a<9;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix3fv(this.location,!1,r);break}}}},s.UniformMatrix4f=class extends xs{constructor(n){super(n),this.current=QA}set(n,e,r){if(this.fetchUniformLocation(n,e)){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let a=1;a<16;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}}},s.UnwrappedTileID=z1,s.ValidationError=ct,s.VectorTileFeature=bf,s.VectorTileWorkerSource=class extends Ka{constructor(n,e,r,a,u){super(),this.actor=n,this.layerIndex=e,this.availableImages=r,this.loadVectorData=u||Vw,this.loading={},this.loaded={},this.deduped=new jw(n.scheduler),this.isSpriteLoaded=a,this.scheduler=n.scheduler}loadTile(n,e){const r=n.uid,a=n&&n.request,u=a&&a.collectResourceTiming,p=this.loading[r]=new TM(n);p.abort=this.loadVectorData(n,(m,y)=>{const w=!this.loading[r];if(delete this.loading[r],w||m||!y)return p.status="done",w||(this.loaded[r]=p),e(m);const b=y.rawData,A={};y.expires&&(A.expires=y.expires),y.cacheControl&&(A.cacheControl=y.cacheControl),p.vectorTile=y.vectorTile||new N_(new If(b));const I=()=>{p.parse(p.vectorTile,this.layerIndex,this.availableImages,this.actor,(k,L)=>{if(k||!L)return e(k);const R={};if(u){const B=ju(a);B.length>0&&(R.resourceTiming=JSON.parse(JSON.stringify(B)))}e(null,_n({rawTileData:b.slice(0)},L,A,R))})};this.isSpriteLoaded?I():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(I,{type:"parseTile",isSymbolTile:n.isSymbolTile,zoom:n.tileZoom}):I()}),this.loaded=this.loaded||{},this.loaded[r]=p})}reloadTile(n,e){const r=this.loaded,a=n.uid,u=this;if(r&&r[a]){const p=r[a];p.showCollisionBoxes=n.showCollisionBoxes,p.enableTerrain=!!n.enableTerrain,p.projection=n.projection,p.tileTransform=zl(n.tileID.canonical,n.projection);const m=(y,w)=>{const b=p.reloadCallback;b&&(delete p.reloadCallback,p.parse(p.vectorTile,u.layerIndex,this.availableImages,u.actor,b)),e(y,w)};p.status==="parsing"?p.reloadCallback=m:p.status==="done"&&(p.vectorTile?p.parse(p.vectorTile,this.layerIndex,this.availableImages,this.actor,m):m())}}abortTile(n,e){const r=n.uid,a=this.loading[r];a&&(a.abort&&a.abort(),delete this.loading[r]),e()}removeTile(n,e){const r=this.loaded,a=n.uid;r&&r[a]&&delete r[a],e()}},s.WritingMode=Cr,s.ZoomDependentExpression=fl,s.add=bs,s.addDynamicAttributes=Ff,s.adjoint=function(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=e[4],y=e[5],w=e[6],b=e[7],A=e[8];return n[0]=m*A-y*b,n[1]=u*b-a*A,n[2]=a*y-u*m,n[3]=y*w-p*A,n[4]=r*A-u*w,n[5]=u*p-r*y,n[6]=p*b-m*w,n[7]=a*w-r*b,n[8]=r*m-a*p,n},s.asyncAll=Bt,s.bezier=wr,s.bindAll=Br,s.boundsAttributes=Tw,s.bufferConvexPolygon=function(n,e){const r=[];for(let a=0;aic&&(n.getActor().send("enforceCacheSizeLimit",nc),Ha=0)},s.calculateGlobeLabelMatrix=function(n,e){const{x:r,y:a}=n.point,u=Xx(r,a,n.worldSize/n._pixelsPerMercatorPixel,0,0);return Tl(u,u,x_(Go(e)))},s.calculateGlobeMatrix=function(n){const{x:e,y:r}=n.point,{lng:a,lat:u}=n._center;return Xx(e,r,n.worldSize,a,u)},s.calculateGlobeMercatorMatrix=function(n){const e=n.pixelsPerMeter,r=e/yo(1,n.center.lat),a=go(new Float64Array(16));return Fh(a,a,[n.point.x,n.point.y,0]),Sl(a,a,[r,r,e]),Float32Array.from(a)},s.circumferenceAtLatitude=b_,s.clamp=Ke,s.clearTileCache=function(n){if(!Wa())return;const e=M.caches.delete(js);n&&e.catch(n).then(()=>n())},s.clipLine=sw,s.clone=function(n){var e=new cr(16);return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],e},s.clone$1=Ai,s.collisionCircleLayout=bI,s.config=X,s.conjugate=function(n,e){return n[0]=-e[0],n[1]=-e[1],n[2]=-e[2],n[3]=e[3],n},s.create=function(){var n=new cr(16);return cr!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n},s.create$1=Mx,s.createExpression=ra,s.createLayout=_e,s.createStyleLayer=function(n){return n.type==="custom"?new pM(n):new mM[n.type](n)},s.cross=p_,s.degToRad=St,s.distance=function(n,e){return Math.hypot(e[0]-n[0],e[1]-n[1],e[2]-n[2])},s.div=function(n,e,r){return n[0]=e[0]/r[0],n[1]=e[1]/r[1],n[2]=e[2]/r[2],n},s.dot=qr,s.earthRadius=Hh,s.ease=Or,s.easeCubicInOut=Li,s.ecefToLatLng=function([n,e,r]){const a=Math.hypot(n,e,r),u=Math.atan2(n,r),p=.5*Math.PI-Math.acos(-e/a);return new ln(Vt(u),Vt(p))},s.emitValidationErrors=ef,s.endsWith=yn,s.enforceCacheSizeLimit=function(n){os(),ir&&ir.then(e=>{e.keys().then(r=>{for(let a=0;ap&&(a+=(n[u]-p)*(n[u]-p)),e[u]0){const R=180/a;kx(L,L,[R/b+1,0,0,0,R/A+1,0,-.5*R/I,.5*R/k,1])}return L[2]=w,L[5]=n.x,L[8]=n.y,L},s.getImage=ee,s.getJSON=function(n,e){return ls(_n(n,{type:"json"}),e)},s.getLatitudinalLod=function(n){const e=Ei-5;n=Ke(n,-e,e)/e*90;const r=Math.pow(Math.abs(Math.sin(St(n))),3);return Math.round(r*(qh.length-1))},s.getMapSessionAPI=ii,s.getPerformanceMeasurement=ju,s.getProjection=vw,s.getRTLTextPluginStatus=v,s.getReferrer=as,s.getTilePoint=function(n,{x:e,y:r},a=0){return new Ve(((e-a)*n.scale-n.x)*vt,(r*n.scale-n.y)*vt)},s.getTileVec3=function(n,e,r=0){return Oc(((e.x-r)*n.scale-n.x)*vt,(e.y*n.scale-n.y)*vt,Qx(e.z,e.y))},s.getVideo=function(n,e){const r=M.document.createElement("video");r.muted=!0,r.onloadstart=function(){e(null,r)};for(let a=0;a{}}},s.globeCenterToScreenPoint=function(n){const e=[0,0,0],r=go(new Float64Array(16));return Tl(r,n.pixelMatrix,n.globeMatrix),On(e,e,r),new Ve(e[0],e[1])},s.globeDenormalizeECEF=x_,s.globeECEFOrigin=function(n,e){const r=[0,0,0];return On(r,r,Wh(Go(e.canonical))),On(r,r,n),r},s.globeMetersToEcef=uf,s.globeNormalizeECEF=Wh,s.globePixelsToTileUnits=function(n,e){return vt/(512*Math.pow(2,n))*df(Go(e))},s.globePoleMatrixForTile=function(n,e,r){const a=go(new Float64Array(16)),u=(e/(1<0;return a===0&&!u&&!m&&p},s.identity=go,s.identity$1=Nx,s.invert=c_,s.isFullscreen=function(){return!!M.document.fullscreenElement||!!M.document.webkitFullscreenElement},s.isLngLatBehindGlobe=w_,s.isMapAuthenticated=function(n){return Ci.has(n)},s.isMapboxURL=ge,s.isSafariWithAntialiasingBug=function(n){const e=n.navigator?n.navigator.userAgent:null;return!!Us(n)&&e&&(e.match("Version/15.4")||e.match("Version/15.5")||e.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},s.latFromMercatorY=bi,s.latLngToECEF=Fc,s.len=uC,s.length=Nh,s.length$1=function(n){return Math.hypot(n[0],n[1],n[2],n[3])},s.lngFromMercatorX=Ar,s.loadVectorTile=Vw,s.makeRequest=ls,s.mapValue=function(n,e,r,a,u){return Ke((n-e)/(r-e)*(u-a)+a,a,u)},s.mercatorScale=e1,s.mercatorXfromLng=$o,s.mercatorYfromLat=qo,s.mercatorZfromAltitude=yo,s.mul=lC,s.mul$1=cC,s.multiply=Tl,s.multiply$1=kx,s.multiply$2=Rx,s.nextPowerOfTwo=pi,s.normalize=Bi,s.normalize$1=hC,s.normalize$2=Bx,s.number=Zt,s.ortho=function(n,e,r,a,u,p,m){var y=1/(e-r),w=1/(a-u),b=1/(p-m);return n[0]=-2*y,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*w,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*b,n[11]=0,n[12]=(e+r)*y,n[13]=(u+a)*w,n[14]=(m+p)*b,n[15]=1,n},s.pbf=N1,s.perspective=function(n,e,r,a,u){var p,m=1/Math.tan(e/2);return n[0]=m/r,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=m,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,u!=null&&u!==1/0?(n[10]=(u+a)*(p=1/(a-u)),n[14]=2*u*a*p):(n[10]=-1,n[14]=-2*a),n},s.pick=function(n,e){const r={};for(let a=0;a0&&r[0]<=n.width&&r[1]>0&&r[1]<=n.height&&!w_(n,new ln(n.center.lat,90)),a[0]>0&&a[0]<=n.width&&a[1]>0&&a[1]<=n.height&&!w_(n,new ln(n.center.lat,-90))]},s.polygonContainsPoint=kl,s.polygonIntersectsBox=a1,s.polygonIntersectsPolygon=i1,s.polygonizeBounds=function(n,e,r=0,a=!0){const u=new Ve(r,r),p=n.sub(u),m=e.add(u),y=[p,new Ve(m.x,p.y),m,new Ve(p.x,m.y)];return a&&y.push(p.clone()),y},s.posAttributes=$h,s.postMapLoadEvent=Fn,s.postPerformanceEvent=Yn,s.postTurnstileEvent=$t,s.potpack=G_,s.prevPowerOfTwo=function(n){return n<=1?1:Math.pow(2,Math.floor(Math.log(n)/Math.LN2))},s.radToDeg=Vt,s.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],s.registerForPluginStateChange=function(n){return n({pluginStatus:d,pluginURL:o}),_.on("pluginStateChange",n),n},s.removeAuthState=function(n){Ci.delete(n)},s.renderColorRamp=k_,s.resample=t1,s.rotateX=u_,s.rotateX$1=Ux,s.rotateY=cf,s.rotateY$1=jx,s.rotateZ=function(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[0],m=e[1],y=e[2],w=e[3],b=e[4],A=e[5],I=e[6],k=e[7];return e!==n&&(n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[0]=p*u+b*a,n[1]=m*u+A*a,n[2]=y*u+I*a,n[3]=w*u+k*a,n[4]=b*u-p*a,n[5]=A*u-m*a,n[6]=I*u-y*a,n[7]=k*u-w*a,n},s.rotateZ$1=function(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w+u*y,n[1]=u*w-a*y,n[2]=p*w+m*y,n[3]=m*w-p*y,n},s.scale=Sl,s.scale$1=Ox,s.scale$2=Sr,s.scaleAndAdd=Vh,s.set=function(n,e,r,a){return n[0]=e,n[1]=r,n[2]=a,n},s.setCacheLimits=function(n,e){nc=n,ic=e},s.setColumn=function(n,e,r){n[4*e+0]=r[0],n[4*e+1]=r[1],n[4*e+2]=r[2],n[4*e+3]=r[3]},s.setRTLTextPlugin=function(n,e,r=!1){if(d===Lh||d===Rh||d===Dh)throw new Error("setRTLTextPlugin cannot be called multiple times.");o=no.resolveURL(n),d=Lh,la=e,f(),r||E()},s.smoothstep=Tt,s.spec=Le,s.squaredLength=function(n){var e=n[0],r=n[1],a=n[2];return e*e+r*r+a*a},s.storeAuthState=function(n,e){e?Ci.add(n):Ci.delete(n)},s.sub=_o,s.subtract=d_,s.symbolSize=EI,s.tileAABB=function(n,e,r,a,u,p,m,y,w){if(w.name==="globe")return gC(n,e,new Tf(r,a,u));const b=zl({z:r,x:a,y:u},w);return new Fi([(p+b.x/b.scale)*e,e*(b.y/b.scale),m],[(p+b.x2/b.scale)*e,e*(b.y2/b.scale),y])},s.tileCornersToBounds=hf,s.tileTransform=zl,s.transformMat3=function(n,e,r){var a=e[0],u=e[1],p=e[2];return n[0]=a*r[0]+u*r[3]+p*r[6],n[1]=a*r[1]+u*r[4]+p*r[7],n[2]=a*r[2]+u*r[5]+p*r[8],n},s.transformMat4=On,s.transformMat4$1=Al,s.transformQuat=Dx,s.transitionTileAABBinECEF=Zx,s.translate=Fh,s.transpose=function(n,e){if(n===e){var r=e[1],a=e[2],u=e[5];n[1]=e[3],n[2]=e[6],n[3]=r,n[5]=e[7],n[6]=a,n[7]=u}else n[0]=e[0],n[1]=e[3],n[2]=e[6],n[3]=e[1],n[4]=e[4],n[5]=e[7],n[6]=e[2],n[7]=e[5],n[8]=e[8];return n},s.triggerPluginCompletionEvent=c,s.uniqueId=Wi,s.updateGlobeVertexNormal=function(n,e,r,a,u){const p=5*e+2;n.float32[p+0]=r,n.float32[p+1]=a,n.float32[p+2]=u},s.validateCustomStyleLayer=function(n){const e=[],r=n.id;return r===void 0&&e.push({message:`layers.${r}: missing required property "id"`}),n.render===void 0&&e.push({message:`layers.${r}: missing required method "render"`}),n.renderingMode&&n.renderingMode!=="2d"&&n.renderingMode!=="3d"&&e.push({message:`layers.${r}: property "renderingMode" must be either "2d" or "3d"`}),e},s.validateFilter=n=>ar(vl(n)),s.validateFog=n=>ar(Yp(n)),s.validateLayer=n=>ar(Wp(n)),s.validateLight=n=>ar(Kp(n)),s.validateSource=n=>ar(Xp(n)),s.validateStyle=Qp,s.validateTerrain=n=>ar(Ih(n)),s.values=dn,s.vectorTile=wf,s.version=F,s.warnOnce=vn,s.window=M,s.wrap=xt}),x(["./shared"],function(s){function M(ne){if(typeof ne=="number"||typeof ne=="boolean"||typeof ne=="string"||ne==null)return JSON.stringify(ne);if(Array.isArray(ne)){let U="[";for(const ee of ne)U+=`${M(ee)},`;return`${U}]`}let N="{";for(const U of Object.keys(ne).sort())N+=`${U}:${M(ne[U])},`;return`${N}}`}function F(ne){let N="";for(const U of s.refProperties)N+=`/${M(ne[U])}`;return N}class q{constructor(N){this.keyCache={},N&&this.replace(N)}replace(N){this._layerConfigs={},this._layers={},this.update(N,[])}update(N,U){for(const ce of N)this._layerConfigs[ce.id]=ce,(this._layers[ce.id]=s.createStyleLayer(ce)).compileFilter(),this.keyCache[ce.id]&&delete this.keyCache[ce.id];for(const ce of U)delete this.keyCache[ce],delete this._layerConfigs[ce],delete this._layers[ce];this.familiesBySource={};const ee=function(ce,ge){const xe={};for(let me=0;methis._layers[nt.id]),xe=ge[0];if(xe.visibility==="none")continue;const ve=xe.source||"";let me=this.familiesBySource[ve];me||(me=this.familiesBySource[ve]={});const Me=xe.sourceLayer||"_geojsonTileLayer";let et=me[Me];et||(et=me[Me]=[]),et.push(ge)}}}class X{loadTile(N,U){const{uid:ee,encoding:ce,rawImageData:ge,padding:xe,buildQuadTree:ve}=N,me=s.window.ImageBitmap&&ge instanceof s.window.ImageBitmap?this.getImageData(ge,xe):ge;U(null,new s.DEMData(ee,me,ce,xe<1,ve))}getImageData(N,U){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(N.width,N.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=N.width,this.offscreenCanvas.height=N.height,this.offscreenCanvasContext.drawImage(N,0,0,N.width,N.height);const ee=this.offscreenCanvasContext.getImageData(-U,-U,N.width+2*U,N.height+2*U);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),ee}}function oe(ne,N){if(ne.length!==0){Ae(ne[0],N);for(var U=1;U=Math.abs(ve)?U-me+ve:ve-me+U,U=me}U+ee>=0!=!!N&&ne.reverse()}var fe=s.getDefaultExportFromCjs(function ne(N,U){var ee,ce=N&&N.type;if(ce==="FeatureCollection")for(ee=0;ee>31}function zi(ne,N){for(var U=ne.loadGeometry(),ee=ne.type,ce=0,ge=0,xe=U.length,ve=0;vene},Ke=Math.fround||(Tt=new Float32Array(1),ne=>(Tt[0]=+ne,Tt[0]));var Tt;const xt=3,Bt=5,dn=6;class _n{constructor(N){this.options=Object.assign(Object.create(Or),N),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(N){const{log:U,minZoom:ee,maxZoom:ce}=this.options;U&&console.time("total time");const ge=`prepare ${N.length} points`;U&&console.time(ge),this.points=N;const xe=[];for(let me=0;me=ee;me--){const Me=+Date.now();ve=this.trees[me]=this._createTree(this._cluster(ve,me)),U&&console.log("z%d: %d clusters in %dms",me,ve.numItems,+Date.now()-Me)}return U&&console.timeEnd("total time"),this}getClusters(N,U){let ee=((N[0]+180)%360+360)%360-180;const ce=Math.max(-90,Math.min(90,N[1]));let ge=N[2]===180?180:((N[2]+180)%360+360)%360-180;const xe=Math.max(-90,Math.min(90,N[3]));if(N[2]-N[0]>=360)ee=-180,ge=180;else if(ee>ge){const nt=this.getClusters([ee,ce,180,xe],U),Ye=this.getClusters([-180,ce,ge,xe],U);return nt.concat(Ye)}const ve=this.trees[this._limitZoom(U)],me=ve.range(ti(ee),pi(xe),ti(ge),pi(ce)),Me=ve.data,et=[];for(const nt of me){const Ye=this.stride*nt;et.push(Me[Ye+Bt]>1?ei(Me,Ye,this.clusterProps):this.points[Me[Ye+xt]])}return et}getChildren(N){const U=this._getOriginId(N),ee=this._getOriginZoom(N),ce="No cluster with the specified id.",ge=this.trees[ee];if(!ge)throw new Error(ce);const xe=ge.data;if(U*this.stride>=xe.length)throw new Error(ce);const ve=this.options.radius/(this.options.extent*Math.pow(2,ee-1)),me=ge.within(xe[U*this.stride],xe[U*this.stride+1],ve),Me=[];for(const et of me){const nt=et*this.stride;xe[nt+4]===N&&Me.push(xe[nt+Bt]>1?ei(xe,nt,this.clusterProps):this.points[xe[nt+xt]])}if(Me.length===0)throw new Error(ce);return Me}getLeaves(N,U,ee){const ce=[];return this._appendLeaves(ce,N,U=U||10,ee=ee||0,0),ce}getTile(N,U,ee){const ce=this.trees[this._limitZoom(N)],ge=Math.pow(2,N),{extent:xe,radius:ve}=this.options,me=ve/xe,Me=(ee-me)/ge,et=(ee+1+me)/ge,nt={features:[]};return this._addTileFeatures(ce.range((U-me)/ge,Me,(U+1+me)/ge,et),ce.data,U,ee,ge,nt),U===0&&this._addTileFeatures(ce.range(1-me/ge,Me,1,et),ce.data,ge,ee,ge,nt),U===ge-1&&this._addTileFeatures(ce.range(0,Me,me/ge,et),ce.data,-1,ee,ge,nt),nt.features.length?nt:null}getClusterExpansionZoom(N){let U=this._getOriginZoom(N)-1;for(;U<=this.options.maxZoom;){const ee=this.getChildren(N);if(U++,ee.length!==1)break;N=ee[0].properties.cluster_id}return U}_appendLeaves(N,U,ee,ce,ge){const xe=this.getChildren(U);for(const ve of xe){const me=ve.properties;if(me&&me.cluster?ge+me.point_count<=ce?ge+=me.point_count:ge=this._appendLeaves(N,me.cluster_id,ee,ce,ge):ge1;let et,nt,Ye;if(Me)et=Wi(U,me,this.clusterProps),nt=U[me],Ye=U[me+1];else{const Pt=this.points[U[me+xt]];et=Pt.properties;const[Dt,$t]=Pt.geometry.coordinates;nt=ti(Dt),Ye=pi($t)}const kt={type:1,geometry:[[Math.round(this.options.extent*(nt*ge-ee)),Math.round(this.options.extent*(Ye*ge-ce))]],tags:et};let Rt;Rt=Me||this.options.generateId?U[me+xt]:this.points[U[me+xt]].id,Rt!==void 0&&(kt.id=Rt),xe.features.push(kt)}}_limitZoom(N){return Math.max(this.options.minZoom,Math.min(Math.floor(+N),this.options.maxZoom+1))}_cluster(N,U){const{radius:ee,extent:ce,reduce:ge,minPoints:xe}=this.options,ve=ee/(ce*Math.pow(2,U)),me=N.data,Me=[],et=this.stride;for(let nt=0;ntU&&(Dt+=me[An+Bt])}if(Dt>Pt&&Dt>=xe){let $t,An=Ye*Pt,Fn=kt*Pt,vi=-1;const Yn=((nt/et|0)<<5)+(U+1)+this.points.length;for(const Fr of Rt){const ii=Fr*et;if(me[ii+2]<=U)continue;me[ii+2]=U;const Ci=me[ii+Bt];An+=me[ii]*Ci,Fn+=me[ii+1]*Ci,me[ii+4]=Yn,ge&&($t||($t=this._map(me,nt,!0),vi=this.clusterProps.length,this.clusterProps.push($t)),ge($t,this._map(me,ii)))}me[nt+4]=Yn,Me.push(An/Dt,Fn/Dt,1/0,Yn,-1,Dt),ge&&Me.push(vi)}else{for(let $t=0;$t1)for(const $t of Rt){const An=$t*et;if(!(me[An+2]<=U)){me[An+2]=U;for(let Fn=0;Fn>5}_getOriginZoom(N){return(N-this.points.length)%32}_map(N,U,ee){if(N[U+Bt]>1){const xe=this.clusterProps[N[U+dn]];return ee?Object.assign({},xe):xe}const ce=this.points[N[U+xt]].properties,ge=this.options.map(ce);return ee&&ge===ce?Object.assign({},ge):ge}}function ei(ne,N,U){return{type:"Feature",id:ne[N+xt],properties:Wi(ne,N,U),geometry:{type:"Point",coordinates:[(ee=ne[N],360*(ee-.5)),rs(ne[N+1])]}};var ee}function Wi(ne,N,U){const ee=ne[N+Bt],ce=ee>=1e4?`${Math.round(ee/1e3)}k`:ee>=1e3?Math.round(ee/100)/10+"k":ee,ge=ne[N+dn],xe=ge===-1?{}:Object.assign({},U[ge]);return Object.assign(xe,{cluster:!0,cluster_id:ne[N+xt],point_count:ee,point_count_abbreviated:ce})}function ti(ne){return ne/360+.5}function pi(ne){const N=Math.sin(ne*Math.PI/180),U=.5-.25*Math.log((1+N)/(1-N))/Math.PI;return U<0?0:U>1?1:U}function rs(ne){const N=(180-360*ne)*Math.PI/180;return 360*Math.atan(Math.exp(N))/Math.PI-90}function Br(ne,N,U,ee){for(var ce,ge=ee,xe=U-N>>1,ve=U-N,me=ne[N],Me=ne[N+1],et=ne[U],nt=ne[U+1],Ye=N+3;Yege)ce=Ye,ge=kt;else if(kt===ge){var Rt=Math.abs(Ye-xe);Rtee&&(ce-N>3&&Br(ne,N,ce,ee),ne[ce+2]=ge,U-ce>3&&Br(ne,ce,U,ee))}function yn(ne,N,U,ee,ce,ge){var xe=ce-U,ve=ge-ee;if(xe!==0||ve!==0){var me=((ne-U)*xe+(N-ee)*ve)/(xe*xe+ve*ve);me>1?(U=ce,ee=ge):me>0&&(U+=xe*me,ee+=ve*me)}return(xe=ne-U)*xe+(ve=N-ee)*ve}function Mt(ne,N,U,ee){var ce={id:ne===void 0?null:ne,type:N,geometry:U,tags:ee,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(ge){var xe=ge.geometry,ve=ge.type;if(ve==="Point"||ve==="MultiPoint"||ve==="LineString")Ro(ge,xe);else if(ve==="Polygon"||ve==="MultiLineString")for(var me=0;me0&&(xe+=ee?(ce*Me-me*ge)/2:Math.sqrt(Math.pow(me-ce,2)+Math.pow(Me-ge,2))),ce=me,ge=Me}var et=N.length-3;N[2]=1,Br(N,0,et,U),N[et+2]=1,N.size=Math.abs(xe),N.start=0,N.end=N.size}function nr(ne,N,U,ee){for(var ce=0;ce1?1:U}function Hi(ne,N,U,ee,ce,ge,xe,ve){if(ee/=N,ge>=(U/=N)&&xe=ee)return null;for(var me=[],Me=0;Me=U&&Rt=ee)){var Pt=[];if(Ye==="Point"||Ye==="MultiPoint")qa(nt,Pt,U,ee,ce);else if(Ye==="LineString")Us(nt,Pt,U,ee,ce,!1,ve.lineMetrics);else if(Ye==="MultiLineString")Oo(nt,Pt,U,ee,ce,!1);else if(Ye==="Polygon")Oo(nt,Pt,U,ee,ce,!0);else if(Ye==="MultiPolygon")for(var Dt=0;Dt=U&&xe<=ee&&(N.push(ne[ge]),N.push(ne[ge+1]),N.push(ne[ge+2]))}}function Us(ne,N,U,ee,ce,ge,xe){for(var ve,me,Me=Za(ne),et=ce===0?nc:ic,nt=ne.start,Ye=0;YeU&&(me=et(Me,kt,Rt,Dt,$t,U),xe&&(Me.start=nt+ve*me)):An>ee?Fn=U&&(me=et(Me,kt,Rt,Dt,$t,U),vi=!0),Fn>ee&&An<=ee&&(me=et(Me,kt,Rt,Dt,$t,ee),vi=!0),!ge&&vi&&(xe&&(Me.end=nt+ve*me),N.push(Me),Me=Za(ne)),xe&&(nt+=ve)}var Yn=ne.length-3;kt=ne[Yn],Rt=ne[Yn+1],Pt=ne[Yn+2],(An=ce===0?kt:Rt)>=U&&An<=ee&&js(Me,kt,Rt,Pt),Yn=Me.length-3,ge&&Yn>=3&&(Me[Yn]!==Me[0]||Me[Yn+1]!==Me[1])&&js(Me,Me[0],Me[1],Me[2]),Me.length&&N.push(Me)}function Za(ne){var N=[];return N.size=ne.size,N.start=ne.start,N.end=ne.end,N}function Oo(ne,N,U,ee,ce,ge){for(var xe=0;xexe.maxX&&(xe.maxX=et),nt>xe.maxY&&(xe.maxY=nt)}return xe}function Ha(ne,N,U,ee){var ce=N.geometry,ge=N.type,xe=[];if(ge==="Point"||ge==="MultiPoint")for(var ve=0;ve0&&N.size<(ce?xe:ee))U.numPoints+=N.length/3;else{for(var ve=[],me=0;mexe)&&(U.numSimplified++,ve.push(N[me]),ve.push(N[me+1])),U.numPoints++;ce&&function(Me,et){for(var nt=0,Ye=0,kt=Me.length,Rt=kt-2;Ye0===et)for(Ye=0,kt=Me.length;Ye24)throw new Error("maxZoom should be in the 0-24 range");if(N.promoteId&&N.generateId)throw new Error("promoteId and generateId cannot be used together.");var ee=function(ce,ge){var xe=[];if(ce.type==="FeatureCollection")for(var ve=0;ve1&&console.time("creation"),Ye=this.tiles[nt]=Vs(ne,N,U,ee,me),this.tileCoords.push({z:N,x:U,y:ee}),Me)){Me>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",N,U,ee,Ye.numFeatures,Ye.numPoints,Ye.numSimplified),console.timeEnd("creation"));var kt="z"+N;this.stats[kt]=(this.stats[kt]||0)+1,this.total++}if(Ye.source=ne,ce){if(N===me.maxZoom||N===ce)continue;var Rt=1<1&&console.time("clipping");var Pt,Dt,$t,An,Fn,vi,Yn=.5*me.buffer/me.extent,Fr=.5-Yn,ii=.5+Yn,Ci=1+Yn;Pt=Dt=$t=An=null,Fn=Hi(ne,et,U-Yn,U+ii,0,Ye.minX,Ye.maxX,me),vi=Hi(ne,et,U+Fr,U+Ci,0,Ye.minX,Ye.maxX,me),ne=null,Fn&&(Pt=Hi(Fn,et,ee-Yn,ee+ii,1,Ye.minY,Ye.maxY,me),Dt=Hi(Fn,et,ee+Fr,ee+Ci,1,Ye.minY,Ye.maxY,me),Fn=null),vi&&($t=Hi(vi,et,ee-Yn,ee+ii,1,Ye.minY,Ye.maxY,me),An=Hi(vi,et,ee+Fr,ee+Ci,1,Ye.minY,Ye.maxY,me),vi=null),Me>1&&console.timeEnd("clipping"),ve.push(Pt||[],N+1,2*U,2*ee),ve.push(Dt||[],N+1,2*U,2*ee+1),ve.push($t||[],N+1,2*U+1,2*ee),ve.push(An||[],N+1,2*U+1,2*ee+1)}}},Fo.prototype.getTile=function(ne,N,U){var ee=this.options,ce=ee.extent,ge=ee.debug;if(ne<0||ne>24)return null;var xe=1<1&&console.log("drilling down to z%d-%d-%d",ne,N,U);for(var me,Me=ne,et=N,nt=U;!me&&Me>0;)Me--,et=Math.floor(et/2),nt=Math.floor(nt/2),me=this.tiles[as(Me,et,nt)];return me&&me.source?(ge>1&&console.log("found parent tile z%d-%d-%d",Me,et,nt),ge>1&&console.time("drilling down"),this.splitTile(me.source,Me,et,nt,ne,N,U),ge>1&&console.timeEnd("drilling down"),this.tiles[ve]?Wa(this.tiles[ve],ce):null):null};class Gs extends s.VectorTileWorkerSource{constructor(N,U,ee,ce,ge){super(N,U,ee,ce,ls),ge&&(this.loadGeoJSON=ge)}loadData(N,U){const ee=N&&N.request,ce=ee&&ee.collectResourceTiming;this.loadGeoJSON(N,(ge,xe)=>{if(ge||!xe)return U(ge);if(typeof xe!="object")return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`));{fe(xe,!0);try{if(N.filter){const me=s.createExpression(N.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(me.result==="error")throw new Error(me.value.map(et=>`${et.key}: ${et.message}`).join(", "));xe={type:"FeatureCollection",features:xe.features.filter(et=>me.value.evaluate({zoom:0},et))}}this._geoJSONIndex=N.cluster?new _n(function({superclusterOptions:me,clusterProperties:Me}){if(!Me||!me)return me;const et={},nt={},Ye={accumulated:null,zoom:0},kt={properties:null},Rt=Object.keys(Me);for(const Pt of Rt){const[Dt,$t]=Me[Pt],An=s.createExpression($t),Fn=s.createExpression(typeof Dt=="string"?[Dt,["accumulated"],["get",Pt]]:Dt);et[Pt]=An.value,nt[Pt]=Fn.value}return me.map=Pt=>{kt.properties=Pt;const Dt={};for(const $t of Rt)Dt[$t]=et[$t].evaluate(Ye,kt);return Dt},me.reduce=(Pt,Dt)=>{kt.properties=Dt;for(const $t of Rt)Ye.accumulated=Pt[$t],Pt[$t]=nt[$t].evaluate(Ye,kt)},me}(N)).load(xe.features):function(me,Me){return new Fo(me,Me)}(xe,N.geojsonVtOptions)}catch(me){return U(me)}this.loaded={};const ve={};if(ce){const me=s.getPerformanceMeasurement(ee);me&&(ve.resourceTiming={},ve.resourceTiming[N.source]=JSON.parse(JSON.stringify(me)))}U(null,ve)}})}reloadTile(N,U){const ee=this.loaded;return ee&&ee[N.uid]?super.reloadTile(N,U):this.loadTile(N,U)}loadGeoJSON(N,U){if(N.request)s.getJSON(N.request,U);else{if(typeof N.data!="string")return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`));try{return U(null,JSON.parse(N.data))}catch{return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(N,U){try{U(null,this._geoJSONIndex.getClusterExpansionZoom(N.clusterId))}catch(ee){U(ee)}}getClusterChildren(N,U){try{U(null,this._geoJSONIndex.getChildren(N.clusterId))}catch(ee){U(ee)}}getClusterLeaves(N,U){try{U(null,this._geoJSONIndex.getLeaves(N.clusterId,N.limit,N.offset))}catch(ee){U(ee)}}}class rc{constructor(N){this.self=N,this.actor=new s.Actor(N,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=s.getProjection({name:"mercator"}),this.workerSourceTypes={vector:s.VectorTileWorkerSource,geojson:Gs},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(U,ee)=>{if(this.workerSourceTypes[U])throw new Error(`Worker source with name "${U}" already registered.`);this.workerSourceTypes[U]=ee},this.self.registerRTLTextPlugin=U=>{if(s.plugin.isParsed())throw new Error("RTL text plugin already registered.");s.plugin.applyArabicShaping=U.applyArabicShaping,s.plugin.processBidirectionalText=U.processBidirectionalText,s.plugin.processStyledBidirectionalText=U.processStyledBidirectionalText}}clearCaches(N,U,ee){delete this.layerIndexes[N],delete this.availableImages[N],delete this.workerSources[N],delete this.demWorkerSources[N],ee()}checkIfReady(N,U,ee){ee()}setReferrer(N,U){this.referrer=U}spriteLoaded(N,U){this.isSpriteLoaded[N]=U;for(const ee in this.workerSources[N]){const ce=this.workerSources[N][ee];for(const ge in ce)ce[ge]instanceof s.VectorTileWorkerSource&&(ce[ge].isSpriteLoaded=U,ce[ge].fire(new s.Event("isSpriteLoaded")))}}setImages(N,U,ee){this.availableImages[N]=U;for(const ce in this.workerSources[N]){const ge=this.workerSources[N][ce];for(const xe in ge)ge[xe].availableImages=U}ee()}enableTerrain(N,U,ee){this.terrain=U,ee()}setProjection(N,U){this.projections[N]=s.getProjection(U)}setLayers(N,U,ee){this.getLayerIndex(N).replace(U),ee()}updateLayers(N,U,ee){this.getLayerIndex(N).update(U.layers,U.removedIds),ee()}loadTile(N,U,ee){const ce=this.enableTerrain?s.extend({enableTerrain:this.terrain},U):U;ce.projection=this.projections[N]||this.defaultProjection,this.getWorkerSource(N,U.type,U.source).loadTile(ce,ee)}loadDEMTile(N,U,ee){const ce=this.enableTerrain?s.extend({buildQuadTree:this.terrain},U):U;this.getDEMWorkerSource(N,U.source).loadTile(ce,ee)}reloadTile(N,U,ee){const ce=this.enableTerrain?s.extend({enableTerrain:this.terrain},U):U;ce.projection=this.projections[N]||this.defaultProjection,this.getWorkerSource(N,U.type,U.source).reloadTile(ce,ee)}abortTile(N,U,ee){this.getWorkerSource(N,U.type,U.source).abortTile(U,ee)}removeTile(N,U,ee){this.getWorkerSource(N,U.type,U.source).removeTile(U,ee)}removeSource(N,U,ee){if(!this.workerSources[N]||!this.workerSources[N][U.type]||!this.workerSources[N][U.type][U.source])return;const ce=this.workerSources[N][U.type][U.source];delete this.workerSources[N][U.type][U.source],ce.removeSource!==void 0?ce.removeSource(U,ee):ee()}loadWorkerSource(N,U,ee){try{this.self.importScripts(U.url),ee()}catch(ce){ee(ce.toString())}}syncRTLPluginState(N,U,ee){try{s.plugin.setState(U);const ce=s.plugin.getPluginURL();if(s.plugin.isLoaded()&&!s.plugin.isParsed()&&ce!=null){this.self.importScripts(ce);const ge=s.plugin.isParsed();ee(ge?void 0:new Error(`RTL Text Plugin failed to import scripts from ${ce}`),ge)}}catch(ce){ee(ce.toString())}}getAvailableImages(N){let U=this.availableImages[N];return U||(U=[]),U}getLayerIndex(N){let U=this.layerIndexes[N];return U||(U=this.layerIndexes[N]=new q),U}getWorkerSource(N,U,ee){if(this.workerSources[N]||(this.workerSources[N]={}),this.workerSources[N][U]||(this.workerSources[N][U]={}),!this.workerSources[N][U][ee]){const ce={send:(ge,xe,ve,me,Me,et)=>{this.actor.send(ge,xe,ve,N,Me,et)},scheduler:this.actor.scheduler};this.workerSources[N][U][ee]=new this.workerSourceTypes[U](ce,this.getLayerIndex(N),this.getAvailableImages(N),this.isSpriteLoaded[N])}return this.workerSources[N][U][ee]}getDEMWorkerSource(N,U){return this.demWorkerSources[N]||(this.demWorkerSources[N]={}),this.demWorkerSources[N][U]||(this.demWorkerSources[N][U]=new X),this.demWorkerSources[N][U]}enforceCacheSizeLimit(N,U){s.enforceCacheSizeLimit(U)}getWorkerPerformanceMetrics(N,U,ee){ee(void 0,void 0)}}return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope&&(self.worker=new rc(self)),rc}),x(["./shared"],function(s){function M(d,o){if(Array.isArray(d)){if(!Array.isArray(o)||d.length!==o.length)return!1;for(let c=0;c"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var f,_,v=new Blob([""],{type:"text/javascript"}),E=URL.createObjectURL(v);try{_=new Worker(E),f=!0}catch{f=!1}return _&&_.terminate(),URL.revokeObjectURL(E),f}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var f=document.createElement("canvas");f.width=f.height=1;var _=f.getContext("2d");if(!_)return!1;var v=_.getImageData(0,0,1,1);return v&&v.width===f.width}()?(X[c=o&&o.failIfMajorPerformanceCaveat]===void 0&&(X[c]=function(f){var _,v=function(E){var S=document.createElement("canvas"),C=Object.create(q.webGLContextAttributes);return C.failIfMajorPerformanceCaveat=E,S.getContext("webgl",C)||S.getContext("experimental-webgl",C)}(f);if(!v)return!1;try{_=v.createShader(v.VERTEX_SHADER)}catch{return!1}return!(!_||v.isContextLost())&&(v.shaderSource(_,"void main() {}"),v.compileShader(_),v.getShaderParameter(_,v.COMPILE_STATUS)===!0)}(c)),X[c]?document.documentMode?"insufficient ECMAScript 6 support":void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var c}(d)}var X={};function oe(d,o,c){const f=s.window.document.createElement(d);return o!==void 0&&(f.className=o),c&&c.appendChild(f),f}function Ae(d,o,c){const f=s.window.document.createElementNS("http://www.w3.org/2000/svg",d);for(const _ of Object.keys(o))f.setAttributeNS(null,_,o[_]);return c&&c.appendChild(f),f}q.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0};const fe=s.window.document&&s.window.document.documentElement.style,ke=fe&&fe.userSelect!==void 0?"userSelect":"WebkitUserSelect";let ze;function ue(){fe&&ke&&(ze=fe[ke],fe[ke]="none")}function re(){fe&&ke&&(fe[ke]=ze)}function le(d){d.preventDefault(),d.stopPropagation(),s.window.removeEventListener("click",le,!0)}function De(){s.window.addEventListener("click",le,!0),s.window.setTimeout(()=>{s.window.removeEventListener("click",le,!0)},0)}function je(d,o){const c=d.getBoundingClientRect();return ut(d,c,o)}function tt(d,o){const c=d.getBoundingClientRect(),f=[];for(let _=0;_=0?0:d.button}function ut(d,o,c){const f=d.offsetWidth===o.width?1:d.offsetWidth/o.width;return new s.Point((c.clientX-o.left)*f,(c.clientY-o.top)*f)}function Ve(d,o){var c=o[0],f=o[1],_=o[2],v=o[3],E=c*v-_*f;return E?(d[0]=v*(E=1/E),d[1]=-f*E,d[2]=-_*E,d[3]=c*E,d):null}function jt(d){const{userImage:o}=d;return!!(o&&o.render&&o.render())&&(d.data.replace(new Uint8Array(o.data.buffer)),!0)}class di extends s.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(o){if(this.loaded!==o&&(this.loaded=o,o)){for(const{ids:c,callback:f}of this.requestors)this._notify(c,f);this.requestors=[]}}hasImage(o){return!!this.getImage(o)}getImage(o){return this.images[o]}addImage(o,c){this._validate(o,c)&&(this.images[o]=c)}_validate(o,c){let f=!0;return this._validateStretch(c.stretchX,c.data&&c.data.width)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "stretchX" value`))),f=!1),this._validateStretch(c.stretchY,c.data&&c.data.height)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "stretchY" value`))),f=!1),this._validateContent(c.content,c)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "content" value`))),f=!1),f}_validateStretch(o,c){if(!o)return!0;let f=0;for(const _ of o){if(_[0]{this.ready=!0})}broadcast(o,c,f){s.asyncAll(this.actors,(_,v)=>{_.send(o,c,v)},f=f||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(o=>{o.remove()}),this.actors=[],this.workerPool.release(this.id)}}function Bt(d,o,c){return o*(s.EXTENT/(d.tileSize*Math.pow(2,c-d.tileID.overscaledZ)))}xt.Actor=s.Actor;class dn{constructor(o,c,f,_){this.screenBounds=o,this.cameraPoint=c,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=f,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,_)}static createFromScreenPoints(o,c){let f,_;if(o instanceof s.Point||typeof o[0]=="number"){const v=s.Point.convert(o);f=[v],_=c.isPointAboveHorizon(v)}else{const v=s.Point.convert(o[0]),E=s.Point.convert(o[1]);f=[v,E],_=s.polygonizeBounds(v,E).every(S=>c.isPointAboveHorizon(S))}return new dn(f,c.getCameraPoint(),_,c)}isPointQuery(){return this.screenBounds.length===1}bufferedScreenGeometry(o){return s.polygonizeBounds(this.screenBounds[0],this.screenBounds.length===1?this.screenBounds[0]:this.screenBounds[1],o)}bufferedCameraGeometry(o){const c=this.screenBounds[0],f=this.screenBounds.length===1?this.screenBounds[0].add(new s.Point(1,1)):this.screenBounds[1],_=s.polygonizeBounds(c,f,0,!1);return this.cameraPoint.y>f.y&&(this.cameraPoint.x>c.x&&this.cameraPoint.x=f.x?_[2]=this.cameraPoint:this.cameraPoint.x<=c.x&&(_[3]=this.cameraPoint)),s.bufferConvexPolygon(_,o)}bufferedCameraGeometryGlobe(o){const c=this.screenBounds[0],f=this.screenBounds.length===1?this.screenBounds[0].add(new s.Point(1,1)):this.screenBounds[1],_=s.polygonizeBounds(c,f,o),v=this.cameraPoint.clone();switch(3*((v.y>c.y)+(v.y>f.y))+((v.x>c.x)+(v.x>f.x))){case 0:_[0]=v,_[4]=v.clone();break;case 1:_.splice(1,0,v);break;case 2:_[1]=v;break;case 3:_.splice(4,0,v);break;case 5:_.splice(2,0,v);break;case 6:_[3]=v;break;case 7:_.splice(3,0,v);break;case 8:_[2]=v}return _}containsTile(o,c,f,_=0){const v=o.queryPadding/c._pixelsPerMercatorPixel+1,E=f?this._bufferedCameraMercator(v,c):this._bufferedScreenMercator(v,c);let S=o.tileID.wrap+(E.unwrapped?_:0);const C=E.polygon.map(H=>s.getTilePoint(o.tileTransform,H,S));if(!s.polygonIntersectsBox(C,0,0,s.EXTENT,s.EXTENT))return;S=o.tileID.wrap+(this.screenGeometryMercator.unwrapped?_:0);const z=this.screenGeometryMercator.polygon.map(H=>s.getTileVec3(o.tileTransform,H,S)),P=z.map(H=>new s.Point(H[0],H[1])),D=c.getFreeCameraOptions().position||new s.MercatorCoordinate(0,0,0),j=s.getTileVec3(o.tileTransform,D,S),$=z.map(H=>{const O=s.sub(H,H,j);return s.normalize(O,O),new s.Ray(j,O)}),W=Bt(o,1,c.zoom)*c._pixelsPerMercatorPixel;return{queryGeometry:this,tilespaceGeometry:P,tilespaceRays:$,bufferedTilespaceGeometry:C,bufferedTilespaceBounds:(Z=s.getBounds(C),Z.min.x=s.clamp(Z.min.x,0,s.EXTENT),Z.min.y=s.clamp(Z.min.y,0,s.EXTENT),Z.max.x=s.clamp(Z.max.x,0,s.EXTENT),Z.max.y=s.clamp(Z.max.y,0,s.EXTENT),Z),tile:o,tileID:o.tileID,pixelToTileUnitsFactor:W};var Z}_bufferedScreenMercator(o,c){const f=Wi(o);if(this._screenRaycastCache[f])return this._screenRaycastCache[f];{let _;return _=c.projection.name==="globe"?this._projectAndResample(this.bufferedScreenGeometry(o),c):{polygon:this.bufferedScreenGeometry(o).map(v=>c.pointCoordinate3D(v)),unwrapped:!0},this._screenRaycastCache[f]=_,_}}_bufferedCameraMercator(o,c){const f=Wi(o);if(this._cameraRaycastCache[f])return this._cameraRaycastCache[f];{let _;return _=c.projection.name==="globe"?this._projectAndResample(this.bufferedCameraGeometryGlobe(o),c):{polygon:this.bufferedCameraGeometry(o).map(v=>c.pointCoordinate3D(v)),unwrapped:!0},this._cameraRaycastCache[f]=_,_}}_projectAndResample(o,c){const f=function(v,E){const S=s.multiply([],E.pixelMatrix,E.globeMatrix),C=[0,-s.GLOBE_RADIUS,0,1],z=[0,s.GLOBE_RADIUS,0,1],P=[0,0,0,1];s.transformMat4$1(C,C,S),s.transformMat4$1(z,z,S),s.transformMat4$1(P,P,S);const D=new s.Point(C[0]/C[3],C[1]/C[3]),j=new s.Point(z[0]/z[3],z[1]/z[3]),$=s.polygonContainsPoint(v,D)&&C[3]1?_n(v.slice(0,H),E):[],J=Hnew s.Point(ei(de.x),de.y)),J=J.map(de=>new s.Point(ei(de.x),de.y));const Q=[...G];Q.length===0&&Q.push(J[J.length-1]);const he=s.number(Q[Q.length-1].y,(J.length===0?G[0]:J[0]).y,O);let pe;return pe=$?[new s.Point(0,he),new s.Point(0,0),new s.Point(1,0),new s.Point(1,he)]:[new s.Point(1,he),new s.Point(1,1),new s.Point(0,1),new s.Point(0,he)],Q.push(...pe),J.length===0?Q.push(G[0]):Q.push(...J),{polygon:Q.map(de=>new s.MercatorCoordinate(de.x,de.y)),unwrapped:!1}}(o,c);if(f)return f;const _=function(v,E){let S=!1,C=-1/0,z=0;for(let D=0;DC&&(C=v[D].x,z=D);for(let D=0;D.5&&($.x{D.x-=1}),{polygon:v,unwrapped:S}}(_n(o,c).map(v=>new s.Point(ei(v.x),v.y)),c);return{polygon:_.polygon.map(v=>new s.MercatorCoordinate(v.x,v.y)),unwrapped:_.unwrapped}}}function _n(d,o){return s.resample(d,c=>{const f=o.pointCoordinate3D(c);c.x=f.x,c.y=f.y},1/256)}function ei(d){return d<0?1+d%1:d%1}function Wi(d){return 100*d|0}function ti(d,o,c,f,_){const v=function(E,S){if(E)return _(E);if(S){d.url&&S.tiles&&d.tiles&&delete d.tiles;const C=s.pick(s.extend(S,d),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);S.vector_layers&&(C.vectorLayers=S.vector_layers,C.vectorLayerIds=C.vectorLayers.map(z=>z.id)),C.tiles=o.canonicalizeTileset(C,d.url),_(null,C)}};return d.url?s.getJSON(o.transformRequest(o.normalizeSourceURL(d.url,null,c,f),s.ResourceType.Source),v):s.exported.frame(()=>v(null,d))}class pi{constructor(o,c,f){this.bounds=s.LngLatBounds.convert(this.validateBounds(o)),this.minzoom=c||0,this.maxzoom=f||24}validateBounds(o){return Array.isArray(o)&&o.length===4?[Math.max(-180,o[0]),Math.max(-90,o[1]),Math.min(180,o[2]),Math.min(90,o[3])]:[-180,-90,180,90]}contains(o){const c=Math.pow(2,o.z),f=Math.floor(s.mercatorXfromLng(this.bounds.getWest())*c),_=Math.floor(s.mercatorYfromLat(this.bounds.getNorth())*c),v=Math.ceil(s.mercatorXfromLng(this.bounds.getEast())*c),E=Math.ceil(s.mercatorYfromLat(this.bounds.getSouth())*c);return o.x>=f&&o.x=_&&o.y{this._tileJSONRequest=null,this._loaded=!0,_?(c&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${c}`),f&&f.length!==2&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${f}`),this.fire(new s.ErrorEvent(_))):v&&(s.extend(this,v),v.bounds&&(this.tileBounds=new pi(v.bounds,this.minzoom,this.maxzoom)),s.postTurnstileEvent(v.tiles,this.map._requestManager._customAccessToken),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))),o&&o(_)})}loaded(){return this._loaded}hasTile(o){return!this.tileBounds||this.tileBounds.contains(o.canonical)}onAdd(o){this.map=o,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>this.map.style._clearSource(this.id))}setTiles(o){return this._options.tiles=o,this.reload(),this}setUrl(o){return this.url=o,this._options.url=o,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return s.extend({},this._options)}loadTile(o,c){const f=this.map._requestManager.normalizeTileURL(o.tileID.canonical.url(this.tiles,this.scheme)),_={request:this.map._requestManager.transformRequest(f,s.ResourceType.Tile),data:void 0,uid:o.uid,tileID:o.tileID,tileZoom:o.tileZoom,zoom:o.tileID.overscaledZ,tileSize:this.tileSize*o.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:s.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:o.isSymbolTile};if(_.request.collectResourceTiming=this._collectResourceTiming,o.actor&&o.state!=="expired")o.state==="loading"?o.reloadCallback=c:o.request=o.actor.send("reloadTile",_,v.bind(this));else if(o.actor=this._tileWorkers[f]=this._tileWorkers[f]||this.dispatcher.getActor(),this.dispatcher.ready)o.request=o.actor.send("loadTile",_,v.bind(this),void 0,!0);else{const E=s.loadVectorTile.call({deduped:this._deduped},_,(S,C)=>{S||!C?v.call(this,S):(_.data={cacheControl:C.cacheControl,expires:C.expires,rawData:C.rawData.slice(0)},o.actor&&o.actor.send("loadTile",_,v.bind(this),void 0,!0))},!0);o.request={cancel:E}}function v(E,S){return delete o.request,o.aborted?c(null):E&&E.status!==404?c(E):(S&&S.resourceTiming&&(o.resourceTiming=S.resourceTiming),this.map._refreshExpiredTiles&&S&&o.setExpiryData(S),o.loadVectorData(S,this.map.painter),s.cacheEntryPossiblyAdded(this.dispatcher),c(null),void(o.reloadCallback&&(this.loadTile(o,o.reloadCallback),o.reloadCallback=null)))}}abortTile(o){o.request&&(o.request.cancel(),delete o.request),o.actor&&o.actor.send("abortTile",{uid:o.uid,type:this.type,source:this.id})}unloadTile(o){o.unloadVectorData(),o.actor&&o.actor.send("removeTile",{uid:o.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}class Ye extends s.Evented{constructor(o,c,f,_){super(),this.id=o,this.dispatcher=f,this.setEventedParent(_),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=s.extend({type:"raster"},c),s.extend(this,s.pick(c,["url","scheme","tileSize"]))}load(o){this._loaded=!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=ti(this._options,this.map._requestManager,null,null,(c,f)=>{this._tileJSONRequest=null,this._loaded=!0,c?this.fire(new s.ErrorEvent(c)):f&&(s.extend(this,f),f.bounds&&(this.tileBounds=new pi(f.bounds,this.minzoom,this.maxzoom)),s.postTurnstileEvent(f.tiles),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))),o&&o(c)})}loaded(){return this._loaded}onAdd(o){this.map=o,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>this.map.style._clearSource(this.id))}setTiles(o){return this._options.tiles=o,this.reload(),this}setUrl(o){return this.url=o,this._options.url=o,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return s.extend({},this._options)}hasTile(o){return!this.tileBounds||this.tileBounds.contains(o.canonical)}loadTile(o,c){const f=s.exported.devicePixelRatio>=2,_=this.map._requestManager.normalizeTileURL(o.tileID.canonical.url(this.tiles,this.scheme),f,this.tileSize);o.request=s.getImage(this.map._requestManager.transformRequest(_,s.ResourceType.Tile),(v,E,S,C)=>(delete o.request,o.aborted?(o.state="unloaded",c(null)):v?(o.state="errored",c(v)):E?(this.map._refreshExpiredTiles&&o.setExpiryData({cacheControl:S,expires:C}),o.setTexture(E,this.map.painter),o.state="loaded",s.cacheEntryPossiblyAdded(this.dispatcher),void c(null)):c(null)))}static loadTileData(o,c,f){o.setTexture(c,f)}static unloadTileData(o,c){o.texture&&c.saveTileTexture(o.texture)}abortTile(o,c){o.request&&(o.request.cancel(),delete o.request),c()}unloadTile(o,c){o.texture&&this.map.painter.saveTileTexture(o.texture),c()}hasTransition(){return!1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}function kt(d,o,c,f,_,v,E,S){const C=[d,c,_,o,f,v,1,1,1],z=[E,S,1],P=s.adjoint([],C),[D,j,$]=s.transformMat3(z,z,s.transpose(P,P));return s.multiply$1(C,[D,0,0,0,j,0,0,0,$],C)}class Rt extends s.Evented{constructor(o,c,f,_){super(),this.id=o,this.dispatcher=f,this.coordinates=c.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(_),this.options=c,this._dirty=!1}load(o,c){this._loaded=c||!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this.url=this.options.url,this._imageRequest=s.getImage(this.map._requestManager.transformRequest(this.url,s.ResourceType.Image),(f,_)=>{if(this._imageRequest=null,this._loaded=!0,f)this.fire(new s.ErrorEvent(f));else if(_){const{HTMLImageElement:v}=s.window;this.image=_ instanceof v?s.exported.getImageData(_):_,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,o&&(this.coordinates=o),this._finishLoading()}})}loaded(){return this._loaded}updateImage(o){return this.image&&o.url?(this._imageRequest&&o.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=o.url,this.load(o.coordinates,this._loaded),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(o){this.map=o,this.load()}onRemove(){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),this.texture&&this.texture.destroy()}setCoordinates(o){this.coordinates=o,this._boundsArray=void 0;const c=o.map(s.MercatorCoordinate.fromLngLat);return this.tileID=function(f){let _=1/0,v=1/0,E=-1/0,S=-1/0;for(const D of f)_=Math.min(_,D.x),v=Math.min(v,D.y),E=Math.max(E,D.x),S=Math.max(S,D.y);const C=Math.max(E-_,S-v),z=Math.max(0,Math.floor(-Math.log(C)/Math.LN2)),P=Math.pow(2,z);return new s.CanonicalTileID(z,Math.floor((_+E)/2*P),Math.floor((v+S)/2*P))}(c),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){this._boundsArray=void 0}_prepareData(o){for(const C in this.tiles){const z=this.tiles[C];z.state!=="loaded"&&(z.state="loaded",z.texture=this.texture)}if(this._boundsArray)return;const c=s.tileTransform(this.tileID,this.map.transform.projection),[f,_,v,E]=this.coordinates.map(C=>{const z=c.projection.project(C[0],C[1]);return s.getTilePoint(c,z)._round()});this.perspectiveTransform=function(C,z,P,D,j,$,W,Z,H,O){const G=kt(0,0,C,0,0,z,C,z),J=kt(P,D,j,$,W,Z,H,O);return s.multiply$1(J,s.adjoint(G,G),J),[J[6]/J[8]*C/s.EXTENT,J[7]/J[8]*z/s.EXTENT]}(this.width,this.height,f.x,f.y,_.x,_.y,E.x,E.y,v.x,v.y);const S=this._boundsArray=new s.StructArrayLayout4i8;S.emplaceBack(f.x,f.y,0,0),S.emplaceBack(_.x,_.y,s.EXTENT,0),S.emplaceBack(E.x,E.y,0,s.EXTENT),S.emplaceBack(v.x,v.y,s.EXTENT,s.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=o.createVertexBuffer(S,s.boundsAttributes.members),this.boundsSegments=s.SegmentVector.simpleSegment(0,0,4,2)}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const o=this.map.painter.context,c=o.gl;this._dirty&&(this.texture?this.texture.update(this.image):(this.texture=new s.Texture(o,this.image,c.RGBA),this.texture.bind(c.LINEAR,c.CLAMP_TO_EDGE)),this._dirty=!1),this._prepareData(o)}loadTile(o,c){this.tileID&&this.tileID.equals(o.tileID.canonical)?(this.tiles[String(o.tileID.wrap)]=o,o.buckets={},c(null)):(o.state="errored",c(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const Pt={vector:nt,raster:Ye,"raster-dem":class extends Ye{constructor(d,o,c,f){super(d,o,c,f),this.type="raster-dem",this.maxzoom=22,this._options=s.extend({type:"raster-dem"},o),this.encoding=o.encoding||"mapbox"}loadTile(d,o){const c=this.map._requestManager.normalizeTileURL(d.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function f(_,v){_&&(d.state="errored",o(_)),v&&(d.dem=v,d.dem.onDeserialize(),d.needsHillshadePrepare=!0,d.needsDEMTextureUpload=!0,d.state="loaded",o(null))}d.request=s.getImage(this.map._requestManager.transformRequest(c,s.ResourceType.Tile),(function(_,v,E,S){if(delete d.request,d.aborted)d.state="unloaded",o(null);else if(_)d.state="errored",o(_);else if(v){this.map._refreshExpiredTiles&&d.setExpiryData({cacheControl:E,expires:S});const C=s.window.ImageBitmap&&v instanceof s.window.ImageBitmap&&(Vs==null&&(Vs=s.window.OffscreenCanvas&&new s.window.OffscreenCanvas(1,1).getContext("2d")&&typeof s.window.createImageBitmap=="function"),Vs),z=1-(v.width-s.prevPowerOfTwo(v.width))/2;z<1||d.neighboringTiles||(d.neighboringTiles=this._getNeighboringTiles(d.tileID));const P=C?v:s.exported.getImageData(v,z),D={uid:d.uid,coord:d.tileID,source:this.id,rawImageData:P,encoding:this.encoding,padding:z};d.actor&&d.state!=="expired"||(d.actor=this.dispatcher.getActor(),d.actor.send("loadDEMTile",D,f.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(d){const o=d.canonical,c=Math.pow(2,o.z),f=(o.x-1+c)%c,_=o.x===0?d.wrap-1:d.wrap,v=(o.x+1+c)%c,E=o.x+1===c?d.wrap+1:d.wrap,S={};return S[new s.OverscaledTileID(d.overscaledZ,_,o.z,f,o.y).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,E,o.z,v,o.y).key]={backfilled:!1},o.y>0&&(S[new s.OverscaledTileID(d.overscaledZ,_,o.z,f,o.y-1).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,d.wrap,o.z,o.x,o.y-1).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,E,o.z,v,o.y-1).key]={backfilled:!1}),o.y+1{if(this._loaded=!0,this._pendingLoad=null,c)this.fire(new s.ErrorEvent(c));else{const _={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&f&&f.resourceTiming&&f.resourceTiming[this.id]&&(_.resourceTiming=f.resourceTiming[this.id]),this.fire(new s.Event("data",_)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(d,o){const c=d.actor?"reloadTile":"loadTile";d.actor=this.actor,d.request=this.actor.send(c,{type:this.type,uid:d.uid,tileID:d.tileID,tileZoom:d.tileZoom,zoom:d.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:s.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(f,_)=>(delete d.request,d.unloadVectorData(),d.aborted?o(null):f?o(f):(d.loadVectorData(_,this.map.painter,c==="reloadTile"),o(null))),void 0,c==="loadTile")}abortTile(d){d.request&&(d.request.cancel(),delete d.request),d.aborted=!0}unloadTile(d){d.unloadVectorData(),this.actor.send("removeTile",{uid:d.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return s.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends Rt{constructor(d,o,c,f){super(d,o,c,f),this.roundZoom=!0,this.type="video",this.options=o}load(){this._loaded=!1;const d=this.options;this.urls=[];for(const o of d.urls)this.urls.push(this.map._requestManager.transformRequest(o,s.ResourceType.Source).url);s.getVideo(this.urls,(o,c)=>{this._loaded=!0,o?this.fire(new s.ErrorEvent(o)):c&&(this.video=c,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(d){if(this.video){const o=this.video.seekable;do.end(0)?this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${o.start(0)} and ${o.end(0)}-second mark.`))):this.video.currentTime=d}}getVideo(){return this.video}onAdd(d){this.map||(this.map=d,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const d=this.map.painter.context,o=d.gl;this.texture?this.video.paused||(this.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE),o.texSubImage2D(o.TEXTURE_2D,0,0,0,o.RGBA,o.UNSIGNED_BYTE,this.video)):(this.texture=new s.Texture(d,this.video,o.RGBA),this.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(d)}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:Rt,canvas:class extends Rt{constructor(d,o,c,f){super(d,o,c,f),o.coordinates?Array.isArray(o.coordinates)&&o.coordinates.length===4&&!o.coordinates.some(_=>!Array.isArray(_)||_.length!==2||_.some(v=>typeof v!="number"))||this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'missing required property "coordinates"'))),o.animate&&typeof o.animate!="boolean"&&this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'optional "animate" property must be a boolean value'))),o.canvas?typeof o.canvas=="string"||o.canvas instanceof s.window.HTMLCanvasElement||this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,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 s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'missing required property "canvas"'))),this.options=o,this.animate=o.animate===void 0||o.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof s.window.HTMLCanvasElement?this.options.canvas:s.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new s.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(d){this.map=d,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let d=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,d=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,d=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const o=this.map.painter.context;this.texture?(d||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new s.Texture(o,this.canvas,o.gl.RGBA,{premultiply:!0}),this._prepareData(o)}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const d of[this.canvas.width,this.canvas.height])if(isNaN(d)||d<=0)return!0;return!1}},custom:class extends s.Evented{constructor(d,o,c,f){super(),this.id=d,this.type="custom",this._dataType="raster",this._dispatcher=c,this._implementation=o,this.setEventedParent(f),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new s.ErrorEvent(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new s.ErrorEvent(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new pi(this._implementation.bounds,this.minzoom,this.maxzoom)),o.update=this._update.bind(this),o.clearTiles=this._clearTiles.bind(this),o.coveringTiles=this._coveringTiles.bind(this),s.extend(this,s.pick(o,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]))}serialize(){return s.pick(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))}loaded(){return this._loaded}onAdd(d){this._map=d,this._loaded=!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(d),this.load()}onRemove(d){this._implementation.onRemove&&this._implementation.onRemove(d)}hasTile(d){if(this._implementation.hasTile){const{x:o,y:c,z:f}=d.canonical;return this._implementation.hasTile({x:o,y:c,z:f})}return!this.tileBounds||this.tileBounds.contains(d.canonical)}loadTile(d,o){const{x:c,y:f,z:_}=d.tileID.canonical,v=new s.window.AbortController;d.request=Promise.resolve(this._implementation.loadTile({x:c,y:f,z:_},{signal:v.signal})).then((function(E){return delete d.request,d.aborted?(d.state="unloaded",o(null)):E===void 0?(d.state="errored",o(null)):E===null?(this.loadTileData(d,{width:this.tileSize,height:this.tileSize,data:null}),d.state="loaded",o(null)):function(S){return S instanceof s.window.ImageData||S instanceof s.window.HTMLCanvasElement||S instanceof s.window.ImageBitmap||S instanceof s.window.HTMLImageElement}(E)?(this.loadTileData(d,E),d.state="loaded",void o(null)):(d.state="errored",o(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}).bind(this)).catch(E=>{E.code!==20&&(d.state="errored",o(E))}),d.request.cancel=()=>v.abort()}loadTileData(d,o){Ye.loadTileData(d,o,this._map.painter)}unloadTileData(d){Ye.unloadTileData(d,this._map.painter)}unloadTile(d,o){if(this.unloadTileData(d),this._implementation.unloadTile){const{x:c,y:f,z:_}=d.tileID.canonical;this._implementation.unloadTile({x:c,y:f,z:_})}o()}abortTile(d,o){d.request&&d.request.cancel&&(d.request.cancel(),delete d.request),o()}hasTransition(){return!1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map(d=>({x:d.canonical.x,y:d.canonical.y,z:d.canonical.z}))}_clearTiles(){this._map.style._clearSource(this.id)}_update(){this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))}}},Dt=function(d,o,c,f){const _=new Pt[o.type](d,o,c,f);if(_.id!==d)throw new Error(`Expected Source id to be ${d} instead of ${_.id}`);return s.bindAll(["load","abort","unload","serialize","prepare"],_),_};function $t(d,o){const c=s.identity([]);return s.scale(c,c,[.5*d.width,.5*-d.height,1]),s.translate(c,c,[1,-1,0]),s.multiply(c,c,d.calculateProjMatrix(o.toUnwrapped())),Float32Array.from(c)}function An(d,o,c,f,_,v,E,S=!1){const C=d.tilesIn(f,E,S);C.sort(vi);const z=[];for(const D of C)z.push({wrappedTileID:D.tile.tileID.wrapped().key,queryResults:D.tile.queryRenderedFeatures(o,c,d._state,D,_,v,$t(d.transform,D.tile.tileID),S)});const P=function(D){const j={},$={};for(const W of D){const Z=W.queryResults,H=W.wrappedTileID,O=$[H]=$[H]||{};for(const G in Z){const J=Z[G],Q=O[G]=O[G]||{},he=j[G]=j[G]||[];for(const pe of J)Q[pe.featureIndex]||(Q[pe.featureIndex]=!0,he.push(pe))}}return j}(z);for(const D in P)P[D].forEach(j=>{const $=j.feature,W=$.layer;W&&W.type!=="background"&&W.type!=="sky"&&($.source=W.source,W["source-layer"]&&($.sourceLayer=W["source-layer"]),$.state=$.id!==void 0?d.getFeatureState(W["source-layer"],$.id):{})});return P}function Fn(d,o){const c=d.getRenderableIds().map(v=>d.getTileByID(v)),f=[],_={};for(let v=0;v{c.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[Fr]}numActive(){return Object.keys(this.active).length}}let Ci;function $s(){return Ci||(Ci=new ii),Ci}function Bg(d,o){const c={};for(const f in d)f!=="ref"&&(c[f]=d[f]);return s.refProperties.forEach(f=>{f in o&&(c[f]=o[f])}),c}function _p(d){d=d.slice();const o=Object.create(null);for(let c=0;c0?(_-E)/S:0;return this.points[v].mult(1-C).add(this.points[c].mult(C))}}class cs{constructor(o,c,f){const _=this.boxCells=[],v=this.circleCells=[];this.xCellCount=Math.ceil(o/f),this.yCellCount=Math.ceil(c/f);for(let E=0;Ethis.width||_<0||c>this.height)return!v&&[];const S=[];if(o<=0&&c<=0&&this.width<=f&&this.height<=_){if(v)return!0;for(let C=0;C0:S}_queryCircle(o,c,f,_,v){const E=o-f,S=o+f,C=c-f,z=c+f;if(S<0||E>this.width||z<0||C>this.height)return!_&&[];const P=[];return this._forEachCell(E,C,S,z,this._queryCellCircle,P,{hitTest:_,circle:{x:o,y:c,radius:f},seenUids:{box:{},circle:{}}},v),_?P.length>0:P}query(o,c,f,_,v){return this._query(o,c,f,_,!1,v)}hitTest(o,c,f,_,v){return this._query(o,c,f,_,!0,v)}hitTestCircle(o,c,f,_){return this._queryCircle(o,c,f,!0,_)}_queryCell(o,c,f,_,v,E,S,C){const z=S.seenUids,P=this.boxCells[v];if(P!==null){const j=this.bboxes;for(const $ of P)if(!z.box[$]){z.box[$]=!0;const W=4*$;if(o<=j[W+2]&&c<=j[W+3]&&f>=j[W+0]&&_>=j[W+1]&&(!C||C(this.boxKeys[$]))){if(S.hitTest)return E.push(!0),!0;E.push({key:this.boxKeys[$],x1:j[W],y1:j[W+1],x2:j[W+2],y2:j[W+3]})}}}const D=this.circleCells[v];if(D!==null){const j=this.circles;for(const $ of D)if(!z.circle[$]){z.circle[$]=!0;const W=3*$;if(this._circleAndRectCollide(j[W],j[W+1],j[W+2],o,c,f,_)&&(!C||C(this.circleKeys[$]))){if(S.hitTest)return E.push(!0),!0;{const Z=j[W],H=j[W+1],O=j[W+2];E.push({key:this.circleKeys[$],x1:Z-O,y1:H-O,x2:Z+O,y2:H+O})}}}}}_queryCellCircle(o,c,f,_,v,E,S,C){const z=S.circle,P=S.seenUids,D=this.boxCells[v];if(D!==null){const $=this.bboxes;for(const W of D)if(!P.box[W]){P.box[W]=!0;const Z=4*W;if(this._circleAndRectCollide(z.x,z.y,z.radius,$[Z+0],$[Z+1],$[Z+2],$[Z+3])&&(!C||C(this.boxKeys[W])))return E.push(!0),!0}}const j=this.circleCells[v];if(j!==null){const $=this.circles;for(const W of j)if(!P.circle[W]){P.circle[W]=!0;const Z=3*W;if(this._circlesCollide($[Z],$[Z+1],$[Z+2],z.x,z.y,z.radius)&&(!C||C(this.circleKeys[W])))return E.push(!0),!0}}}_forEachCell(o,c,f,_,v,E,S,C){const z=this._convertToXCellCoord(o),P=this._convertToYCellCoord(c),D=this._convertToXCellCoord(f),j=this._convertToYCellCoord(_);for(let $=z;$<=D;$++)for(let W=P;W<=j;W++)if(v.call(this,o,c,f,_,this.xCellCount*W+$,E,S,C))return}_convertToXCellCoord(o){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(o*this.xScale)))}_convertToYCellCoord(o){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(o*this.yScale)))}_circlesCollide(o,c,f,_,v,E){const S=_-o,C=v-c,z=f+E;return z*z>S*S+C*C}_circleAndRectCollide(o,c,f,_,v,E,S){const C=(E-_)/2,z=Math.abs(o-(_+C));if(z>C+f)return!1;const P=(S-v)/2,D=Math.abs(c-(v+P));if(D>P+f)return!1;if(z<=C||D<=P)return!0;const j=z-C,$=D-P;return j*j+$*$<=f*f}}const io={unknown:0,flipRequired:1,flipNotRequired:2},Ka=Math.tan(85*Math.PI/180);function Le(d,o,c,f,_,v,E){const S=s.create();if(c)if(v.name==="globe"){const C=s.calculateGlobeLabelMatrix(_,o);s.multiply(S,S,C)}else{const C=Ve([],E);S[0]=C[0],S[1]=C[1],S[4]=C[2],S[5]=C[3],f||s.rotateZ(S,S,_.angle)}else s.multiply(S,_.labelPlaneMatrix,d);return S}function ro(d,o,c,f,_,v,E){const S=Le(d,o,c,f,_,v,E);return v.name==="globe"&&c||(S[2]=S[6]=S[10]=S[14]=0),S}function Nn(d,o,c,f,_,v,E){if(c){if(v.name==="globe"){const S=Le(d,o,c,f,_,v,E);return s.invert(S,S),s.multiply(S,d,S),S}{const S=s.clone(d),C=s.identity([]);return C[0]=E[0],C[1]=E[1],C[4]=E[2],C[5]=E[3],s.multiply(S,S,C),f||s.rotateZ(S,S,-_.angle),S}}return _.glCoordMatrix}function ri(d,o,c,f){const _=[d,o,c,1];c?s.transformMat4$1(_,_,f):Nt(_,_,f);const v=_[3];return _[0]/=v,_[1]/=v,_[2]/=v,_}function yp(d,o){return Math.min(.5+d/o*.5,1.5)}function Ur(d,o){const c=d[0]/d[3],f=d[1]/d[3];return c>=-o[0]&&c<=o[0]&&f>=-o[1]&&f<=o[1]}function qu(d,o,c,f,_,v,E,S,C,z){const P=c.transform,D=f?d.textSizeData:d.iconSizeData,j=s.evaluateSizeForZoom(D,c.transform.zoom),$=P.projection.name==="globe",W=[256/c.width*2+1,256/c.height*2+1],Z=f?d.text.dynamicLayoutVertexArray:d.icon.dynamicLayoutVertexArray;Z.clear();let H=null;$&&(H=f?d.text.globeExtVertexArray:d.icon.globeExtVertexArray);const O=d.lineVertexArray,G=f?d.text.placedSymbolArray:d.icon.placedSymbolArray,J=c.transform.width/c.transform.height;let Q,he=!1;for(let pe=0;peMath.abs(c)?{useVertical:!0}:d===s.WritingMode.vertical?f>0?{needsFlipping:!0}:null:o!==io.unknown&&function(_,v){return _===0||Math.abs(v/_)>Ka}(c,f)?o===io.flipRequired?{needsFlipping:!0}:null:c<0?{needsFlipping:!0}:null}function at(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O,G){const J=o/24,Q=d.lineOffsetX*J,he=d.lineOffsetY*J,{lineStartIndex:pe,glyphStartIndex:de,numGlyphs:ye,segment:_e,writingMode:Te,flipState:Ze}=d,we=pe+d.lineLength,Be=Ce=>{if(P){const[He,Ge,Xe]=Ce.up,gt=z.length;s.updateGlobeVertexNormal(P,gt+0,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+1,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+2,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+3,He,Ge,Xe)}const[qe,Ee,Oe]=Ce.point;s.addDynamicAttributes(z,qe,Ee,Oe,Ce.angle)};if(ye>1){const Ce=vp(J,S,Q,he,c,D,j,d,C,v,$,Z,!1,H,O,G);if(!Ce)return{notEnoughRoom:!0};if(f&&!c){let[qe,Ee,Oe]=Ce.first.point,[He,Ge,Xe]=Ce.last.point;[qe,Ee]=ri(qe,Ee,Oe,E),[He,Ge]=ri(He,Ge,Xe,E);const gt=qs(Te,Ze,(He-qe)*W,Ge-Ee);if(d.flipState=gt&>.needsFlipping?io.flipRequired:io.flipNotRequired,gt)return gt}Be(Ce.first);for(let qe=de+1;qe0?He:Ft(j,Oe,qe,1,_,void 0,H,O.canonical),Xe=qs(Te,Ze,(Ge[0]-qe[0])*W,Ge[1]-qe[1]);if(d.flipState=Xe&&Xe.needsFlipping?io.flipRequired:io.flipNotRequired,Xe)return Xe}const Ce=Xi(J*S.getoffsetX(de),Q,he,c,D,j,_e,pe,we,C,v,$,Z,!1,!1,H,O,G);if(!Ce)return{notEnoughRoom:!0};Be(Ce)}return{}}function Gt(d,o,c,f,_){const{x:v,y:E,z:S}=f.projectTilePoint(d.x,d.y,o);if(!_)return ri(v,E,S,c);const[C,z,P]=_(d);return ri(v+C,E+z,S+P,c)}function Ft(d,o,c,f,_,v,E,S){const C=Gt(d.sub(o)._unit()._add(d),S,_,E,v);return s.sub(C,c,C),s.normalize(C,C),s.scaleAndAdd(C,c,C,f)}function Xi(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O){const G=f?d-o:d+o;let J=G>0?1:-1,Q=0;f&&(J*=-1,Q=Math.PI),J<0&&(Q+=Math.PI);let he=S+E+(J>0?0:1)|0,pe=_,de=_,ye=0,_e=0;const Te=Math.abs(G),Ze=[],we=[];let Be=v,Ce=Be;const qe=()=>Ft(Ce,Be,de,Te-ye+1,P,j,Z,H.canonical);for(;ye+_e<=Te;){if(he+=J,he=C)return null;if(de=pe,Ce=Be,Ze.push(de),$&&we.push(Ce),Be=new s.Point(z.getx(he),z.gety(he)),pe=D[he],!pe){const wt=Gt(Be,H.canonical,P,Z,j);pe=wt[3]>0?D[he]=wt:qe()}ye+=_e,_e=s.distance(de,pe)}W&&j&&(D[he]&&(pe=qe(),_e=s.distance(de,pe)),D[he]=pe);const Ee=(Te-ye)/_e,Oe=Be.sub(Ce)._mult(Ee)._add(Ce),He=s.sub([],pe,de),Ge=s.scaleAndAdd([],de,He,Ee);let Xe=[0,0,1],gt=He[0],Et=He[1];if(O&&(Xe=Z.upVector(H.canonical,Oe.x,Oe.y),Xe[0]!==0||Xe[1]!==0||Xe[2]!==1)){const wt=[Xe[2],0,-Xe[0]],Ut=s.cross([],Xe,wt);s.normalize(wt,wt),s.normalize(Ut,Ut),gt=s.dot(He,wt),Et=s.dot(He,Ut)}if(c){const wt=s.cross([],Xe,He);s.normalize(wt,wt),s.scaleAndAdd(Ge,Ge,wt,c*J)}const dt=Q+Math.atan2(Et,gt);return Ze.push(Ge),$&&we.push(Oe),{point:Ge,angle:dt,path:Ze,tilePath:we,up:Xe}}function br(d,o){const c=o.length,f=c+4*d;o.resize(f),o.float32.fill(-1/0,4*c,4*f)}function Nt(d,o,c){const f=o[0],_=o[1];return d[0]=c[0]*f+c[4]*_+c[12],d[1]=c[1]*f+c[5]*_+c[13],d[3]=c[3]*f+c[7]*_+c[15],d}const Ki=100;class Ya{constructor(o,c,f=new cs(o.width+200,o.height+200,25),_=new cs(o.width+200,o.height+200,25)){this.transform=o,this.grid=f,this.ignoredGrid=_,this.pitchfactor=Math.cos(o._pitch)*o.cameraToCenterDistance,this.screenRightBoundary=o.width+Ki,this.screenBottomBoundary=o.height+Ki,this.gridRightBoundary=o.width+200,this.gridBottomBoundary=o.height+200,this.fogState=c}placeCollisionBox(o,c,f,_,v,E,S,C){let z=f.projectedAnchorX,P=f.projectedAnchorY,D=f.projectedAnchorZ;const j=f.elevation,$=f.tileID,W=o.getProjection();if(j&&$){const[pe,de,ye]=W.upVector($.canonical,f.tileAnchorX,f.tileAnchorY),_e=W.upVectorScale($.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;z+=pe*j*_e,P+=de*j*_e,D+=ye*j*_e}const Z=this.projectAndGetPerspectiveRatio(S,z,P,D,f.tileID,W.name==="globe"||!!j||this.transform.pitch>0,W),H=E*Z.perspectiveRatio,O=(f.x1*c+_.x-f.padding)*H+Z.point.x,G=(f.y1*c+_.y-f.padding)*H+Z.point.y,J=(f.x2*c+_.x+f.padding)*H+Z.point.x,Q=(f.y2*c+_.y+f.padding)*H+Z.point.y,he=Z.perspectiveRatio<=.55||Z.occluded;return!this.isInsideGrid(O,G,J,Q)||!v&&this.grid.hitTest(O,G,J,Q,C)||he?{box:[],offscreen:!1,occluded:Z.occluded}:{box:[O,G,J,Q],offscreen:this.isOffscreen(O,G,J,Q),occluded:!1}}placeCollisionCircles(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z){const H=[],O=this.transform.elevation,G=o.getProjection(),J=O?O.getAtTileOffsetFunc(Z,this.transform.center.lat,this.transform.worldSize,G):null,Q=new s.Point(f.tileAnchorX,f.tileAnchorY);let{x:he,y:pe,z:de}=G.projectTilePoint(Q.x,Q.y,Z.canonical);if(J){const[Oe,He,Ge]=J(Q);he+=Oe,pe+=He,de+=Ge}const ye=G.name==="globe",_e=this.projectAndGetPerspectiveRatio(S,he,pe,de,Z,ye||!!O||this.transform.pitch>0,G),{perspectiveRatio:Te}=_e,Ze=(D?E/Te:E*Te)/s.ONE_EM,we=ri(he,pe,de,C),Be=_e.signedDistanceFromCamera>0?vp(Ze,v,f.lineOffsetX*Ze,f.lineOffsetY*Ze,!1,we,Q,f,_,C,{},O&&!D?J:null,D&&!!O,G,Z,D):null;let Ce=!1,qe=!1,Ee=!0;if(Be&&!_e.occluded){const Oe=.5*$*Te+W,He=new s.Point(-100,-100),Ge=new s.Point(this.screenRightBoundary,this.screenBottomBoundary),Xe=new $u,{first:gt,last:Et}=Be,dt=gt.path.length;let wt=[];for(let mt=dt-1;mt>=1;mt--)wt.push(gt.path[mt]);for(let mt=1;mt(J&&!ye&&(rn=J(onmt[3]<=0)&&(wt=[]));let Ot=[];if(wt.length>0){let mt=1/0,en=-1/0,rn=1/0,on=-1/0;for(const sn of wt)mt=Math.min(mt,sn[0]),rn=Math.min(rn,sn[1]),en=Math.max(en,sn[0]),on=Math.max(on,sn[1]);en>=He.x&&mt<=Ge.x&&on>=He.y&&rn<=Ge.y&&(Ot=[wt.map(sn=>new s.Point(sn[0],sn[1]))],(mtGe.x||rnGe.y)&&(Ot=s.clipLine(Ot,He.x,He.y,Ge.x,Ge.y)))}for(const mt of Ot){Xe.reset(mt,.25*Oe);let en=0;en=Xe.length<=.5*Oe?1:Math.ceil(Xe.paddedLength/Ut)+1;for(let rn=0;rn0?(s.transformMat4$1(C,C,o),this.fogState&&v&&S.name!=="globe"&&(z=function(j,$,W,Z,H,O){const G=O.calculateFogTileMatrix(H),J=[$,W,Z];return s.transformMat4(J,J,G),wr(j,J,O.pitch,O._fov)}(this.fogState,c,f,_,v.toUnwrapped(),this.transform)>.9)):Nt(C,C,o);const P=C[3];return{point:new s.Point((C[0]/P+1)/2*this.transform.width+Ki,(-C[1]/P+1)/2*this.transform.height+Ki),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(S)/P*.5,1.5),signedDistanceFromCamera:P,occluded:E&&C[2]>P||z}}isOffscreen(o,c,f,_){return f=this.screenRightBoundary||_this.screenBottomBoundary}isInsideGrid(o,c,f,_){return f>=0&&o=0&&cf.collisionGroupID===c}}return this.collisionGroups[o]}}function el(d,o,c,f,_){const{horizontalAlign:v,verticalAlign:E}=s.getAnchorAlignment(d),S=-(v-.5)*o,C=-(E-.5)*c,z=s.evaluateVariableOffset(d,f);return new s.Point(S+z[0]*_,C+z[1]*_)}function tl(d,o,c,f,_){const v=new s.Point(d,o);return c&&v._rotate(f?_:-_),v}class sc{constructor(o,c,f,_,v){this.transform=o.clone(),this.projection=o.projection.name,this.collisionIndex=new Ya(this.transform,v),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=c,this.retainedQueryData={},this.collisionGroups=new wp(f),this.collisionCircleArrays={},this.prevPlacement=_,_&&(_.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(o,c,f,_){const v=f.getBucket(c),E=f.latestFeatureIndex;if(!v||!E||c.id!==v.layerIds[0])return;const S=v.layers[0].layout,C=f.collisionBoxArray,z=Math.pow(2,this.transform.zoom-f.tileID.overscaledZ),P=f.tileSize/s.EXTENT,D=f.tileID.toUnwrapped();this.transform.setProjection(v.projection);const j=($=f.tileID,W=v.getProjection(),Z=this.transform,W.name===this.projection?Z.calculateProjMatrix($.toUnwrapped()):us(Z,W,$));var $,W,Z;const H=S.get("text-pitch-alignment")==="map",O=S.get("text-rotation-alignment")==="map";c.compileFilter();const G=c.dynamicFilter(),J=c.dynamicFilterNeedsFeature(),Q=this.transform.calculatePixelsToTileUnitsMatrix(f),he=ro(j,f.tileID.canonical,H,O,this.transform,v.getProjection(),Q);let pe=null;if(H){const _e=Nn(j,f.tileID.canonical,H,O,this.transform,v.getProjection(),Q);pe=s.multiply([],this.transform.labelPlaneMatrix,_e)}let de=null;G&&f.latestFeatureIndex&&(de={unwrappedTileID:D,dynamicFilter:G,dynamicFilterNeedsFeature:J,featureIndex:f.latestFeatureIndex}),this.retainedQueryData[v.bucketInstanceId]=new Zu(v.bucketInstanceId,E,v.sourceLayerIndex,v.index,f.tileID);const ye={bucket:v,layout:S,posMatrix:j,textLabelPlaneMatrix:he,labelToScreenMatrix:pe,clippingData:de,scale:z,textPixelRatio:P,holdingForFade:f.holdingForFade(),collisionBoxArray:C,partiallyEvaluatedTextSize:s.evaluateSizeForZoom(v.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:s.evaluateSizeForZoom(v.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(v.sourceID)};if(_)for(const _e of v.sortKeyRanges){const{sortKey:Te,symbolInstanceStart:Ze,symbolInstanceEnd:we}=_e;o.push({sortKey:Te,symbolInstanceStart:Ze,symbolInstanceEnd:we,parameters:ye})}else o.push({symbolInstanceStart:0,symbolInstanceEnd:v.symbolInstances.length,parameters:ye})}attemptAnchorPlacement(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O,G){const{textOffset0:J,textOffset1:Q,crossTileID:he}=j,pe=[J,Q],de=el(o,f,_,pe,v),ye=this.collisionIndex.placeCollisionBox(W,v,c,tl(de.x,de.y,E,S,this.transform.angle),D,C,z,P.predicate);if(H){const _e=W.getSymbolInstanceIconSize(G,this.transform.zoom,j.placedIconSymbolIndex);if(this.collisionIndex.placeCollisionBox(W,_e,H,tl(de.x,de.y,E,S,this.transform.angle),D,C,z,P.predicate).box.length===0)return}if(ye.box.length>0){let _e;return this.prevPlacement&&this.prevPlacement.variableOffsets[he]&&this.prevPlacement.placements[he]&&this.prevPlacement.placements[he].text&&(_e=this.prevPlacement.variableOffsets[he].anchor),this.variableOffsets[he]={textOffset:pe,width:f,height:_,anchor:o,textScale:v,prevAnchor:_e},this.markUsedJustification(W,o,j,Z),W.allowVerticalPlacement&&(this.markUsedOrientation(W,Z,j),this.placedOrientations[he]=Z),{shift:de,placedGlyphBoxes:ye}}}placeLayerBucketPart(o,c,f,_){const{bucket:v,layout:E,posMatrix:S,textLabelPlaneMatrix:C,labelToScreenMatrix:z,clippingData:P,textPixelRatio:D,holdingForFade:j,collisionBoxArray:$,partiallyEvaluatedTextSize:W,partiallyEvaluatedIconSize:Z,collisionGroup:H}=o.parameters,O=E.get("text-optional"),G=E.get("icon-optional"),J=E.get("text-allow-overlap"),Q=E.get("icon-allow-overlap"),he=E.get("text-rotation-alignment")==="map",pe=E.get("text-pitch-alignment")==="map",de=E.get("icon-text-fit")!=="none",ye=E.get("symbol-z-order")==="viewport-y";this.transform.setProjection(v.projection);let _e=J&&(Q||!v.hasIconData()||G),Te=Q&&(J||!v.hasTextData()||O);!v.collisionArrays&&$&&v.deserializeCollisionBoxes($),f&&_&&v.updateCollisionDebugBuffers(this.transform.zoom,$);const Ze=(we,Be,Ce)=>{const{crossTileID:qe,numVerticalGlyphVertices:Ee}=we;if(P){const Tn={zoom:this.transform.zoom,pitch:this.transform.pitch};let an=null;if(P.dynamicFilterNeedsFeature){const Xt=this.retainedQueryData[v.bucketInstanceId];an=P.featureIndex.loadFeature({featureIndex:we.featureIndex,bucketIndex:Xt.bucketIndex,sourceLayerIndex:Xt.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,P.dynamicFilter)(Tn,an,this.retainedQueryData[v.bucketInstanceId].tileID.canonical,new s.Point(we.tileAnchorX,we.tileAnchorY),this.transform.calculateDistanceTileData(P.unwrappedTileID)))return this.placements[qe]=new Ja(!1,!1,!1,!0),void c.add(qe)}if(c.has(qe))return;if(j)return void(this.placements[qe]=new Ja(!1,!1,!1));let Oe=!1,He=!1,Ge=!0,Xe=!1,gt=!1,Et=null,dt={box:null,offscreen:null,occluded:null},wt={box:null,offscreen:null,occluded:null},Ut=null,Ot=null,mt=null,en=0,rn=0,on=0;Ce.textFeatureIndex?en=Ce.textFeatureIndex:we.useRuntimeCollisionCircles&&(en=we.featureIndex),Ce.verticalTextFeatureIndex&&(rn=Ce.verticalTextFeatureIndex);const sn=Tn=>{Tn.tileID=this.retainedQueryData[v.bucketInstanceId].tileID;const an=this.transform.elevation;(an||Tn.elevation)&&(Tn.elevation=an?an.getAtTileOffset(Tn.tileID,Tn.tileAnchorX,Tn.tileAnchorY):0)},wi=Ce.textBox;if(wi){sn(wi);const Tn=Xt=>{let Un=s.WritingMode.horizontal;if(v.allowVerticalPlacement&&!Xt&&this.prevPlacement){const Ii=this.prevPlacement.placedOrientations[qe];Ii&&(this.placedOrientations[qe]=Ii,Un=Ii,this.markUsedOrientation(v,Un,we))}return Un},an=(Xt,Un)=>{if(v.allowVerticalPlacement&&Ee>0&&Ce.verticalTextBox){for(const Ii of v.writingModes)if(Ii===s.WritingMode.vertical?(dt=Un(),wt=dt):dt=Xt(),dt&&dt.box&&dt.box.length)break}else dt=Xt()};if(E.get("text-variable-anchor")){let Xt=E.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[qe]){const wn=this.prevPlacement.variableOffsets[qe];Xt.indexOf(wn.anchor)>0&&(Xt=Xt.filter(Oi=>Oi!==wn.anchor),Xt.unshift(wn.anchor))}const Un=(wn,Oi,Lc)=>{const ys=v.getSymbolInstanceTextSize(W,we,this.transform.zoom,Be),wl=(wn.x2-wn.x1)*ys+2*wn.padding,po=(wn.y2-wn.y1)*ys+2*wn.padding,jo=de&&!Q?Oi:null;jo&&sn(jo);let vs={box:[],offscreen:!1,occluded:!1};const Rc=J?2*Xt.length:Xt.length;for(let bl=0;bl=Xt.length,we,Be,v,Lc,jo,W,Z);if(Oh&&(vs=Oh.placedGlyphBoxes,vs&&vs.box&&vs.box.length)){Oe=!0,Et=Oh.shift;break}}return vs};an(()=>Un(wi,Ce.iconBox,s.WritingMode.horizontal),()=>{const wn=Ce.verticalTextBox;return wn&&sn(wn),v.allowVerticalPlacement&&!(dt&&dt.box&&dt.box.length)&&Ee>0&&wn?Un(wn,Ce.verticalIconBox,s.WritingMode.vertical):{box:null,offscreen:null,occluded:null}}),dt&&(Oe=dt.box,Ge=dt.offscreen,Xe=dt.occluded);const Ii=Tn(!(!dt||!dt.box));if(!Oe&&this.prevPlacement){const wn=this.prevPlacement.variableOffsets[qe];wn&&(this.variableOffsets[qe]=wn,this.markUsedJustification(v,wn.anchor,we,Ii))}}else{const Xt=(Un,Ii)=>{const wn=v.getSymbolInstanceTextSize(W,we,this.transform.zoom,Be),Oi=this.collisionIndex.placeCollisionBox(v,wn,Un,new s.Point(0,0),J,D,S,H.predicate);return Oi&&Oi.box&&Oi.box.length&&(this.markUsedOrientation(v,Ii,we),this.placedOrientations[qe]=Ii),Oi};an(()=>Xt(wi,s.WritingMode.horizontal),()=>{const Un=Ce.verticalTextBox;return v.allowVerticalPlacement&&Ee>0&&Un?(sn(Un),Xt(Un,s.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}}),Tn(!!(dt&&dt.box&&dt.box.length))}}if(Ut=dt,Oe=Ut&&Ut.box&&Ut.box.length>0,Ge=Ut&&Ut.offscreen,Xe=Ut&&Ut.occluded,we.useRuntimeCollisionCircles){const Tn=v.text.placedSymbolArray.get(we.centerJustifiedTextSymbolIndex>=0?we.centerJustifiedTextSymbolIndex:we.verticalPlacedTextSymbolIndex),an=s.evaluateSizeForFeature(v.textSizeData,W,Tn),Xt=E.get("text-padding");Ot=this.collisionIndex.placeCollisionCircles(v,J,Tn,v.lineVertexArray,v.glyphOffsetArray,an,S,C,z,f,pe,H.predicate,we.collisionCircleDiameter*an/s.ONE_EM,Xt,this.retainedQueryData[v.bucketInstanceId].tileID),Oe=J||Ot.circles.length>0&&!Ot.collisionDetected,Ge=Ge&&Ot.offscreen,Xe=Ot.occluded}if(Ce.iconFeatureIndex&&(on=Ce.iconFeatureIndex),Ce.iconBox){const Tn=an=>{sn(an);const Xt=de&&Et?tl(Et.x,Et.y,he,pe,this.transform.angle):new s.Point(0,0),Un=v.getSymbolInstanceIconSize(Z,this.transform.zoom,we.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(v,Un,an,Xt,Q,D,S,H.predicate)};wt&&wt.box&&wt.box.length&&Ce.verticalIconBox?(mt=Tn(Ce.verticalIconBox),He=mt.box.length>0):(mt=Tn(Ce.iconBox),He=mt.box.length>0),Ge=Ge&&mt.offscreen,gt=mt.occluded}const si=O||we.numHorizontalGlyphVertices===0&&Ee===0,lr=G||we.numIconVertices===0;if(si||lr?lr?si||(He=He&&Oe):Oe=He&&Oe:He=Oe=He&&Oe,Oe&&Ut&&Ut.box&&this.collisionIndex.insertCollisionBox(Ut.box,E.get("text-ignore-placement"),v.bucketInstanceId,wt&&wt.box&&rn?rn:en,H.ID),He&&mt&&this.collisionIndex.insertCollisionBox(mt.box,E.get("icon-ignore-placement"),v.bucketInstanceId,on,H.ID),Ot&&(Oe&&this.collisionIndex.insertCollisionCircles(Ot.circles,E.get("text-ignore-placement"),v.bucketInstanceId,en,H.ID),f)){const Tn=v.bucketInstanceId;let an=this.collisionCircleArrays[Tn];an===void 0&&(an=this.collisionCircleArrays[Tn]=new Qa);for(let Xt=0;Xt=0;--Be){const Ce=we[Be];Ze(v.symbolInstances.get(Ce),Ce,v.collisionArrays[Ce])}}else for(let we=o.symbolInstanceStart;we=0&&(o.text.placedSymbolArray.get(v).crossTileID=D>=0&&v!==D?0:z),E>=0&&(o.text.placedSymbolArray.get(E).crossTileID=D>=0&&E!==D?0:z),S>=0&&(o.text.placedSymbolArray.get(S).crossTileID=D>=0&&S!==D?0:z),C>=0&&(o.text.placedSymbolArray.get(C).crossTileID=D>=0&&C!==D?0:z)}markUsedOrientation(o,c,f){const _=c===s.WritingMode.horizontal||c===s.WritingMode.horizontalOnly?c:0,v=c===s.WritingMode.vertical?c:0,{leftJustifiedTextSymbolIndex:E,centerJustifiedTextSymbolIndex:S,rightJustifiedTextSymbolIndex:C,verticalPlacedTextSymbolIndex:z}=f,P=o.text.placedSymbolArray;E>=0&&(P.get(E).placedOrientation=_),S>=0&&(P.get(S).placedOrientation=_),C>=0&&(P.get(C).placedOrientation=_),z>=0&&(P.get(z).placedOrientation=v)}commit(o){this.commitTime=o,this.zoomAtLastRecencyCheck=this.transform.zoom;const c=this.prevPlacement;let f=!1;this.prevZoomAdjustment=c?c.zoomAdjustment(this.transform.zoom):0;const _=c?c.symbolFadeChange(o):1,v=c?c.opacities:{},E=c?c.variableOffsets:{},S=c?c.placedOrientations:{};for(const C in this.placements){const z=this.placements[C],P=v[C];P?(this.opacities[C]=new oo(P,_,z.text,z.icon,null,z.clipped),f=f||z.text!==P.text.placed||z.icon!==P.icon.placed):(this.opacities[C]=new oo(null,_,z.text,z.icon,z.skipFade,z.clipped),f=f||z.text||z.icon)}for(const C in v){const z=v[C];if(!this.opacities[C]){const P=new oo(z,_,!1,!1);P.isHidden()||(this.opacities[C]=P,f=f||z.text.placed||z.icon.placed)}}for(const C in E)this.variableOffsets[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.variableOffsets[C]=E[C]);for(const C in S)this.placedOrientations[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.placedOrientations[C]=S[C]);f?this.lastPlacementChangeTime=o:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=c?c.lastPlacementChangeTime:o)}updateLayerOpacities(o,c){const f=new Set;for(const _ of c){const v=_.getBucket(o);v&&_.latestFeatureIndex&&o.id===v.layerIds[0]&&this.updateBucketOpacities(v,f,_.collisionBoxArray)}}updateBucketOpacities(o,c,f){o.hasTextData()&&o.text.opacityVertexArray.clear(),o.hasIconData()&&o.icon.opacityVertexArray.clear(),o.hasIconCollisionBoxData()&&o.iconCollisionBox.collisionVertexArray.clear(),o.hasTextCollisionBoxData()&&o.textCollisionBox.collisionVertexArray.clear();const _=o.layers[0].layout,v=!!o.layers[0].dynamicFilter(),E=new oo(null,0,!1,!1,!0),S=_.get("text-allow-overlap"),C=_.get("icon-allow-overlap"),z=_.get("text-variable-anchor"),P=_.get("text-rotation-alignment")==="map",D=_.get("text-pitch-alignment")==="map",j=_.get("icon-text-fit")!=="none",$=new oo(null,0,S&&(C||!o.hasIconData()||_.get("icon-optional")),C&&(S||!o.hasTextData()||_.get("text-optional")),!0);!o.collisionArrays&&f&&(o.hasIconCollisionBoxData()||o.hasTextCollisionBoxData())&&o.deserializeCollisionBoxes(f);const W=(H,O,G)=>{for(let J=0;J0||J>0,_e=he>0,Te=this.placedOrientations[Q],Ze=Te===s.WritingMode.vertical,we=Te===s.WritingMode.horizontal||Te===s.WritingMode.horizontalOnly;if(!ye&&!_e||de.isHidden()||Z++,ye){const Be=nl(de.text);W(o.text,G,Ze?Pn:Be),W(o.text,J,we?Pn:Be);const Ce=de.text.isHidden(),{leftJustifiedTextSymbolIndex:qe,centerJustifiedTextSymbolIndex:Ee,rightJustifiedTextSymbolIndex:Oe,verticalPlacedTextSymbolIndex:He}=O,Ge=o.text.placedSymbolArray,Xe=Ce||Ze?1:0;qe>=0&&(Ge.get(qe).hidden=Xe),Ee>=0&&(Ge.get(Ee).hidden=Xe),Oe>=0&&(Ge.get(Oe).hidden=Xe),He>=0&&(Ge.get(He).hidden=Ce||we?1:0);const gt=this.variableOffsets[Q];gt&&this.markUsedJustification(o,gt.anchor,O,Te);const Et=this.placedOrientations[Q];Et&&(this.markUsedJustification(o,"left",O,Et),this.markUsedOrientation(o,Et,O))}if(_e){const Be=nl(de.icon),{placedIconSymbolIndex:Ce,verticalPlacedIconSymbolIndex:qe}=O,Ee=o.icon.placedSymbolArray,Oe=de.icon.isHidden()?1:0;Ce>=0&&(W(o.icon,he,Ze?Pn:Be),Ee.get(Ce).hidden=Oe),qe>=0&&(W(o.icon,O.numVerticalIconVertices,we?Pn:Be),Ee.get(qe).hidden=Oe)}if(o.hasIconCollisionBoxData()||o.hasTextCollisionBoxData()){const Be=o.collisionArrays[H];if(Be){let Ce=new s.Point(0,0),qe=!0;if(Be.textBox||Be.verticalTextBox){if(z){const Oe=this.variableOffsets[Q];Oe?(Ce=el(Oe.anchor,Oe.width,Oe.height,Oe.textOffset,Oe.textScale),P&&Ce._rotate(D?this.transform.angle:-this.transform.angle)):qe=!1}v&&(qe=!de.clipped),Be.textBox&&Zs(o.textCollisionBox.collisionVertexArray,de.text.placed,!qe||Ze,Ce.x,Ce.y),Be.verticalTextBox&&Zs(o.textCollisionBox.collisionVertexArray,de.text.placed,!qe||we,Ce.x,Ce.y)}const Ee=qe&&!!(!we&&Be.verticalIconBox);Be.iconBox&&Zs(o.iconCollisionBox.collisionVertexArray,de.icon.placed,Ee,j?Ce.x:0,j?Ce.y:0),Be.verticalIconBox&&Zs(o.iconCollisionBox.collisionVertexArray,de.icon.placed,!Ee,j?Ce.x:0,j?Ce.y:0)}}}if(o.fullyClipped=Z===0,o.sortFeatures(this.transform.angle),this.retainedQueryData[o.bucketInstanceId]&&(this.retainedQueryData[o.bucketInstanceId].featureSortOrder=o.featureSortOrder),o.hasTextData()&&o.text.opacityVertexBuffer&&o.text.opacityVertexBuffer.updateData(o.text.opacityVertexArray),o.hasIconData()&&o.icon.opacityVertexBuffer&&o.icon.opacityVertexBuffer.updateData(o.icon.opacityVertexArray),o.hasIconCollisionBoxData()&&o.iconCollisionBox.collisionVertexBuffer&&o.iconCollisionBox.collisionVertexBuffer.updateData(o.iconCollisionBox.collisionVertexArray),o.hasTextCollisionBoxData()&&o.textCollisionBox.collisionVertexBuffer&&o.textCollisionBox.collisionVertexBuffer.updateData(o.textCollisionBox.collisionVertexArray),o.bucketInstanceId in this.collisionCircleArrays){const H=this.collisionCircleArrays[o.bucketInstanceId];o.placementInvProjMatrix=H.invProjMatrix,o.placementViewportMatrix=H.viewportMatrix,o.collisionCircleArray=H.circles,delete this.collisionCircleArrays[o.bucketInstanceId]}}symbolFadeChange(o){return this.fadeDuration===0?1:(o-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(o){return Math.max(0,(this.transform.zoom-o)/1.5)}hasTransitions(o){return this.stale||o-this.lastPlacementChangeTimeo}setStale(){this.stale=!0}}function Zs(d,o,c,f,_){d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0)}const Ri=Math.pow(2,25),Dn=Math.pow(2,24),Wu=Math.pow(2,17),Hu=Math.pow(2,16),Di=Math.pow(2,9),or=Math.pow(2,8),bp=Math.pow(2,1);function nl(d){if(d.opacity===0&&!d.placed)return 0;if(d.opacity===1&&d.placed)return 4294967295;const o=d.placed?1:0,c=Math.floor(127*d.opacity);return c*Ri+o*Dn+c*Wu+o*Hu+c*Di+o*or+c*bp+o}const Pn=0;class il{constructor(o){this._sortAcrossTiles=o.layout.get("symbol-z-order")!=="viewport-y"&&o.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs=new Set,this._bucketParts=[]}continuePlacement(o,c,f,_,v){const E=this._bucketParts;for(;this._currentTileIndexS.sortKey-C.sortKey));this._currentPartIndex{const E=s.exported.now()-_;return!this._forceFullPlacement&&E>2};for(;this._currentPlacementIndex>=0;){const E=c[o[this._currentPlacementIndex]],S=this.placement.collisionIndex.transform.zoom;if(E.type==="symbol"&&(!E.minzoom||E.minzoom<=S)&&(!E.maxzoom||E.maxzoom>S)){if(this._inProgressLayer||(this._inProgressLayer=new il(E)),this._inProgressLayer.continuePlacement(f[E.source],this.placement,this._showCollisionBoxes,E,v))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(o){return this.placement.commit(o),this.placement}}const hs=512/s.EXTENT/2;class fi{constructor(o,c,f){this.tileID=o,this.bucketInstanceId=f,this.index=new s.KDBush(c.length,16,Int32Array),this.keys=[],this.crossTileIDs=[];const _=o.canonical.x*s.EXTENT,v=o.canonical.y*s.EXTENT;for(let E=0;Eo.overscaledZ)for(const S in E){const C=E[S];C.tileID.isChildOf(o)&&C.findMatches(c.symbolInstances,o,_)}else{const S=E[o.scaledTo(Number(v)).key];S&&S.findMatches(c.symbolInstances,o,_)}}for(let v=0;v{c[f]=!0});for(const f in this.layerIndexes)c[f]||delete this.layerIndexes[f]}}const No=(d,o)=>s.emitValidationErrors(d,o&&o.filter(c=>c.identifier!=="source.canvas")),ac=s.pick(Jt,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),Fg=s.pick(Jt,["setCenter","setZoom","setBearing","setPitch"]),Ju={version:8,layers:[],sources:{}},Ws={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class jr extends s.Evented{constructor(o,c={}){super(),this.map=o,this.dispatcher=new xt($s(),this),this.imageManager=new di,this.imageManager.setEventedParent(this),this.glyphManager=new s.GlyphManager(o._requestManager,c.localFontFamily?s.LocalGlyphMode.all:c.localIdeographFontFamily?s.LocalGlyphMode.ideographs:s.LocalGlyphMode.none,c.localFontFamily||c.localIdeographFontFamily),this.crossTileSymbolIndex=new so,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",s.getReferrer());const f=this;this._rtlTextPluginCallback=jr.registerForPluginStateChange(_=>{f.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:_.pluginStatus,pluginURL:_.pluginURL},(v,E)=>{if(s.triggerPluginCompletionEvent(v),E&&E.every(S=>S))for(const S in f._sourceCaches){const C=f._sourceCaches[S],z=C.getSource().type;z!=="vector"&&z!=="geojson"||C.reload()}})}),this.on("data",_=>{if(_.dataType!=="source"||_.sourceDataType!=="metadata")return;const v=this.getSource(_.sourceId);if(v&&v.vectorLayerIds)for(const E in this._layers){const S=this._layers[E];S.source===v.id&&this._validateLayer(S)}})}loadURL(o,c={}){this.fire(new s.Event("dataloading",{dataType:"style"}));const f=typeof c.validate=="boolean"?c.validate:!s.isMapboxURL(o);o=this.map._requestManager.normalizeStyleURL(o,c.accessToken);const _=this.map._requestManager.transformRequest(o,s.ResourceType.Style);this._request=s.getJSON(_,(v,E)=>{this._request=null,v?this.fire(new s.ErrorEvent(v)):E&&this._load(E,f)})}loadJSON(o,c={}){this.fire(new s.Event("dataloading",{dataType:"style"})),this._request=s.exported.frame(()=>{this._request=null,this._load(o,c.validate!==!1)})}loadEmpty(){this.fire(new s.Event("dataloading",{dataType:"style"})),this._load(Ju,!1)}_updateLayerCount(o,c){const f=c?1:-1;o.is3D()&&(this._num3DLayers+=f),o.type==="circle"&&(this._numCircleLayers+=f),o.type==="symbol"&&(this._numSymbolLayers+=f)}_load(o,c){if(c&&No(this,s.validateStyle(o)))return;this._loaded=!0,this.stylesheet=s.clone$1(o),this._updateMapProjection();for(const _ in o.sources)this.addSource(_,o.sources[_],{validate:!1});this._changed=!1,o.sprite?this._loadSprite(o.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(o.glyphs);const f=_p(this.stylesheet.layers);this._order=f.map(_=>_.id),this._layers={},this._serializedLayers={};for(const _ of f){const v=s.createStyleLayer(_);v.setEventedParent(this,{layer:{id:v.id}}),this._layers[v.id]=v,this._serializedLayers[v.id]=v.serialize(),this._updateLayerCount(v,!0)}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new Vt(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new s.Event("data",{dataType:"style"})),this.fire(new s.Event("style.load"))}terrainSetForDrapingOnly(){return!!this.terrain&&this.terrain.drapeRenderMode===0}setProjection(o){o?this.stylesheet.projection=o:delete this.stylesheet.projection,this._updateMapProjection()}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null))}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection)}_loadSprite(o){this._spriteRequest=function(c,f,_){let v,E,S;const C=s.exported.devicePixelRatio>1?"@2x":"";let z=s.getJSON(f.transformRequest(f.normalizeSpriteURL(c,C,".json"),s.ResourceType.SpriteJSON),(j,$)=>{z=null,S||(S=j,v=$,D())}),P=s.getImage(f.transformRequest(f.normalizeSpriteURL(c,C,".png"),s.ResourceType.SpriteImage),(j,$)=>{P=null,S||(S=j,E=$,D())});function D(){if(S)_(S);else if(v&&E){const j=s.exported.getImageData(E),$={};for(const W in v){const{width:Z,height:H,x:O,y:G,sdf:J,pixelRatio:Q,stretchX:he,stretchY:pe,content:de}=v[W],ye=new s.RGBAImage({width:Z,height:H});s.RGBAImage.copy(j,ye,{x:O,y:G},{x:0,y:0},{width:Z,height:H}),$[W]={data:ye,pixelRatio:Q,sdf:J,stretchX:he,stretchY:pe,content:de}}_(null,$)}}return{cancel(){z&&(z.cancel(),z=null),P&&(P.cancel(),P=null)}}}(o,this.map._requestManager,(c,f)=>{if(this._spriteRequest=null,c)this.fire(new s.ErrorEvent(c));else if(f)for(const _ in f)this.imageManager.addImage(_,f[_]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new s.Event("data",{dataType:"style"}))})}_validateLayer(o){const c=this.getSource(o.source);if(!c)return;const f=o.sourceLayer;f&&(c.type==="geojson"||c.vectorLayerIds&&c.vectorLayerIds.indexOf(f)===-1)&&this.fire(new s.ErrorEvent(new Error(`Source layer "${f}" does not exist on source "${c.id}" as specified by style layer "${o.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const o in this._sourceCaches)if(!this._sourceCaches[o].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(o){const c=[];for(const f of o){const _=this._layers[f];_.type!=="custom"&&c.push(_.serialize())}return c}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const o in this._sourceCaches)if(this._sourceCaches[o].hasTransition())return!0;for(const o in this._layers)if(this._layers[o].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(o){return!!this.terrain&&(typeof o.isLayerDraped=="function"?o.isLayerDraped():Ws[o.type])}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading")}update(o){if(!this._loaded)return;const c=this._changed;if(this._changed){const _=Object.keys(this._updatedLayers),v=Object.keys(this._removedLayers);(_.length||v.length)&&this._updateWorkerLayers(_,v);for(const E in this._updatedSources){const S=this._updatedSources[E];S==="reload"?this._reloadSource(E):S==="clear"&&this._clearSource(E)}this._updateTilesForChangedImages();for(const E in this._updatedPaintProps)this._layers[E].updateTransitions(o);this.light.updateTransitions(o),this.fog&&this.fog.updateTransitions(o),this._resetUpdates()}const f={};for(const _ in this._sourceCaches){const v=this._sourceCaches[_];f[_]=v.used,v.used=!1}for(const _ of this._order){const v=this._layers[_];if(v.recalculate(o,this._availableImages),!v.isHidden(o.zoom)){const S=this._getLayerSourceCache(v);S&&(S.used=!0)}const E=this.map.painter;if(E){const S=v.getProgramIds();if(!S)continue;const C=v.getProgramConfiguration(o.zoom);for(const z of S)E.useProgram(z,C)}}for(const _ in f){const v=this._sourceCaches[_];f[_]!==v.used&&v.getSource().fire(new s.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:v.getSource().id}))}this.light.recalculate(o),this.terrain&&this.terrain.recalculate(o),this.fog&&this.fog.recalculate(o),this.z=o.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),c&&this.fire(new s.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const o=Object.keys(this._changedImages);if(o.length){for(const c in this._sourceCaches)this._sourceCaches[c].reloadTilesForDependencies(["icons","patterns"],o);this._changedImages={}}}_updateWorkerLayers(o,c){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(o),removedIds:c})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(o){if(this._checkLoaded(),No(this,s.validateStyle(o)))return!1;(o=s.clone$1(o)).layers=_p(o.layers);const c=function(_,v){if(!_)return[{command:Jt.setStyle,args:[v]}];let E=[];try{if(!M(_.version,v.version))return[{command:Jt.setStyle,args:[v]}];M(_.center,v.center)||E.push({command:Jt.setCenter,args:[v.center]}),M(_.zoom,v.zoom)||E.push({command:Jt.setZoom,args:[v.zoom]}),M(_.bearing,v.bearing)||E.push({command:Jt.setBearing,args:[v.bearing]}),M(_.pitch,v.pitch)||E.push({command:Jt.setPitch,args:[v.pitch]}),M(_.sprite,v.sprite)||E.push({command:Jt.setSprite,args:[v.sprite]}),M(_.glyphs,v.glyphs)||E.push({command:Jt.setGlyphs,args:[v.glyphs]}),M(_.transition,v.transition)||E.push({command:Jt.setTransition,args:[v.transition]}),M(_.light,v.light)||E.push({command:Jt.setLight,args:[v.light]}),M(_.fog,v.fog)||E.push({command:Jt.setFog,args:[v.fog]}),M(_.projection,v.projection)||E.push({command:Jt.setProjection,args:[v.projection]});const S={},C=[];(function(D,j,$,W){let Z;for(Z in j=j||{},D=D||{})D.hasOwnProperty(Z)&&(j.hasOwnProperty(Z)||Xa(Z,$,W));for(Z in j){if(!j.hasOwnProperty(Z))continue;const H=j[Z];D.hasOwnProperty(Z)?M(D[Z],H)||(D[Z].type==="geojson"&&H.type==="geojson"&&oc(D,j,Z)?$.push({command:Jt.setGeoJSONSourceData,args:[Z,H.data]}):Vu(Z,j,$,W)):ju(Z,j,$)}})(_.sources,v.sources,C,S);const z=[];_.layers&&_.layers.forEach(D=>{D.source&&S[D.source]?E.push({command:Jt.removeLayer,args:[D.id]}):z.push(D)});let P=_.terrain;P&&S[P.source]&&(E.push({command:Jt.setTerrain,args:[void 0]}),P=void 0),E=E.concat(C),M(P,v.terrain)||E.push({command:Jt.setTerrain,args:[v.terrain]}),function(D,j,$){j=j||[];const W=(D=D||[]).map(no),Z=j.map(no),H=D.reduce(Gu,{}),O=j.reduce(Gu,{}),G=W.slice(),J=Object.create(null);let Q,he,pe,de,ye,_e,Te;for(Q=0,he=0;Q!(_.command in Fg));if(c.length===0)return!1;const f=c.filter(_=>!(_.command in ac));if(f.length>0)throw new Error(`Unimplemented: ${f.map(_=>_.command).join(", ")}.`);return c.forEach(_=>{_.command!=="setTransition"&&_.command!=="setProjection"&&this[_.command].apply(this,_.args)}),this.stylesheet=o,this._updateMapProjection(),!0}addImage(o,c){return this.getImage(o)?this.fire(new s.ErrorEvent(new Error("An image with this name already exists."))):(this.imageManager.addImage(o,c),this._afterImageUpdated(o),this)}updateImage(o,c){this.imageManager.updateImage(o,c)}getImage(o){return this.imageManager.getImage(o)}removeImage(o){return this.getImage(o)?(this.imageManager.removeImage(o),this._afterImageUpdated(o),this):this.fire(new s.ErrorEvent(new Error("No image with this name exists.")))}_afterImageUpdated(o){this._availableImages=this.imageManager.listImages(),this._changedImages[o]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new s.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(o,c,f={}){if(this._checkLoaded(),this.getSource(o)!==void 0)throw new Error("There is already a source with this ID");if(!c.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(c).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(c.type)>=0&&this._validate(s.validateSource,`sources.${o}`,c,null,f))return;this.map&&this.map._collectResourceTiming&&(c.collectResourceTiming=!0);const _=Dt(o,c,this.dispatcher,this);_.setEventedParent(this,()=>({isSourceLoaded:this._isSourceCacheLoaded(o),source:_.serialize(),sourceId:o}));const v=E=>{const S=(E?"symbol:":"other:")+o,C=this._sourceCaches[S]=new s.SourceCache(S,_,E);(E?this._symbolSourceCaches:this._otherSourceCaches)[o]=C,C.style=this,C.onAdd(this.map)};v(!1),c.type!=="vector"&&c.type!=="geojson"||v(!0),_.onAdd&&_.onAdd(this.map),this._changed=!0}removeSource(o){this._checkLoaded();const c=this.getSource(o);if(!c)throw new Error("There is no source with this ID");for(const _ in this._layers)if(this._layers[_].source===o)return this.fire(new s.ErrorEvent(new Error(`Source "${o}" cannot be removed while layer "${_}" is using it.`)));if(this.terrain&&this.terrain.get().source===o)return this.fire(new s.ErrorEvent(new Error(`Source "${o}" cannot be removed while terrain is using it.`)));const f=this._getSourceCaches(o);for(const _ of f)delete this._sourceCaches[_.id],delete this._updatedSources[_.id],_.fire(new s.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:_.getSource().id})),_.setEventedParent(null),_.clearTiles();return delete this._otherSourceCaches[o],delete this._symbolSourceCaches[o],c.setEventedParent(null),c.onRemove&&c.onRemove(this.map),this._changed=!0,this}setGeoJSONSourceData(o,c){this._checkLoaded(),this.getSource(o).setData(c),this._changed=!0}getSource(o){const c=this._getSourceCache(o);return c&&c.getSource()}_getSources(){const o=[];for(const c in this._otherSourceCaches){const f=this._getSourceCache(c);f&&o.push(f.getSource())}return o}addLayer(o,c,f={}){this._checkLoaded();const _=o.id;if(this.getLayer(_))return void this.fire(new s.ErrorEvent(new Error(`Layer with id "${_}" already exists on this map`)));let v;if(o.type==="custom"){if(No(this,s.validateCustomStyleLayer(o)))return;v=s.createStyleLayer(o)}else{if(typeof o.source=="object"&&(this.addSource(_,o.source),o=s.clone$1(o),o=s.extend(o,{source:_})),this._validate(s.validateLayer,`layers.${_}`,o,{arrayIndex:-1},f))return;v=s.createStyleLayer(o),this._validateLayer(v),v.setEventedParent(this,{layer:{id:_}}),this._serializedLayers[v.id]=v.serialize(),this._updateLayerCount(v,!0)}const E=c?this._order.indexOf(c):this._order.length;if(c&&E===-1)return void this.fire(new s.ErrorEvent(new Error(`Layer with id "${c}" does not exist on this map.`)));this._order.splice(E,0,_),this._layerOrderChanged=!0,this._layers[_]=v;const S=this._getLayerSourceCache(v);if(this._removedLayers[_]&&v.source&&S&&v.type!=="custom"){const C=this._removedLayers[_];delete this._removedLayers[_],C.type!==v.type?this._updatedSources[v.source]="clear":(this._updatedSources[v.source]="reload",S.pause())}this._updateLayer(v),v.onAdd&&v.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(o,c){if(this._checkLoaded(),this._changed=!0,!this._layers[o])return void this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be moved.`)));if(o===c)return;const f=this._order.indexOf(o);this._order.splice(f,1);const _=c?this._order.indexOf(c):this._order.length;c&&_===-1?this.fire(new s.ErrorEvent(new Error(`Layer with id "${c}" does not exist on this map.`))):(this._order.splice(_,0,o),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(o){this._checkLoaded();const c=this._layers[o];if(!c)return void this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be removed.`)));c.setEventedParent(null),this._updateLayerCount(c,!1);const f=this._order.indexOf(o);this._order.splice(f,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[o]=c,delete this._layers[o],delete this._serializedLayers[o],delete this._updatedLayers[o],delete this._updatedPaintProps[o],c.onRemove&&c.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(o){return this._layers[o]}hasLayer(o){return o in this._layers}hasLayerType(o){for(const c in this._layers)if(this._layers[c].type===o)return!0;return!1}setLayerZoomRange(o,c,f){this._checkLoaded();const _=this.getLayer(o);_?_.minzoom===c&&_.maxzoom===f||(c!=null&&(_.minzoom=c),f!=null&&(_.maxzoom=f),this._updateLayer(_)):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(o,c,f={}){this._checkLoaded();const _=this.getLayer(o);if(_){if(!M(_.filter,c))return c==null?(_.filter=void 0,void this._updateLayer(_)):void(this._validate(s.validateFilter,`layers.${_.id}.filter`,c,{layerType:_.type},f)||(_.filter=s.clone$1(c),this._updateLayer(_)))}else this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be filtered.`)))}getFilter(o){const c=this.getLayer(o);return c&&s.clone$1(c.filter)}setLayoutProperty(o,c,f,_={}){this._checkLoaded();const v=this.getLayer(o);v?M(v.getLayoutProperty(c),f)||(v.setLayoutProperty(c,f,_),this._updateLayer(v)):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(o,c){const f=this.getLayer(o);if(f)return f.getLayoutProperty(c);this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style.`)))}setPaintProperty(o,c,f,_={}){this._checkLoaded();const v=this.getLayer(o);v?M(v.getPaintProperty(c),f)||(v.setPaintProperty(c,f,_)&&this._updateLayer(v),this._changed=!0,this._updatedPaintProps[o]=!0):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(o,c){const f=this.getLayer(o);return f&&f.getPaintProperty(c)}setFeatureState(o,c){this._checkLoaded();const f=o.source,_=o.sourceLayer,v=this.getSource(f);if(!v)return void this.fire(new s.ErrorEvent(new Error(`The source '${f}' does not exist in the map's style.`)));const E=v.type;if(E==="geojson"&&_)return void this.fire(new s.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));if(E==="vector"&&!_)return void this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));o.id===void 0&&this.fire(new s.ErrorEvent(new Error("The feature id parameter must be provided.")));const S=this._getSourceCaches(f);for(const C of S)C.setFeatureState(_,o.id,c)}removeFeatureState(o,c){this._checkLoaded();const f=o.source,_=this.getSource(f);if(!_)return void this.fire(new s.ErrorEvent(new Error(`The source '${f}' does not exist in the map's style.`)));const v=_.type,E=v==="vector"?o.sourceLayer:void 0;if(v==="vector"&&!E)return void this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));if(c&&typeof o.id!="string"&&typeof o.id!="number")return void this.fire(new s.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));const S=this._getSourceCaches(f);for(const C of S)C.removeFeatureState(E,o.id,c)}getFeatureState(o){this._checkLoaded();const c=o.source,f=o.sourceLayer,_=this.getSource(c);if(_){if(_.type!=="vector"||f)return o.id===void 0&&this.fire(new s.ErrorEvent(new Error("The feature id parameter must be provided."))),this._getSourceCaches(c)[0].getFeatureState(f,o.id);this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new s.ErrorEvent(new Error(`The source '${c}' does not exist in the map's style.`)))}getTransition(){return s.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const o={};for(const c in this._sourceCaches){const f=this._sourceCaches[c].getSource();o[f.id]||(o[f.id]=f.serialize())}return s.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.getTerrain()||void 0,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:o,layers:this._serializeLayers(this._order)},c=>c!==void 0)}_updateLayer(o){this._updatedLayers[o.id]=!0;const c=this._getLayerSourceCache(o);o.source&&!this._updatedSources[o.source]&&c&&c.getSource().type!=="raster"&&(this._updatedSources[o.source]="reload",c.pause()),this._changed=!0,o.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(o){const c=E=>this._layers[E].type==="fill-extrusion",f={},_=[];for(let E=this._order.length-1;E>=0;E--){const S=this._order[E];if(c(S)){f[S]=E;for(const C of o){const z=C[S];if(z)for(const P of z)_.push(P)}}}_.sort((E,S)=>S.intersectionZ-E.intersectionZ);const v=[];for(let E=this._order.length-1;E>=0;E--){const S=this._order[E];if(c(S))for(let C=_.length-1;C>=0;C--){const z=_[C].feature;if(f[z.layer.id]{const z=this.getLayer(C);return z&&z.is3D()}):this.has3DLayers(),S=dn.createFromScreenPoints(o,f);for(const C in this._sourceCaches){const z=this._sourceCaches[C].getSource().id;c.layers&&!_[z]||v.push(An(this._sourceCaches[C],this._layers,this._serializedLayers,S,c,f,E,!!this.map._showQueryGeometry))}return this.placement&&v.push(function(C,z,P,D,j,$,W){const Z={},H=$.queryRenderedSymbols(D),O=[];for(const G of Object.keys(H).map(Number))O.push(W[G]);O.sort(vi);for(const G of O){const J=G.featureIndex.lookupSymbolFeatures(H[G.bucketInstanceId],z,G.bucketIndex,G.sourceLayerIndex,j.filter,j.layers,j.availableImages,C);for(const Q in J){const he=Z[Q]=Z[Q]||[],pe=J[Q];pe.sort((de,ye)=>{const _e=G.featureSortOrder;if(_e){const Te=_e.indexOf(de.featureIndex);return _e.indexOf(ye.featureIndex)-Te}return ye.featureIndex-de.featureIndex});for(const de of pe)he.push(de)}}for(const G in Z)Z[G].forEach(J=>{const Q=J.feature,he=P(C[G]);if(!he)return;const pe=he.getFeatureState(Q.layer["source-layer"],Q.id);Q.source=Q.layer.source,Q.layer["source-layer"]&&(Q.sourceLayer=Q.layer["source-layer"]),Q.state=pe});return Z}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),S.screenGeometry,c,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(v)}querySourceFeatures(o,c){c&&c.filter&&this._validate(s.validateFilter,"querySourceFeatures.filter",c.filter,null,c);const f=this._getSourceCaches(o);let _=[];for(const v of f)_=_.concat(Fn(v,c));return _}addSourceType(o,c,f){return jr.getSourceType(o)?f(new Error(`A source type called "${o}" already exists.`)):(jr.setSourceType(o,c),c.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:o,url:c.workerSourceURL},f):f(null,null))}getLight(){return this.light.getLight()}setLight(o,c={}){this._checkLoaded();const f=this.light.getLight();let _=!1;for(const E in o)if(!M(o[E],f[E])){_=!0;break}if(!_)return;const v=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(o,c),this.light.updateTransitions(v)}getTerrain(){return this.terrain&&this.terrain.drapeRenderMode===1?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0)}setTerrain(o,c=1){if(this._checkLoaded(),!o)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast("enableTerrain",!1),this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);let f=o;if(c===1){if(typeof f.source=="object"){const _="terrain-dem-src";this.addSource(_,f.source),f=s.clone$1(f),f=s.extend(f,{source:_})}if(this._validate(s.validateTerrain,"terrain",f))return}if(!this.terrain||this.terrain&&c!==this.terrain.drapeRenderMode){if(!f)return;this._createTerrain(f,c)}else{const _=this.terrain,v=_.get();for(const E of Object.keys(s.spec.terrain))!f.hasOwnProperty(E)&&s.spec.terrain[E].default&&(f[E]=s.spec.terrain[E].default);for(const E in f)if(!M(f[E],v[E])){_.set(f),this.stylesheet.terrain=f;const S=this._setTransitionParameters({duration:0});_.updateTransitions(S);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0}_createFog(o){const c=this.fog=new Tt(o,this.map.transform);this.stylesheet.fog=o;const f=this._setTransitionParameters({duration:0});c.updateTransitions(f)}_updateMarkersOpacity(){this.map._markers.length!==0&&this.map._requestDomTask(()=>{for(const o of this.map._markers)o._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(o){if(this._checkLoaded(),!o)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const c=this.fog,f=c.get();Object.keys(o).length===0&&c.set(o);for(const _ in o)if(!M(o[_],f[_])){c.set(o),this.stylesheet.fog=o;const v=this._setTransitionParameters({duration:0});c.updateTransitions(v);break}}else this._createFog(o);this._markersNeedUpdate=!0}_setTransitionParameters(o){return{now:s.exported.now(),transition:s.extend(o,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const o=this._order.filter(f=>this.isLayerDraped(this._layers[f])),c=this._order.filter(f=>!this.isLayerDraped(this._layers[f]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...o),this._drapedFirstOrder.push(...c)}_createTerrain(o,c){const f=this.terrain=new Li(o,c);this.stylesheet.terrain=o,this.dispatcher.broadcast("enableTerrain",!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();const _=this._setTransitionParameters({duration:0});f.updateTransitions(_)}_force3DLayerUpdate(){for(const o in this._layers){const c=this._layers[o];c.type==="fill-extrusion"&&this._updateLayer(c)}}_forceSymbolLayerUpdate(){for(const o in this._layers){const c=this._layers[o];c.type==="symbol"&&this._updateLayer(c)}}_validate(o,c,f,_,v={}){return(!v||v.validate!==!1)&&No(this,o.call(s.validateStyle,s.extend({key:c,style:this.serialize(),value:f,styleSpec:s.spec},_)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),s.evented.off("pluginStateChange",this._rtlTextPluginCallback);for(const o in this._layers)this._layers[o].setEventedParent(null);for(const o in this._sourceCaches)this._sourceCaches[o].clearTiles(),this._sourceCaches[o].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(o){const c=this._getSourceCaches(o);for(const f of c)f.clearTiles()}_reloadSource(o){const c=this._getSourceCaches(o);for(const f of c)f.resume(),f.reload()}_reloadSources(){for(const o of this._getSources())o.reload&&o.reload()}_updateSources(o){for(const c in this._sourceCaches)this._sourceCaches[c].update(o)}_generateCollisionBoxes(){for(const o in this._sourceCaches){const c=this._sourceCaches[o];c.resume(),c.reload()}}_updatePlacement(o,c,f,_,v=!1){let E=!1,S=!1;const C={};for(const z of this._order){const P=this._layers[z];if(P.type!=="symbol")continue;if(!C[P.source]){const j=this._getLayerSourceCache(P);if(!j)continue;C[P.source]=j.getRenderableIds(!0).map($=>j.getTileByID($)).sort(($,W)=>W.tileID.overscaledZ-$.tileID.overscaledZ||($.tileID.isLessThan(W.tileID)?-1:1))}const D=this.crossTileSymbolIndex.addLayer(P,C[P.source],o.center.lng,o.projection);E=E||D}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),v=v||this._layerOrderChanged||f===0,this._layerOrderChanged&&this.fire(new s.Event("neworder")),(v||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(s.exported.now(),o.zoom))&&(this.pauseablePlacement=new Xu(o,this._order,v,c,f,_,this.placement,this.fog&&o.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,C),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(s.exported.now()),S=!0),E&&this.pauseablePlacement.placement.setStale()),S||E)for(const z of this._order){const P=this._layers[z];P.type==="symbol"&&this.placement.updateLayerOpacities(P,C[P.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(s.exported.now())}_releaseSymbolFadeTiles(){for(const o in this._sourceCaches)this._sourceCaches[o].releaseSymbolFadeTiles()}getImages(o,c,f){this.imageManager.getImages(c.icons,f),this._updateTilesForChangedImages();const _=v=>{v&&v.setDependencies(c.tileID.key,c.type,c.icons)};_(this._otherSourceCaches[c.source]),_(this._symbolSourceCaches[c.source])}getGlyphs(o,c,f){this.glyphManager.getGlyphs(c.stacks,f)}getResource(o,c,f){return s.makeRequest(c,f)}_getSourceCache(o){return this._otherSourceCaches[o]}_getLayerSourceCache(o){return o.type==="symbol"?this._symbolSourceCaches[o.source]:this._otherSourceCaches[o.source]}_getSourceCaches(o){const c=[];return this._otherSourceCaches[o]&&c.push(this._otherSourceCaches[o]),this._symbolSourceCaches[o]&&c.push(this._symbolSourceCaches[o]),c}_isSourceCacheLoaded(o){const c=this._getSourceCaches(o);return c.length===0?(this.fire(new s.ErrorEvent(new Error(`There is no source with ID '${o}'`))),!1):c.every(f=>f.loaded())}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}jr.getSourceType=function(d){return Pt[d]},jr.setSourceType=function(d,o){Pt[d]=o},jr.registerForPluginStateChange=s.registerForPluginStateChange;var Qu=` +#define EPSILON 0.0000001 +#define PI 3.141592653589793 +#define EXTENT 8192.0 +#define HALF_PI PI/2.0 +#define QUARTER_PI PI/4.0 +#define RAD_TO_DEG 180.0/PI +#define DEG_TO_RAD PI/180.0 +#define GLOBE_RADIUS EXTENT/PI/2.0`,ds="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",ao=` +#define ELEVATION_SCALE 7.0 +#define ELEVATION_OFFSET 450.0 +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix( +mix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;} +#else +vec3 elevationVector(vec2 pos) { return vec3(0,0,1); } +#endif +const float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(vec2 posWithComposedSkirt) +{float skirt=float(posWithComposedSkirt.x >=skirtOffset);vec2 pos=posWithComposedSkirt-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);} +#ifdef TERRAIN +#ifdef TERRAIN_DEM_FLOAT_FORMAT +uniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev; +#else +uniform sampler2D u_dem;uniform sampler2D u_dem_prev; +#endif +uniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos)); +#ifdef TERRAIN_DEM_NEAREST_FILTER +return u_exaggeration*tl; +#endif +float tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +}float prevElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +} +#ifdef TERRAIN_VERTEX_MORPHING +float elevation(vec2 apos) { +#ifdef ZERO_EXAGGERATION +return 0.0; +#endif +float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);} +#else +float elevation(vec2 apos) { +#ifdef ZERO_EXAGGERATION +return 0.0; +#endif +return currentElevation(apos);} +#endif +highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4( +unpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy)) +);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +float tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a; +#else +vec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack); +#endif +return vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);} +#else +float elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; } +#endif`,rl=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);} +#endif`,lo=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);} +#endif`;let lc={},Hs={};const ol=[];Xs(Qu,ol),Xs(ao,ol),Xs(rl,ol),Xs(lo,ol),lc=Qt("",ao),Hs=Qt(lo,rl);const Ep=Qt(` +#if __VERSION__ >=300 +#define varying in +#define gl_FragColor glFragColor +#define texture2D texture +#define textureCube texture +out vec4 glFragColor; +#endif +highp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}`,` +#if __VERSION__ >=300 +#define attribute in +#define varying out +#define texture2D texture +#endif +float wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;} +#ifdef PROJECTION_GLOBE_VIEW +vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) { +#ifndef PROJECTED_POS_ON_VIEWPORT +float tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz; +#else +return vec3(0.0); +#endif +}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);} +#endif +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 +);}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;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.`),cc=Qu,eh=` +#ifdef GL_ES +precision mediump float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`;var th={background:Qt(`uniform vec4 u_color;uniform float u_opacity; +#ifdef LIGHTING_3D_MODE +varying vec4 v_color; +#endif +void main() {vec4 out_color; +#ifdef LIGHTING_3D_MODE +out_color=v_color; +#else +out_color=u_color; +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#ifdef LIGHTING_3D_MODE +uniform vec4 u_color;varying vec4 v_color; +#endif +void main() {gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef LIGHTING_3D_MODE +v_color=apply_lighting(u_color); +#endif +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),backgroundPattern:Qt(`uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos;void main() {vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_tile_units_to_pixels,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),circle:Qt(`varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep( +antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width) +);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_apply_premultiplied(out_color,v_fog_pos); +#endif +gl_FragColor=out_color*(v_visibility*opacity_t); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`#define NUM_VISIBILITY_RINGS 2 +#define INV_SQRT2 0.70710678 +#define ELEVATION_BIAS 0.0001 +#define NUM_SAMPLES_PER_RING 16 +uniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +vec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) { +#if defined(TERRAIN) +return elevation(pos)+ELEVATION_BIAS; +#else +return 0.0; +#endif +}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale); +#ifdef PITCH_WITH_MAP +#ifdef PROJECTION_GLOBE_VIEW +return u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) ); +#else +return u_matrix*( world_center+vec4(sample_offset,0,0) ); +#endif +#else +return projected_center+vec4(sample_offset,0,0); +#endif +}float get_sample_step() { +#ifdef PITCH_WITH_MAP +return 2.0*PI/float(NUM_SAMPLES_PER_RING); +#else +return PI/float(NUM_SAMPLES_PER_RING); +#endif +}void main(void) { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors; +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1); +#else +surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1); +#endif +vec4 projected_center=u_matrix*world_center;float view_scale=0.0; +#ifdef PITCH_WITH_MAP +#ifdef SCALE_WITH_MAP +view_scale=1.0; +#else +view_scale=projected_center.w/u_camera_to_center_distance; +#endif +#else +#ifdef SCALE_WITH_MAP +view_scale=u_camera_to_center_distance; +#else +view_scale=projected_center.w; +#endif +#endif +gl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0; +#ifdef TERRAIN +float step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center; +#ifdef PITCH_WITH_MAP +float cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center; +#else +occlusion_world_center=world_center;occlusion_projected_center=projected_center; +#endif +for(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING); +#else +visibility=1.0; +#endif +#ifdef PROJECTION_GLOBE_VIEW +visibility=1.0; +#endif +v_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur); +#ifdef FOG +v_fog_pos=fog_position(world_center.xyz); +#endif +}`),clippingMask:Qt("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:Qt(`uniform highp float u_intensity;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#define GAUSS_COEF 0.3989422804014327 +void main() { +#pragma mapbox: initialize highp float weight +float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); +#ifdef FOG +if (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);} +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#pragma mapbox: define mediump float radius +const highp float ZERO=1.0/255.0/16.0; +#define GAUSS_COEF 0.3989422804014327 +void main(void) { +#pragma mapbox: initialize highp float weight +#pragma mapbox: initialize mediump float radius +vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);vec3 pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#else +pos=vec3(tilePos+extrude,elevation(tilePos)); +#endif +gl_Position=u_matrix*vec4(pos,1); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),heatmapTexture:Qt(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(0.0); +#endif +}`,"attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:Qt("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}",`attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:Qt("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}",`attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2( +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;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),debug:Qt("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}",`attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3; +#endif +varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0; +#ifdef PROJECTION_GLOBE_VIEW +gl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1); +#else +gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1); +#endif +}`),fill:Qt(`#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +vec4 out_color=color; +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutline:Qt(`varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color; +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutlinePattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;varying vec2 v_pos_world; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;varying vec2 v_pos_world; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillPattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillExtrusion:Qt(`varying vec4 v_color; +#ifdef RENDER_SHADOWS +varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef ZERO_ROOF_RADIUS +varying vec4 v_roof_color; +#endif +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +varying highp vec3 v_normal; +#endif +void main() { +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +vec3 normal=v_normal; +#endif +float z;vec4 color; +#ifdef ZERO_ROOF_RADIUS +z=float(normal.z > 0.00001);color=mix(v_color,v_roof_color,z); +#else +color=v_color; +#endif +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x; +#ifdef ZERO_ROOF_RADIUS +concave*=(1.0-z); +#endif +float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade; +#endif +#ifdef RENDER_SHADOWS +#ifdef ZERO_ROOF_RADIUS +normal=mix(normal,vec3(0.0,0.0,1.0),z); +#endif +color.xyz=shadowed_color_normal(color.xyz,normalize(normal),v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec4 v_color; +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; +#endif +#ifdef ZERO_ROOF_RADIUS +varying vec4 v_roof_color; +#endif +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +varying highp vec3 v_normal; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#pragma mapbox: define highp float base +#pragma mapbox: define highp float height +#pragma mapbox: define highp vec4 color +void main() { +#pragma mapbox: initialize highp float base +#pragma mapbox: initialize highp float height +#pragma mapbox: initialize highp vec4 color +vec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0)); +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +v_normal=normal; +#endif +base=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=0.0;float c_ele;vec3 pos; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);pos=vec3(pos_nx.xy,h); +#else +h=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden); +#ifdef RENDER_SHADOWS +v_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_depth=gl_Position.w; +#endif +float NdotL=0.0;float colorvalue=0.0; +#ifdef LIGHTING_3D_MODE +NdotL=calculate_NdotL(normal); +#else +colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL); +#endif +if (normal.y !=0.0) {float r=0.84; +#ifndef LIGHTING_3D_MODE +r=mix(0.7,0.98,1.0-u_lightintensity); +#endif +NdotL*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}v_color=vec4(0.0,0.0,0.0,1.0); +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +#ifdef LIGHTING_3D_MODE +v_color=apply_lighting(color,NdotL); +#else +v_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); +#endif +v_color*=u_opacity; +#ifdef ZERO_ROOF_RADIUS +v_roof_color=vec4(0.0,0.0,0.0,1.0); +#ifdef LIGHTING_3D_MODE +v_roof_color=apply_lighting(color,calculate_NdotL(vec3(0.0,0.0,1.0))); +#else +float roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); +#endif +v_roof_color*=u_opacity; +#endif +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),fillExtrusionPattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef LIGHTING_3D_MODE +varying float v_NdotL; +#endif +varying vec2 v_pos;varying vec4 v_lighting;uniform lowp float u_opacity; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color,v_NdotL)*u_opacity; +#else +out_color=out_color*v_lighting; +#endif +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade; +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec2 v_pos;varying vec4 v_lighting; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef LIGHTING_3D_MODE +varying float v_NdotL; +#endif +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=z;vec3 p;float c_ele; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);p=vec3(pos_nx.xy,h); +#else +p=vec3(pos_nx.xy,z); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0 +? pos_nx.xy +: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0; +#ifdef LIGHTING_3D_MODE +NdotL=calculate_NdotL(normal); +#else +NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL); +#endif +if (normal.y !=0.0) {float r=0.84; +#ifndef LIGHTING_3D_MODE +r=mix(0.7,0.98,1.0-u_lightintensity); +#endif +NdotL*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));} +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +#ifdef LIGHTING_3D_MODE +v_NdotL=NdotL; +#else +v_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity; +#endif +#ifdef FOG +v_fog_pos=fog_position(p); +#endif +}`),hillshadePrepare:Qt(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +return texture2D(u_image,coord).a/4.0; +#else +vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0; +#endif +}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2( +(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c) +)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4( +deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:Qt(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef LIGHTING_3D_MODE +gl_FragColor=apply_lighting(gl_FragColor); +#endif +#ifdef FOG +gl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos)); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),line:Qt(`uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform sampler2D u_dash_image;varying vec2 v_tex; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform sampler2D u_gradient_image; +#endif +uniform float u_border_width;uniform vec4 u_border_color;float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;} +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +float linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +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); +#ifdef RENDER_LINE_DASH +float sdfdist=texture2D(u_dash_image,v_tex).a;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;alpha*=linearstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist); +#endif +highp vec4 out_color; +#ifdef RENDER_LINE_GRADIENT +out_color=texture2D(u_gradient_image,v_uv.xy); +#else +out_color=color; +#endif +float trimmed=1.0; +#ifdef RENDER_LINE_TRIM_OFFSET +highp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);trimmed=0.0;}} +#endif +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +#ifdef RENDER_LINE_ALPHA_DISCARD +if (alpha < u_alpha_discard_threshold) {discard;} +#endif +#ifdef RENDER_LINE_BORDER +float edgeBlur=(u_border_width+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2); +#ifdef RENDER_LINE_BORDER_AUTO +float Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);} +#else +out_color.rgb=mix(u_border_color.rgb*u_border_color.a*trimmed,out_color.rgb,smoothAlpha); +#endif +} +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define EXTRUDE_SCALE 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data; +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +attribute highp vec4 a_packed; +#endif +#ifdef RENDER_LINE_DASH +attribute float a_linesofar; +#endif +uniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;varying vec2 v_tex; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform float u_image_height; +#endif +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +float a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3]; +#ifdef RENDER_LINE_GRADIENT +highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end); +#else +v_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end); +#endif +#endif +#ifdef RENDER_LINE_DASH +float scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/floorwidth,(-normal.y*height+dash.x+0.5)/u_texsize.y); +#endif +v_width2=vec2(outset,inset); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),linePattern:Qt(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;vec2 pattern_size=vec2(display_size.x/u_tile_units_to_pixels,display_size.y);float aspect=display_size.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x=mod(v_linesofar/pattern_size.x*aspect,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));vec4 color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +color=apply_lighting(color); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth; +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),raster:Qt(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3( +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);vec3 out_color=mix(u_high_vec,u_low_vec,rgb); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply(out_color,v_fog_pos)); +#endif +gl_FragColor=vec4(out_color*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),symbolIcon:Qt(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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 bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjected_point; +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +offsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}`),symbolSDF:Qt(`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +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 fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point; +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +offsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}`),symbolTextAndIcon:Qt(`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +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;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}`),terrainRaster:Qt(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +void main() {vec4 color=texture2D(u_image0,v_pos0); +#ifdef RENDER_SHADOWS +color.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +#ifdef ZERO_EXAGGERATION +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#else +color=fog_dither(fog_apply_from_vert(color,v_fog_opacity)); +#endif +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +const float wireframeOffset=0.00015;void main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height; +#ifdef TERRAIN_WIREFRAME +elevation+=wireframeOffset; +#endif +v_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0); +#ifdef FOG +#ifdef ZERO_EXAGGERATION +v_fog_pos=fog_position(decodedPos); +#else +v_fog_opacity=fog(fog_position(vec3(decodedPos,elevation))); +#endif +#endif +#ifdef RENDER_SHADOWS +vec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w; +#endif +}`),terrainDepth:Qt(`#ifdef GL_ES +precision highp float; +#endif +varying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}`,"uniform mat4 u_matrix;attribute vec2 a_pos;varying float v_depth;void main() {float elevation=elevation(a_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:Qt(` +varying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep( +cos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb; +#ifdef FOG +sky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color); +#endif +sky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,ds),skyboxGradient:Qt(`varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5)); +#ifdef FOG +color.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a; +#endif +color*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,ds),skyboxCapture:Qt(` +varying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m; +#ifdef GL_ES +precision highp float; +#endif +#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6) +#define BETA_M vec3(21e-6,21e-6,21e-6) +#define MIE_G 0.76 +#define DENSITY_HEIGHT_SCALE_R 8000.0 +#define DENSITY_HEIGHT_SCALE_M 1200.0 +#define PLANET_RADIUS 6360e3 +#define ATMOSPHERE_RADIUS 6420e3 +#define SAMPLE_STEPS 10 +#define DENSITY_STEPS 4 +float ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}`,"attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:Qt(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifndef FOG +uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport; +#endif +void main() {vec4 color; +#ifdef CUSTOM_ANTIALIASING +vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);color=vec4(raster.rgb*antialias,raster.a*antialias); +#else +color=texture2D(u_image0,v_pos0); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height; +#ifdef GLOBE_POLES +attribute vec3 a_globe_pos;attribute vec2 a_uv; +#else +attribute vec2 a_pos; +#endif +varying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() { +#ifdef GLOBE_POLES +vec3 globe_pos=a_globe_pos;vec2 uv=a_uv; +#else +float tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY); +#endif +v_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale; +#ifdef GLOBE_POLES +vec3 up_vector=globe_derived_up_vector; +#else +vec3 up_vector=elevationVector(tile_pos); +#endif +float height=elevation(tile_pos); +#ifdef TERRAIN_WIREFRAME +height+=wireframeOffset; +#endif +globe_pos+=up_vector*height; +#ifndef GLOBE_POLES +globe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z; +#endif +#ifdef GLOBE_POLES +vec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0); +#else +vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0); +#endif +gl_Position=u_proj_matrix*interpolated_pos; +#ifdef FOG +v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); +#endif +}`),globeAtmosphere:Qt(`uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir; +#ifdef PROJECTION_GLOBE_VIEW +globe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;} +#endif +highp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ? +0.0 : max(acos(dot(dir,horizon_dir)),0.0);float horizon_angle; +#ifdef PROJECTION_GLOBE_VIEW +highp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ? +PI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t); +#else +horizon_angle=horizon_angle_mercator; +#endif +horizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x: +(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y: +uv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}`,`attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix( +mix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}`)};function Xs(d,o){const c=d.replace(/\s*\/\/[^\n]*\n/g,` +`).split(` +`);for(let f of c)if(f=f.trim(),f[0]==="#"&&f.includes("if")&&!f.includes("endif")){f=f.replace("#","").replace(/ifdef|ifndef|elif|if/g,"").replace(/!|defined|\(|\)|\|\||&&/g,"").replace(/\s+/g," ").trim();const _=f.split(" ");for(const v of _)o.includes(v)||o.push(v)}}function Qt(d,o){const c=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,f=o.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),_={},v=[...ol];return Xs(d,v),Xs(o,v),{fragmentSource:d=d.replace(c,(E,S,C,z,P)=>(_[P]=!0,S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +varying ${C} ${z} ${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:` +#ifdef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = u_${P}; +#endif +`)),vertexSource:o=o.replace(c,(E,S,C,z,P)=>{const D=z==="float"?"vec2":"vec4",j=P.match(/color/)?"color":D;return _[P]?S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +uniform lowp float u_${P}_t; +attribute ${C} ${D} a_${P}; +varying ${C} ${z} ${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:j==="vec4"?` +#ifndef HAS_UNIFORM_u_${P} + ${P} = a_${P}; +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${P} + ${P} = unpack_mix_${j}(a_${P}, u_${P}_t); +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +uniform lowp float u_${P}_t; +attribute ${C} ${D} a_${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:j==="vec4"?` +#ifndef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = a_${P}; +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = unpack_mix_${j}(a_${P}, u_${P}_t); +#else + ${C} ${z} ${P} = u_${P}; +#endif +`}),staticAttributes:f,usedDefines:v}}class Ng{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null}bind(o,c,f,_,v,E,S){this.context=o;let C=this.boundPaintVertexBuffers.length!==_.length;for(let P=0;!C&&P<_.length;P++)this.boundPaintVertexBuffers[P]!==_[P]&&(C=!0);let z=this.boundDynamicVertexBuffers.length!==S.length;for(let P=0;!z&&P{const J=O.paint.get("hillshade-shadow-color"),Q=O.paint.get("hillshade-highlight-color"),he=O.paint.get("hillshade-accent-color");let pe=O.paint.get("hillshade-illumination-direction")*(Math.PI/180);O.paint.get("hillshade-illumination-anchor")==="viewport"&&(pe-=Z.transform.angle);const de=!Z.options.moving;return{u_matrix:G||Z.transform.calculateProjMatrix(H.tileID.toUnwrapped(),de),u_image:0,u_latrange:nh(0,H.tileID),u_light:[O.paint.get("hillshade-exaggeration"),pe],u_shadow:J,u_highlight:Q,u_accent:he}})(d,c,f,d.terrain?o.projMatrix:null);d.prepareDrawProgram(S,P,o.toUnwrapped());const{tileBoundsBuffer:j,tileBoundsIndexBuffer:$,tileBoundsSegments:W}=d.getTileBoundsBuffers(c);P.draw(S,C.TRIANGLES,_,v,E,s.CullFaceMode.disabled,D,f.id,j,$,W)}function ih(d,o,c){if(!o.needsDEMTextureUpload)return;const f=d.context,_=f.gl;f.pixelStoreUnpackPremultiplyAlpha.set(!1),o.demTexture=o.demTexture||d.getTileTexture(c.stride);const v=c.getPixels();o.demTexture?o.demTexture.update(v,{premultiply:!1}):o.demTexture=new s.Texture(f,v,_.RGBA,{premultiply:!1}),o.needsDEMTextureUpload=!1}function Sp(d,o,c,f,_,v){const E=d.context,S=E.gl;if(!o.dem)return;const C=o.dem;if(E.activeTexture.set(S.TEXTURE1),ih(d,o,C),!o.demTexture)return;o.demTexture.bind(S.NEAREST,S.CLAMP_TO_EDGE);const z=C.dim;E.activeTexture.set(S.TEXTURE0);let P=o.fbo;if(!P){const W=new s.Texture(E,{width:z,height:z,data:null},S.RGBA);W.bind(S.LINEAR,S.CLAMP_TO_EDGE),P=o.fbo=E.createFramebuffer(z,z,!0),P.colorAttachment.set(W.texture)}E.bindFramebuffer.set(P.framebuffer),E.viewport.set([0,0,z,z]);const{tileBoundsBuffer:D,tileBoundsIndexBuffer:j,tileBoundsSegments:$}=d.getMercatorTileBoundsBuffers();d.useProgram("hillshadePrepare").draw(E,S.TRIANGLES,f,_,v,s.CullFaceMode.disabled,((W,Z)=>{const H=Z.stride,O=s.create();return s.ortho(O,0,s.EXTENT,-s.EXTENT,0,0,1),s.translate(O,O,[0,-s.EXTENT,0]),{u_matrix:O,u_image:1,u_dimension:[H,H],u_zoom:W.overscaledZ,u_unpack:Z.unpackVector}})(o.tileID,C),c.id,D,j,$),o.needsHillshadePrepare=!1}const rh=d=>({u_matrix:new s.UniformMatrix4f(d),u_image0:new s.Uniform1i(d),u_skirt_height:new s.Uniform1f(d)}),Ks=(d,o)=>({u_matrix:d,u_image0:0,u_skirt_height:o}),uc=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W)=>({u_proj_matrix:Float32Array.from(d),u_globe_matrix:o,u_normalize_matrix:Float32Array.from(f),u_merc_matrix:c,u_zoom_transition:_,u_merc_center:v,u_image0:0,u_frustum_tl:E,u_frustum_tr:S,u_frustum_br:C,u_frustum_bl:z,u_globe_pos:P,u_globe_radius:D,u_viewport:j,u_grid_matrix:W?Float32Array.from(W):new Float32Array(9),u_skirt_height:$});function Ys(d,o){return d!=null&&o!=null&&!(!d.hasData()||!o.hasData())&&d.demTexture!=null&&o.demTexture!=null&&d.tileID.key!==o.tileID.key}const co=new class{constructor(){this.operations={}}newMorphing(d,o,c,f,_){if(d in this.operations){const v=this.operations[d];v.to.tileID.key!==c.tileID.key&&(v.queued=c)}else this.operations[d]={startTime:f,phase:0,duration:_,from:o,to:c,queued:null}}getMorphValuesForProxy(d){if(!(d in this.operations))return null;const o=this.operations[d];return{from:o.from,to:o.to,phase:o.phase}}update(d){for(const o in this.operations){const c=this.operations[o];for(c.phase=(d-c.startTime)/c.duration;c.phase>=1||!this._validOp(c);)if(!this._nextOp(c,d)){delete this.operations[o];break}}}_nextOp(d,o){return!!d.queued&&(d.from=d.to,d.to=d.queued,d.queued=null,d.phase=0,d.startTime=o,!0)}_validOp(d){return d.from.hasData()&&d.to.hasData()}},ps={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"};function hc(d){return 6*Math.pow(1.5,22-d)}function Ap(d,o){const c=1<({u_matrix:d});function oh(d,o,c,f,_){if(_>0){const v=s.exported.now(),E=(v-d.timeAdded)/_,S=o?(v-o.timeAdded)/_:-1,C=c.getSource(),z=f.coveringZoomLevel({tileSize:C.tileSize,roundZoom:C.roundZoom}),P=!o||Math.abs(o.tileID.overscaledZ-z)>Math.abs(d.tileID.overscaledZ-z),D=P&&d.refreshedUponExpiration?1:s.clamp(P?E:1-S,0,1);return d.refreshedUponExpiration&&E>=1&&(d.refreshedUponExpiration=!1),o?{opacity:1,mix:1-D}:{opacity:D,mix:0}}return{opacity:1,mix:0}}class sh extends s.SourceCache{constructor(o){const c={type:"raster-dem",maxzoom:o.transform.maxZoom},f=new xt($s(),null),_=Dt("mock-dem",c,f,o.style);super("mock-dem",_,!1),_.setEventedParent(this),this._sourceLoaded=!0}_loadTile(o,c){o.state="loaded",c(null)}}class dc extends s.SourceCache{constructor(o){const c=Dt("proxy",{type:"geojson",maxzoom:o.transform.maxZoom},new xt($s(),null),o.style);super("proxy",c,!1),c.setEventedParent(this),this.map=this.getSource().map=o,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(o,c,f){if(o.freezeTileCoverage)return;this.transform=o;const _=o.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce((v,E)=>{if(v[E.key]="",!this._tiles[E.key]){const S=new s.Tile(E,this._source.tileSize*E.overscaleFactor(),o.tileZoom);S.state="loaded",this._tiles[E.key]=S}return v},{});for(const v in this._tiles)v in _||(this.freeFBO(v),this._tiles[v].unloadVectorData(),delete this._tiles[v])}freeFBO(o){const c=this.proxyCachedFBO[o];if(c!==void 0){const f=Object.values(c);this.renderCachePool.push(...f),delete this.proxyCachedFBO[o]}}deallocRenderCache(){this.renderCache.forEach(o=>o.fb.destroy()),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}}class pc extends s.OverscaledTileID{constructor(o,c,f){super(o.overscaledZ,o.wrap,o.canonical.z,o.canonical.x,o.canonical.y),this.proxyTileKey=c,this.projMatrix=f}}class ah extends s.Elevation{constructor(o,c){super(),this.painter=o,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[f,_,v]=function(C){const z=new s.StructArrayLayout2i4,P=new s.StructArrayLayout3ui6,D=131;z.reserve(17161),P.reserve(33800);const j=s.EXTENT/128,$=s.EXTENT+j/2,W=$+j;for(let H=-j;H$||H<0||H>$?24575:0,J=s.clamp(Math.round(O),0,s.EXTENT),Q=s.clamp(Math.round(H),0,s.EXTENT);z.emplaceBack(J+G,Q)}const Z=(H,O)=>{const G=O*D+H;P.emplaceBack(G+1,G,G+D),P.emplaceBack(G+D,G+D+1,G+1)};for(let H=1;H<129;H++)for(let O=1;O<129;O++)Z(O,H);return[0,129].forEach(H=>{for(let O=0;O<130;O++)Z(O,H),Z(H,O)}),[z,P,32768]}(),E=o.context;this.gridBuffer=E.createVertexBuffer(f,s.posAttributes.members),this.gridIndexBuffer=E.createIndexBuffer(_),this.gridSegments=s.SegmentVector.simpleSegment(0,0,f.length,_.length),this.gridNoSkirtSegments=s.SegmentVector.simpleSegment(0,0,f.length,v),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new dc(c.map),this.orthoMatrix=s.create(),s.ortho(this.orthoMatrix,this.painter.transform.projection.name==="globe"?.015:0,s.EXTENT,0,s.EXTENT,0,1);const S=E.gl;this._overlapStencilMode=new s.StencilMode({func:S.GEQUAL,mask:255},0,255,S.KEEP,S.KEEP,S.REPLACE),this._previousZoom=o.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=c,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new sh(c.map)}set style(o){o.on("data",this._onStyleDataEvent.bind(this)),o.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=o,this._checkRenderCacheEfficiency(),this._style.map.on("moveend",()=>{this._clearLineLayersFromRenderCache()})}update(o,c,f){if(o&&o.terrain){this._style!==o&&(this.style=o),this.enabled=!0;const _=o.terrain.properties;this.sourceCache=o.terrain.drapeRenderMode===0?this._mockSourceCache:o._getSourceCache(_.get("source")),this._exaggeration=_.get("exaggeration");const v=()=>{this.sourceCache.used&&s.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source. +This leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const E=this.getScaledDemTileSize();this.sourceCache.update(c,E,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,v(),this._initializing=!0),v(),c.updateElevation(!0,f),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(c),this._emptyDEMTextureDirty=!0}else this._disable()}resetTileLookupCache(o){this._findCoveringTileCache[o]={}}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){const o=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||o.efficiency!==100&&s.warnOnce(`Terrain render cache efficiency is not optimal (${o.efficiency}%) and performance + may be affected negatively, consider placing all background, fill and line layers before layer + with id '${o.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(o){o.coord&&o.dataType==="source"?this._clearRenderCacheForTile(o.sourceCacheId,o.coord):o.dataType==="style"&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const o in this._style._sourceCaches)this._style._sourceCaches[o].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach(o=>o.fb.destroy()),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0)}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const o=2*this.proxySourceCache.getSource().tileSize;return[o,o]}set useVertexMorphing(o){this._useVertexMorphing=o}updateTileBinding(o){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const c=this.proxySourceCache,f=this.painter.transform;this._initializing&&(this._initializing=f._centerAltitude===0&&this.getAtPointOrZero(s.MercatorCoordinate.fromLngLat(f.center),-1)===-1,this._emptyDEMTextureDirty=!this._initializing);const _=this.proxyCoords=c.getIds().map(C=>{const z=c.getTileByID(C).tileID;return z.projMatrix=f.calculateProjMatrix(z.toUnwrapped()),z});(function(C,z){const P=z.transform.pointCoordinate(z.transform.getCameraPoint()),D=new s.Point(P.x,P.y);C.sort((j,$)=>{if($.overscaledZ-j.overscaledZ)return $.overscaledZ-j.overscaledZ;const W=new s.Point(j.canonical.x+(1<{this.proxyToSource[C.key]={}}),this.terrainTileForTile={};const E=this._style._sourceCaches;for(const C in E){const z=E[C];if(!z.used||(z!==this.sourceCache&&this.resetTileLookupCache(z.id),this._setupProxiedCoordsForOrtho(z,o[C],v),z.usedForTerrain))continue;const P=o[C];z.getSource().reparseOverscaled&&this._assignTerrainTiles(P)}this.proxiedCoords[c.id]=_.map(C=>new pc(C,C.key,this.orthoMatrix)),this._assignTerrainTiles(_),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(v),this.renderingToTexture=!1,this._updateTimestamp=s.exported.now();const S={};this._visibleDemTiles=[];for(const C of this.proxyCoords){const z=this.terrainTileForTile[C.key];if(!z)continue;const P=z.tileID.key;P in S||(this._visibleDemTiles.push(z),S[P]=P)}}_assignTerrainTiles(o){this._initializing||o.forEach(c=>{if(this.terrainTileForTile[c.key])return;const f=this._findTileCoveringTileID(c,this.sourceCache);f&&(this.terrainTileForTile[c.key]=f)})}_prepareDEMTextures(){const o=this.painter.context,c=o.gl;for(const f in this.terrainTileForTile){const _=this.terrainTileForTile[f],v=_.dem;!v||_.demTexture&&!_.needsDEMTextureUpload||(o.activeTexture.set(c.TEXTURE1),ih(this.painter,_,v))}}_prepareDemTileUniforms(o,c,f,_){if(!c||c.demTexture==null)return!1;const v=o.tileID.canonical,E=Math.pow(2,c.tileID.canonical.z-v.z),S=_||"";return f[`u_dem_tl${S}`]=[v.x*E%1,v.y*E%1],f[`u_dem_scale${S}`]=E,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const o=this.painter.context,c=o.gl;if(!this._emptyDepthBufferTexture){const f=new s.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new s.Texture(o,f,c.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let o=0;const c=this._visibleDemTiles.reduce((f,_)=>{if(!_.dem)return f;const v=_.dem.tree.minimums[0];return v>0&&o++,f+v},0);return o?c/o:0}_updateEmptyDEMTexture(){const o=this.painter.context,c=o.gl;o.activeTexture.set(c.TEXTURE2);const f=this._getLoadedAreaMinimum(),_=new s.RGBAImage({width:1,height:1},new Uint8Array(s.DEMData.pack(f,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let v=this._emptyDEMTexture;return v?v.update(_,{premultiply:!1}):v=this._emptyDEMTexture=new s.Texture(o,_,c.RGBA,{premultiply:!1}),v}setupElevationDraw(o,c,f){const _=this.painter.context,v=_.gl,E=(S=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:s.DEMData.getUnpackVector(S),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0});var S;E.u_dem_size=this.sourceCache.getSource().tileSize,E.u_exaggeration=this.exaggeration();let C=null,z=null,P=1;if(f&&f.morphing&&this._useVertexMorphing){const D=f.morphing.srcDemTile,j=f.morphing.dstDemTile;P=f.morphing.phase,D&&j&&(this._prepareDemTileUniforms(o,D,E,"_prev")&&(z=D),this._prepareDemTileUniforms(o,j,E)&&(C=j))}if(z&&C?(_.activeTexture.set(v.TEXTURE2),C.demTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE,v.NEAREST),_.activeTexture.set(v.TEXTURE4),z.demTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE,v.NEAREST),E.u_dem_lerp=P):(C=this.terrainTileForTile[o.tileID.key],_.activeTexture.set(v.TEXTURE2),(this._prepareDemTileUniforms(o,C,E)?C.demTexture:this.emptyDEMTexture).bind(v.NEAREST,v.CLAMP_TO_EDGE)),_.activeTexture.set(v.TEXTURE3),f&&f.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE),this._depthFBO&&(E.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE),E.u_depth_size_inv=[1,1]),f&&f.useMeterToDem&&C){const D=(1<{if(O===qe)return;const Oe=[ps[qe],"PROJECTION_GLOBE_VIEW"];Q&&Oe.push("CUSTOM_ANTIALIASING"),Ee&&Oe.push(ps[G]),H=z.useProgram("globeRaster",null,Oe),O=qe},pe=z.colorModeForRenderPass(),de=new s.DepthMode(Z.LEQUAL,s.DepthMode.ReadWrite,z.depthRangeFor3D);co.update($);const ye=s.calculateGlobeMercatorMatrix(J),_e=[s.mercatorXfromLng(J.center.lng),s.mercatorYfromLat(J.center.lat)],Te=G?[!1,!0]:[!1],Ze=z.globeSharedBuffers,we=[J.width*s.exported.devicePixelRatio,J.height*s.exported.devicePixelRatio],Be=Float32Array.from(J.globeMatrix),Ce={useDenormalizedUpVectorScale:!0};if(Te.forEach(qe=>{const Ee=z.transform,Oe=hc(Ee.zoom)*P.exaggeration();O=-1;const He=qe?Z.LINES:Z.TRIANGLES;for(const Ge of j){const Xe=D.getTile(Ge),gt=s.StencilMode.disabled,Et=P.prevTerrainTileForTile[Ge.key],dt=P.terrainTileForTile[Ge.key];Ys(Et,dt)&&co.newMorphing(Ge.key,Et,dt,$,250),W.activeTexture.set(Z.TEXTURE0),Xe.texture.bind(Z.LINEAR,Z.CLAMP_TO_EDGE);const wt=co.getMorphValuesForProxy(Ge.key),Ut=wt?1:0;wt&&s.extend$1(Ce,{morphing:{srcDemTile:wt.from,dstDemTile:wt.to,phase:s.easeCubicInOut(wt.phase)}});const Ot=s.tileCornersToBounds(Ge.canonical),mt=s.getLatitudinalLod(Ot.getCenter().lat),en=s.getGridMatrix(Ge.canonical,Ot,mt,Ee.worldSize/Ee._pixelsPerMercatorPixel),rn=s.globeNormalizeECEF(s.globeTileBounds(Ge.canonical)),on=uc(Ee.projMatrix,Be,ye,rn,s.globeToMercatorTransition(Ee.zoom),_e,Ee.frustumCorners.TL,Ee.frustumCorners.TR,Ee.frustumCorners.BR,Ee.frustumCorners.BL,Ee.globeCenterInViewSpace,Ee.globeRadius,we,Oe,en);if(he(Ut,qe),P.setupElevationDraw(Xe,H,Ce),z.prepareDrawProgram(W,H,Ge.toUnwrapped()),Ze){const[sn,wi,si]=qe?Ze.getWirefameBuffers(z.context,mt):Ze.getGridBuffers(mt,Oe!==0);H.draw(W,He,de,gt,pe,s.CullFaceMode.backCCW,on,"globe_raster",sn,wi,si)}}}),Ze){const qe=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];Q&&qe.push("CUSTOM_ANTIALIASING"),H=z.useProgram("globeRaster",null,qe);for(const Ee of j){const{x:Oe,y:He,z:Ge}=Ee.canonical,Xe=He===0,gt=He===(1<on.draw(W,Z.TRIANGLES,de,s.StencilMode.disabled,pe,s.CullFaceMode.disabled,uc(J.projMatrix,mt,mt,en,0,_e,J.frustumCorners.TL,J.frustumCorners.TR,J.frustumCorners.BR,J.frustumCorners.BL,J.globeCenterInViewSpace,J.globeRadius,we,0),"globe_pole_raster",sn,wt,Ut);P.setupElevationDraw(Ot,H,Ce),z.prepareDrawProgram(W,H,Ee.toUnwrapped()),Xe&&rn(H,Et),gt&&(mt=s.scale(s.create(),mt,[1,-1,1]),rn(H,dt))}}}})(_,v,E,S,C);else{const z=_.context,P=z.gl;let D,j;const $=_.options.showTerrainWireframe?2:0,W=(J,Q)=>{if(j===J)return;const he=[ps[J]];Q&&he.push(ps[$]),D=_.useProgram("terrainRaster",null,he),j=J},Z=_.colorModeForRenderPass(),H=new s.DepthMode(P.LEQUAL,s.DepthMode.ReadWrite,_.depthRangeFor3D);co.update(C);const O=_.transform,G=hc(O.zoom)*v.exaggeration();($?[!1,!0]:[!1]).forEach(J=>{j=-1;const Q=J?P.LINES:P.TRIANGLES,[he,pe]=J?v.getWirefameBuffer():[v.gridIndexBuffer,v.gridSegments];for(const de of S){const ye=E.getTile(de),_e=s.StencilMode.disabled,Te=v.prevTerrainTileForTile[de.key],Ze=v.terrainTileForTile[de.key];Ys(Te,Ze)&&co.newMorphing(de.key,Te,Ze,C,250),z.activeTexture.set(P.TEXTURE0),ye.texture.bind(P.LINEAR,P.CLAMP_TO_EDGE,P.LINEAR_MIPMAP_NEAREST);const we=co.getMorphValuesForProxy(de.key),Be=we?1:0;let Ce;we&&(Ce={morphing:{srcDemTile:we.from,dstDemTile:we.to,phase:s.easeCubicInOut(we.phase)}});const qe=Ks(de.projMatrix,Ap(de.canonical,O.renderWorldCopies)?G/10:G);W(Be,J),v.setupElevationDraw(ye,D,Ce),_.prepareDrawProgram(z,D,de.toUnwrapped()),D.draw(z,Q,H,_e,Z,s.CullFaceMode.backCCW,qe,"terrain_raster",v.gridBuffer,he,pe)}})}}(c,this,this.proxySourceCache,o,this._updateTimestamp),this.renderingToTexture=!0,c.gpuTimingDeferredRenderEnd(),o.splice(0,o.length))}renderBatch(o){if(this._drapedRenderBatches.length===0)return o+1;this.renderingToTexture=!0;const c=this.painter,f=this.painter.context,_=this.proxySourceCache,v=this.proxiedCoords[_.id],E=this._drapedRenderBatches.shift(),S=[],C=c.style.order;let z=0;for(const P of v){const D=_.getTileByID(P.proxyTileKey),j=_.proxyCachedFBO[P.key]?_.proxyCachedFBO[P.key][o]:void 0,$=j!==void 0?_.renderCache[j]:this.pool[z++],W=j!==void 0;if(D.texture=$.tex,W&&!$.dirty){S.push(D.tileID);continue}let Z;f.bindFramebuffer.set($.fb.framebuffer),this.renderedToTile=!1,$.dirty&&(f.clear({color:s.Color.transparent,stencil:0}),$.dirty=!1);for(let H=E.start;H<=E.end;++H){const O=c.style._layers[C[H]];if(O.isHidden(c.transform.zoom))continue;const G=c.style._getLayerSourceCache(O),J=G?this.proxyToSource[P.key][G.id]:[P];if(!J)continue;const Q=J;f.viewport.set([0,0,$.fb.width,$.fb.height]),Z!==(G?G.id:null)&&(this._setupStencil($,J,O,G),Z=G?G.id:null),c.renderLayer(c,G,O,Q)}this.renderedToTile?($.dirty=!0,S.push(D.tileID)):W||--z,z===5&&(z=0,this.renderToBackBuffer(S))}return this.renderToBackBuffer(S),this.renderingToTexture=!1,f.bindFramebuffer.set(null),f.viewport.set([0,0,c.width,c.height]),E.end+1}postRender(){}renderCacheEfficiency(o){const c=o.order.length;if(c===0)return{efficiency:100};let f,_=0,v=0,E=!1;for(let S=0;Sc.dem).forEach(c=>{o=Math.min(o,c.dem.tree.minimums[0])}),o===0?o:(o-30)*this._exaggeration}raycast(o,c,f){if(!this._visibleDemTiles)return null;const _=this._visibleDemTiles.filter(v=>v.dem).map(v=>{const E=v.tileID,S=1<(v.t!==null?v.t:Number.MAX_VALUE)-(E.t!==null?E.t:Number.MAX_VALUE));for(const v of _){if(v.t==null)return null;const E=v.tile.dem.tree.raycast(v.minx,v.miny,v.maxx,v.maxy,o,c,f);if(E!=null)return E}return null}_createFBO(){const o=this.painter.context,c=o.gl,f=this.drapeBufferSize;o.activeTexture.set(c.TEXTURE0);const _=new s.Texture(o,{width:f[0],height:f[1],data:null},c.RGBA);_.bind(c.LINEAR,c.CLAMP_TO_EDGE);const v=o.createFramebuffer(f[0],f[1],!1);return v.colorAttachment.set(_.texture),v.depthAttachment=new me(o,v.framebuffer),this._sharedDepthStencil===void 0?(this._sharedDepthStencil=o.createRenderbuffer(o.gl.DEPTH_STENCIL,f[0],f[1]),this._stencilRef=0,v.depthAttachment.set(this._sharedDepthStencil),o.clear({stencil:0})):v.depthAttachment.set(this._sharedDepthStencil),o.extTextureFilterAnisotropic&&!o.extTextureFilterAnisotropicForceOff&&c.texParameterf(c.TEXTURE_2D,o.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,o.extTextureFilterAnisotropicMax),{fb:v,tex:_,dirty:!1}}_initFBOPool(){for(;this.pool.length{const c=this._style._layers[o],f=c.isHidden(this.painter.transform.zoom);return c.type==="custom"?!f&&c.shouldRedrape():!f&&c.hasTransition()})}_clearLineLayersFromRenderCache(){let o=!1;for(const f of this._style._getSources())if(f instanceof nt){o=!0;break}if(!o)return;const c={};for(let f=0;fc.renderCachePool.length){const E=Object.values(c.proxyCachedFBO);c.proxyCachedFBO={};for(let S=0;S=0;E--){const S=f[E];if(c.getTileByID(S.key),c.proxyCachedFBO[S.key]!==void 0){const C=o[S.key],z=this.proxyToSource[S.key];let P=0;for(const D in z){const j=z[D],$=C[D];if(!$||$.length!==j.length||j.some((W,Z)=>W!==$[Z]||_[D]&&_[D].hasOwnProperty(W.key))){P=-1;break}++P}for(const D in c.proxyCachedFBO[S.key])c.renderCache[c.proxyCachedFBO[S.key][D]].dirty=P<0||P!==Object.values(C).length}}const v=[...this._drapedRenderBatches];v.sort((E,S)=>S.end-S.start-(E.end-E.start));for(const E of v)for(const S of f){if(c.proxyCachedFBO[S.key])continue;let C=c.renderCachePool.pop();C===void 0&&c.renderCache.length<50&&(C=c.renderCache.length,c.renderCache.push(this._createFBO())),C!==void 0&&(c.proxyCachedFBO[S.key]={},c.proxyCachedFBO[S.key][E.start]=C,c.renderCache[C].dirty=!0)}this._tilesDirty={}}_setupStencil(o,c,f,_){if(!_||!this._sourceTilesOverlap[_.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const v=this.painter.context,E=v.gl;if(c.length<=1)return void(this._overlapStencilType=!1);let S;if(f.isTileClipped())S=c.length,this._overlapStencilMode.test={func:E.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(c[0].overscaledZ>c[c.length-1].overscaledZ))return void(this._overlapStencilType=!1);S=1,this._overlapStencilMode.test={func:E.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+S>255&&(v.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=S,this._overlapStencilMode.ref=this._stencilRef,f.isTileClipped()&&this._renderTileClippingMasks(c,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return this._overlapStencilType==="Clip"||this._overlapStencilType==="Mask"}stencilModeForRTTOverlap(o){return this.renderingToTexture&&this._overlapStencilType?(this._overlapStencilType==="Clip"&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[o.key]),this._overlapStencilMode):s.StencilMode.disabled}_renderTileClippingMasks(o,c){const f=this.painter,_=this.painter.context,v=_.gl;f._tileClippingMaskIDs={},_.setColorMode(s.ColorMode.disabled),_.setDepthMode(s.DepthMode.disabled);const E=f.useProgram("clippingMask");for(const S of o){const C=f._tileClippingMaskIDs[S.key]=--c;E.draw(_,v.TRIANGLES,s.DepthMode.disabled,new s.StencilMode({func:v.ALWAYS,mask:0},C,255,v.KEEP,v.KEEP,v.REPLACE),s.ColorMode.disabled,s.CullFaceMode.disabled,sl(S.projMatrix),"$clipping",f.tileExtentBuffer,f.quadTriangleIndexBuffer,f.tileExtentSegments)}}pointCoordinate(o){const c=this.painter.transform;if(o.x<0||o.x>c.width||o.y<0||o.y>c.height)return null;const f=[o.x,o.y,1,1];s.transformMat4$1(f,f,c.pixelMatrixInverse),s.scale$1(f,f,1/f[3]),f[0]/=c.worldSize,f[1]/=c.worldSize;const _=c._camera.position,v=s.mercatorZfromAltitude(1,c.center.lat),E=[_[0],_[1],_[2]/v,0],S=s.subtract([],f.slice(0,3),E);s.normalize(S,S);const C=this.raycast(E,S,this._exaggeration);return C!==null&&C?(s.scaleAndAdd(E,E,S,C),E[3]=E[2],E[2]*=v,E):null}drawDepth(){const o=this.painter,c=o.context,f=this.proxySourceCache,_=Math.ceil(o.width),v=Math.ceil(o.height);if(!this._depthFBO||this._depthFBO.width===_&&this._depthFBO.height===v||(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){const E=c.gl,S=c.createFramebuffer(_,v,!0);c.activeTexture.set(E.TEXTURE0);const C=new s.Texture(c,{width:_,height:v,data:null},E.RGBA);C.bind(E.NEAREST,E.CLAMP_TO_EDGE),S.colorAttachment.set(C.texture);const z=c.createRenderbuffer(c.gl.DEPTH_COMPONENT16,_,v);S.depthAttachment.set(z),this._depthFBO=S,this._depthTexture=C}c.bindFramebuffer.set(this._depthFBO.framebuffer),c.viewport.set([0,0,_,v]),function(E,S,C,z){if(E.transform.projection.name==="globe")return;const P=E.context,D=P.gl;P.clear({depth:1});const j=E.useProgram("terrainDepth"),$=new s.DepthMode(D.LESS,s.DepthMode.ReadWrite,E.depthRangeFor3D);for(const W of z){const Z=C.getTile(W),H=Ks(W.projMatrix,0);S.setupElevationDraw(Z,j),j.draw(P,D.TRIANGLES,$,s.StencilMode.disabled,s.ColorMode.unblended,s.CullFaceMode.backCCW,H,"terrain_depth",S.gridBuffer,S.gridIndexBuffer,S.gridNoSkirtSegments)}}(o,this,f,this.proxyCoords)}_setupProxiedCoordsForOrtho(o,c,f){if(o.getSource()instanceof Rt)return this._setupProxiedCoordsForImageSource(o,c,f);this._findCoveringTileCache[o.id]=this._findCoveringTileCache[o.id]||{};const _=this.proxiedCoords[o.id]=[],v=this.proxyCoords;for(let S=0;S(P.min.x=Math.min(P.min.x,D.x-S.x),P.min.y=Math.min(P.min.y,D.y-S.y),P.max.x=Math.max(P.max.x,D.x-S.x),P.max.y=Math.max(P.max.y,D.y-S.y),P),{min:new s.Point(Number.MAX_VALUE,Number.MAX_VALUE),max:new s.Point(-Number.MAX_VALUE,-Number.MAX_VALUE)}),z=(P,D)=>{const j=P.wrap+P.canonical.x/(1<Z+C.max.x||$+WH+C.max.y};for(let P=0;PE.key===c.tileID.key);if(v)return v}if(c.tileID.key!==o.key){const v=o.canonical.z-c.tileID.canonical.z;let E,S,C;_=s.create();const z=c.tileID.wrap-o.wrap<0?(E=s.EXTENT>>v,S=E*((c.tileID.canonical.x<=D){const j=o.canonical.z-D;c.getSource().reparseOverscaled?(S=Math.max(o.canonical.z+2,c.transform.tileZoom),E=new s.OverscaledTileID(S,o.wrap,D,o.canonical.x>>j,o.canonical.y>>j)):j!==0&&(S=D,E=new s.OverscaledTileID(S,o.wrap,D,o.canonical.x>>j,o.canonical.y>>j))}E.key!==o.key&&(z.push(E.key),f=c.getTile(E))}const P=D=>{z.forEach(j=>{_[j]=D}),z.length=0};for(S-=1;S>=C&&(!f||!f.hasData());S--){f&&P(f.tileID.key);const D=E.calculateScaledKey(S);if(f=c.getTileByID(D),f&&f.hasData())break;const j=_[D];if(j===null)break;j===void 0?z.push(D):f=c.getTileByID(j)}return P(f?f.tileID.key:null),f&&f.hasData()?f:null}findDEMTileFor(o){return this.enabled?this._findTileCoveringTileID(o,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0}_clearRenderCacheForTile(o,c){let f=this._tilesDirty[o];f||(f=this._tilesDirty[o]={}),f[c.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){const o=function(c){let f=0;const _=new s.StructArrayLayout2ui4,v=131;for(let E=1;E<129;E++){for(let S=1;S<129;S++)f=E*v+S,_.emplaceBack(f,f+1),_.emplaceBack(f,f+v),_.emplaceBack(f+1,f+v),E===128&&_.emplaceBack(f+v,f+v+1);_.emplaceBack(f+1,f+1+v)}return _}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(o),this.wireframeSegments=s.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,o.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}}class Zt{static cacheKey(o,c,f,_){let v=`${c}${_?_.cacheKey:""}`;for(const E of f)o.usedDefines.includes(E)&&(v+=`/${E}`);return v}constructor(o,c,f,_,v,E){const S=o.gl;this.program=S.createProgram();const C=function(O){const G=[];for(let J=0;J`#define ${O}`));const j=o.isWebGL2?`#version 300 es +`:"",$=j+D.concat(o.extStandardDerivatives&&j.length===0?`#extension GL_OES_standard_derivatives : enable +`.concat(eh):eh,eh,cc,Ep.fragmentSource,Hs.fragmentSource,f.fragmentSource).join(` +`),W=j+D.concat(` +#ifdef GL_ES +precision highp float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`,cc,Ep.vertexSource,Hs.vertexSource,lc.vertexSource,f.vertexSource).join(` +`),Z=S.createShader(S.FRAGMENT_SHADER);if(S.isContextLost())return void(this.failedToCreate=!0);S.shaderSource(Z,$),S.compileShader(Z),S.attachShader(this.program,Z);const H=S.createShader(S.VERTEX_SHADER);if(S.isContextLost())this.failedToCreate=!0;else{S.shaderSource(H,W),S.compileShader(H),S.attachShader(this.program,H),this.attributes={},this.numAttributes=P.length;for(let O=0;O({u_dem:new s.Uniform1i(O),u_dem_prev:new s.Uniform1i(O),u_dem_unpack:new s.Uniform4f(O),u_dem_tl:new s.Uniform2f(O),u_dem_scale:new s.Uniform1f(O),u_dem_tl_prev:new s.Uniform2f(O),u_dem_scale_prev:new s.Uniform1f(O),u_dem_size:new s.Uniform1f(O),u_dem_lerp:new s.Uniform1f(O),u_exaggeration:new s.Uniform1f(O),u_depth:new s.Uniform1i(O),u_depth_size_inv:new s.Uniform2f(O),u_meter_to_dem:new s.Uniform1f(O),u_label_plane_matrix_inv:new s.UniformMatrix4f(O)}))(o)),E.includes("GLOBE")&&(this.globeUniforms=(O=>({u_tile_tl_up:new s.Uniform3f(O),u_tile_tr_up:new s.Uniform3f(O),u_tile_br_up:new s.Uniform3f(O),u_tile_bl_up:new s.Uniform3f(O),u_tile_up_scale:new s.Uniform1f(O)}))(o)),E.includes("FOG")&&(this.fogUniforms=(O=>({u_fog_matrix:new s.UniformMatrix4f(O),u_fog_range:new s.Uniform2f(O),u_fog_color:new s.Uniform4f(O),u_fog_horizon_blend:new s.Uniform1f(O),u_fog_temporal_offset:new s.Uniform1f(O),u_frustum_tl:new s.Uniform3f(O),u_frustum_tr:new s.Uniform3f(O),u_frustum_br:new s.Uniform3f(O),u_frustum_bl:new s.Uniform3f(O),u_globe_pos:new s.Uniform3f(O),u_globe_radius:new s.Uniform1f(O),u_globe_transition:new s.Uniform1f(O),u_is_globe:new s.Uniform1i(O),u_viewport:new s.Uniform2f(O)}))(o))}}setTerrainUniformValues(o,c){if(!this.terrainUniforms)return;const f=this.terrainUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_]&&f[_].set(this.program,_,c[_])}}setGlobeUniformValues(o,c){if(!this.globeUniforms)return;const f=this.globeUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_]&&f[_].set(this.program,_,c[_])}}setFogUniformValues(o,c){if(!this.fogUniforms)return;const f=this.fogUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_].set(this.program,_,c[_])}}draw(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z){const H=o.gl;if(this.failedToCreate)return;o.program.set(this.program),o.setDepthMode(f),o.setStencilMode(_),o.setColorMode(v),o.setCullFace(E);for(const G of Object.keys(this.fixedUniforms))this.fixedUniforms[G].set(this.program,G,S[G]);W&&W.setUniforms(this.program,o,this.binderUniforms,j,{zoom:$});const O={[H.LINES]:2,[H.TRIANGLES]:3,[H.LINE_STRIP]:1}[c];for(const G of D.get()){const J=G.vaos||(G.vaos={});(J[C]||(J[C]=new Ng)).bind(o,this,z,W?W.getPaintVertexBuffers():[],P,G.vertexOffset,Z||[]),H.drawElements(c,G.primitiveLength*O,H.UNSIGNED_SHORT,G.primitiveOffset*O*2)}}}function al(d,o){const c=Math.pow(2,o.tileID.overscaledZ),f=o.tileSize*Math.pow(2,d.transform.tileZoom)/c,_=f*(o.tileID.canonical.x+o.tileID.wrap*c),v=f*o.tileID.canonical.y;return{u_image:0,u_texsize:o.imageAtlasTexture.size,u_tile_units_to_pixels:1/Bt(o,1,d.transform.tileZoom),u_pixel_coord_upper:[_>>16,v>>16],u_pixel_coord_lower:[65535&_,65535&v]}}const Cp=s.create(),lh=(d,o,c,f,_,v,E,S,C,z,P)=>{const D=o.style.light,j=D.properties.get("position"),$=[j.x,j.y,j.z],W=s.create$1();D.properties.get("anchor")==="viewport"&&(s.fromRotation(W,-o.transform.angle),s.transformMat3($,$,W));const Z=D.properties.get("color"),H=o.transform,O={u_matrix:d,u_lightpos:$,u_lightintensity:D.properties.get("intensity"),u_lightcolor:[Z.r,Z.g,Z.b],u_vertical_gradient:+c,u_opacity:f,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:Cp,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:_,u_edge_radius:v};return H.projection.name==="globe"&&(O.u_tile_id=[E.canonical.x,E.canonical.y,1<{const j=lh(d,o,c,f,_,v,E,C,z,P,D),$={u_height_factor:-Math.pow(2,E.overscaledZ)/S.tileSize/8};return s.extend(j,al(o,S),$)},fs=d=>({u_matrix:d}),ch=(d,o,c)=>s.extend(fs(d),al(o,c)),Ug=(d,o)=>({u_matrix:d,u_world:o}),jg=(d,o,c,f)=>s.extend(ch(d,o,c),{u_world:f}),Vg=s.create(),uh=(d,o,c,f,_,v)=>{const E=d.transform,S=E.projection.name==="globe";let C;if(v.paint.get("circle-pitch-alignment")==="map")if(S){const P=s.globePixelsToTileUnits(E.zoom,o.canonical)*E._pixelsPerMercatorPixel;C=Float32Array.from([P,0,0,P])}else C=E.calculatePixelsToTileUnitsMatrix(c);else C=new Float32Array([E.pixelsToGLUnits[0],0,0,E.pixelsToGLUnits[1]]);const z={u_camera_to_center_distance:E.cameraToCenterDistance,u_matrix:d.translatePosMatrix(o.projMatrix,c,v.paint.get("circle-translate"),v.paint.get("circle-translate-anchor")),u_device_pixel_ratio:s.exported.devicePixelRatio,u_extrude_scale:C,u_inv_rot_matrix:Vg,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(S){z.u_inv_rot_matrix=f,z.u_merc_center=_,z.u_tile_id=[o.canonical.x,o.canonical.y,1<{const o=[];return d.paint.get("circle-pitch-alignment")==="map"&&o.push("PITCH_WITH_MAP"),d.paint.get("circle-pitch-scale")==="map"&&o.push("SCALE_WITH_MAP"),o},dh=(d,o,c,f)=>{const _=s.EXTENT/c.tileSize;return{u_matrix:d,u_camera_to_center_distance:o.getCameraToCenterDistance(f),u_extrude_scale:[o.pixelsToGLUnits[0]/_,o.pixelsToGLUnits[1]/_]}},fc=(d,o,c=1)=>({u_matrix:d,u_color:o,u_overlay:0,u_overlay_scale:c}),Mp=s.create(),kp=(d,o,c,f,_,v,E)=>{const S=d.transform,C=S.projection.name==="globe",z=C?s.globePixelsToTileUnits(S.zoom,o.canonical)*S._pixelsPerMercatorPixel:Bt(c,1,v),P={u_matrix:o.projMatrix,u_extrude_scale:z,u_intensity:E,u_inv_rot_matrix:Mp,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(C){P.u_inv_rot_matrix=f,P.u_merc_center=_,P.u_tile_id=[o.canonical.x,o.canonical.y,1<{const S=d.transform,C=S.calculatePixelsToTileUnitsMatrix(o);return{u_matrix:ph(d,o,c,f),u_pixels_to_tile_units:C,u_device_pixel_ratio:v,u_units_to_pixels:[1/S.pixelsToGLUnits[0],1/S.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:_,u_texsize:cl(c)?o.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:Js(o,d.transform),u_alpha_discard_threshold:0,u_trim_offset:E}},ll=(d,o,c,f,_)=>{const v=d.transform;return{u_matrix:ph(d,o,c,f),u_texsize:o.imageAtlasTexture.size,u_pixels_to_tile_units:v.calculatePixelsToTileUnitsMatrix(o),u_device_pixel_ratio:_,u_image:0,u_tile_units_to_pixels:Js(o,v),u_units_to_pixels:[1/v.pixelsToGLUnits[0],1/v.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function Js(d,o){return 1/Bt(d,1,o.tileZoom)}function ph(d,o,c,f){return d.translatePosMatrix(f||o.tileID.projMatrix,o,c.paint.get("line-translate"),c.paint.get("line-translate-anchor"))}function cl(d){const o=d.paint.get("line-dasharray").value;return o.value||o.kind!=="constant"}const fh=(d,o,c,f,_,v)=>{return{u_matrix:d,u_tl_parent:o,u_scale_parent:c,u_fade_t:f.mix,u_opacity:f.opacity*_.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:_.paint.get("raster-brightness-min"),u_brightness_high:_.paint.get("raster-brightness-max"),u_saturation_factor:(S=_.paint.get("raster-saturation"),S>0?1-1/(1.001-S):-S),u_contrast_factor:(E=_.paint.get("raster-contrast"),E>0?1/(1-E):1+E),u_spin_weights:Vr(_.paint.get("raster-hue-rotate")),u_perspective_transform:v};var E,S};function Vr(d){d*=Math.PI/180;const o=Math.sin(d),c=Math.cos(d);return[(2*c+1)/3,(-Math.sqrt(3)*o-c+1)/3,(Math.sqrt(3)*o-c+1)/3]}const mc=s.create(),mh=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z)=>{const H=_.transform,O={u_is_size_zoom_constant:+(d==="constant"||d==="source"),u_is_size_feature_constant:+(d==="constant"||d==="camera"),u_size_t:o?o.uSizeT:0,u_size:o?o.uSize:0,u_camera_to_center_distance:H.cameraToCenterDistance,u_rotate_symbol:+c,u_aspect_ratio:H.width/H.height,u_fade_change:_.options.fadeDuration?_.symbolFadeChange:1,u_matrix:v,u_label_plane_matrix:E,u_coord_matrix:S,u_is_text:+C,u_pitch_with_map:+f,u_texsize:z,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:mc,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:mc,u_up_vector:[0,-1,0]};return Z.name==="globe"&&(O.u_tile_id=[P.canonical.x,P.canonical.y,1<s.extend(mh(d,o,c,f,_,v,E,S,C,z,D,j,$,W,Z,H),{u_gamma_scale:f?_.transform.cameraToCenterDistance*Math.cos(_.terrain?0:_.transform._pitch):1,u_device_pixel_ratio:s.exported.devicePixelRatio,u_is_halo:+P}),Pp=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z)=>s.extend(gc(d,o,c,f,_,v,E,S,!0,C,!0,P,D,j,$,W,Z),{u_texsize_icon:z,u_texture_icon:1}),gh=(d,o,c)=>({u_matrix:d,u_opacity:o,u_color:c}),$g=(d,o,c,f,_)=>s.extend(function(v,E,S){const C=E.imageManager.getPattern(v.toString()),{width:z,height:P}=E.imageManager.getPixelSize(),D=Math.pow(2,S.tileID.overscaledZ),j=S.tileSize*Math.pow(2,E.transform.tileZoom)/D,$=j*(S.tileID.canonical.x+S.tileID.wrap*D),W=j*S.tileID.canonical.y;return{u_image:0,u_pattern_tl:C.tl,u_pattern_br:C.br,u_texsize:[z,P],u_pattern_size:C.displaySize,u_tile_units_to_pixels:1/Bt(S,1,E.transform.tileZoom),u_pixel_coord_upper:[$>>16,W>>16],u_pixel_coord_lower:[65535&$,65535&W]}}(f,c,_),{u_matrix:d,u_opacity:o}),_h={fillExtrusion:d=>({u_matrix:new s.UniformMatrix4f(d),u_lightpos:new s.Uniform3f(d),u_lightintensity:new s.Uniform1f(d),u_lightcolor:new s.Uniform3f(d),u_vertical_gradient:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_edge_radius:new s.Uniform1f(d),u_ao:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_up_dir:new s.Uniform3f(d),u_height_lift:new s.Uniform1f(d)}),fillExtrusionPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_lightpos:new s.Uniform3f(d),u_lightintensity:new s.Uniform1f(d),u_lightcolor:new s.Uniform3f(d),u_vertical_gradient:new s.Uniform1f(d),u_height_factor:new s.Uniform1f(d),u_edge_radius:new s.Uniform1f(d),u_ao:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_up_dir:new s.Uniform3f(d),u_height_lift:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d)}),fill:d=>({u_matrix:new s.UniformMatrix4f(d)}),fillPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),fillOutline:d=>({u_matrix:new s.UniformMatrix4f(d),u_world:new s.Uniform2f(d)}),fillOutlinePattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_world:new s.Uniform2f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),circle:d=>({u_camera_to_center_distance:new s.Uniform1f(d),u_extrude_scale:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_up_dir:new s.Uniform3f(d)}),collisionBox:d=>({u_matrix:new s.UniformMatrix4f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_extrude_scale:new s.Uniform2f(d)}),collisionCircle:d=>({u_matrix:new s.UniformMatrix4f(d),u_inv_matrix:new s.UniformMatrix4f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_viewport_size:new s.Uniform2f(d)}),debug:d=>({u_color:new s.UniformColor(d),u_matrix:new s.UniformMatrix4f(d),u_overlay:new s.Uniform1i(d),u_overlay_scale:new s.Uniform1f(d)}),clippingMask:d=>({u_matrix:new s.UniformMatrix4f(d)}),heatmap:d=>({u_extrude_scale:new s.Uniform1f(d),u_intensity:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_up_dir:new s.Uniform3f(d)}),heatmapTexture:d=>({u_image:new s.Uniform1i(d),u_color_ramp:new s.Uniform1i(d),u_opacity:new s.Uniform1f(d)}),hillshade:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_latrange:new s.Uniform2f(d),u_light:new s.Uniform2f(d),u_shadow:new s.UniformColor(d),u_highlight:new s.UniformColor(d),u_accent:new s.UniformColor(d)}),hillshadePrepare:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_dimension:new s.Uniform2f(d),u_zoom:new s.Uniform1f(d),u_unpack:new s.Uniform4f(d)}),line:d=>({u_matrix:new s.UniformMatrix4f(d),u_pixels_to_tile_units:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_units_to_pixels:new s.Uniform2f(d),u_dash_image:new s.Uniform1i(d),u_gradient_image:new s.Uniform1i(d),u_image_height:new s.Uniform1f(d),u_texsize:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_alpha_discard_threshold:new s.Uniform1f(d),u_trim_offset:new s.Uniform2f(d)}),linePattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_texsize:new s.Uniform2f(d),u_pixels_to_tile_units:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_units_to_pixels:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_alpha_discard_threshold:new s.Uniform1f(d)}),raster:d=>({u_matrix:new s.UniformMatrix4f(d),u_tl_parent:new s.Uniform2f(d),u_scale_parent:new s.Uniform1f(d),u_fade_t:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_image0:new s.Uniform1i(d),u_image1:new s.Uniform1i(d),u_brightness_low:new s.Uniform1f(d),u_brightness_high:new s.Uniform1f(d),u_saturation_factor:new s.Uniform1f(d),u_contrast_factor:new s.Uniform1f(d),u_spin_weights:new s.Uniform3f(d),u_perspective_transform:new s.Uniform2f(d)}),symbolIcon:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_camera_forward:new s.Uniform3f(d),u_tile_matrix:new s.UniformMatrix4f(d),u_up_vector:new s.Uniform3f(d),u_ecef_origin:new s.Uniform3f(d),u_texture:new s.Uniform1i(d)}),symbolSDF:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_texture:new s.Uniform1i(d),u_gamma_scale:new s.Uniform1f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_camera_forward:new s.Uniform3f(d),u_tile_matrix:new s.UniformMatrix4f(d),u_up_vector:new s.Uniform3f(d),u_ecef_origin:new s.Uniform3f(d),u_is_halo:new s.Uniform1i(d)}),symbolTextAndIcon:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_texsize_icon:new s.Uniform2f(d),u_texture:new s.Uniform1i(d),u_texture_icon:new s.Uniform1i(d),u_gamma_scale:new s.Uniform1f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_is_halo:new s.Uniform1i(d)}),background:d=>({u_matrix:new s.UniformMatrix4f(d),u_opacity:new s.Uniform1f(d),u_color:new s.UniformColor(d)}),backgroundPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_opacity:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_pattern_tl:new s.Uniform2f(d),u_pattern_br:new s.Uniform2f(d),u_texsize:new s.Uniform2f(d),u_pattern_size:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),terrainRaster:rh,terrainDepth:rh,skybox:d=>({u_matrix:new s.UniformMatrix4f(d),u_sun_direction:new s.Uniform3f(d),u_cubemap:new s.Uniform1i(d),u_opacity:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d)}),skyboxGradient:d=>({u_matrix:new s.UniformMatrix4f(d),u_color_ramp:new s.Uniform1i(d),u_center_direction:new s.Uniform3f(d),u_radius:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d)}),skyboxCapture:d=>({u_matrix_3f:new s.UniformMatrix3f(d),u_sun_direction:new s.Uniform3f(d),u_sun_intensity:new s.Uniform1f(d),u_color_tint_r:new s.Uniform4f(d),u_color_tint_m:new s.Uniform4f(d),u_luminance:new s.Uniform1f(d)}),globeRaster:d=>({u_proj_matrix:new s.UniformMatrix4f(d),u_globe_matrix:new s.UniformMatrix4f(d),u_normalize_matrix:new s.UniformMatrix4f(d),u_merc_matrix:new s.UniformMatrix4f(d),u_zoom_transition:new s.Uniform1f(d),u_merc_center:new s.Uniform2f(d),u_image0:new s.Uniform1i(d),u_grid_matrix:new s.UniformMatrix3f(d),u_skirt_height:new s.Uniform1f(d),u_frustum_tl:new s.Uniform3f(d),u_frustum_tr:new s.Uniform3f(d),u_frustum_br:new s.Uniform3f(d),u_frustum_bl:new s.Uniform3f(d),u_globe_pos:new s.Uniform3f(d),u_globe_radius:new s.Uniform1f(d),u_viewport:new s.Uniform2f(d)}),globeAtmosphere:d=>({u_frustum_tl:new s.Uniform3f(d),u_frustum_tr:new s.Uniform3f(d),u_frustum_br:new s.Uniform3f(d),u_frustum_bl:new s.Uniform3f(d),u_horizon:new s.Uniform1f(d),u_transition:new s.Uniform1f(d),u_fadeout_range:new s.Uniform1f(d),u_color:new s.Uniform4f(d),u_high_color:new s.Uniform4f(d),u_space_color:new s.Uniform4f(d),u_star_intensity:new s.Uniform1f(d),u_star_density:new s.Uniform1f(d),u_star_size:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d),u_horizon_angle:new s.Uniform1f(d),u_rotation_matrix:new s.UniformMatrix4f(d)})};let _c;function ul(d,o,c,f,_,v,E){const S=d.context,C=S.gl,z=d.transform,P=d.useProgram("collisionBox"),D=[];let j=0,$=0;for(let Q=0;Q0){const we=s.create(),Be=_e;s.mul(we,de.placementInvProjMatrix,z.glCoordMatrix),s.mul(we,we,de.placementViewportMatrix),D.push({circleArray:Ze,circleOffset:$,transform:Be,invTransform:we,projection:de.getProjection()}),j+=Ze.length/4,$=j}Te&&(d.terrain&&d.terrain.setupElevationDraw(pe,P),P.draw(S,C.LINES,s.DepthMode.disabled,s.StencilMode.disabled,d.colorModeForRenderPass(),s.CullFaceMode.disabled,dh(_e,z,pe,de.getProjection()),c.id,Te.layoutVertexBuffer,Te.indexBuffer,Te.segments,null,z.zoom,null,[Te.collisionVertexBuffer,Te.collisionVertexBufferExt]))}if(!E||!D.length)return;const W=d.useProgram("collisionCircle"),Z=new s.StructArrayLayout2f1f2i16;Z.resize(4*j),Z._trim();let H=0;for(const Q of D)for(let he=0;he=0&&(W[Q.associatedIconIndex]={x:we,y:Be,z:Ce,angle:Ge})}else br(de,j)}if(P){$.clear();const J=d.icon.placedSymbolArray;for(let Q=0;Qwe.sortKey-Be.sortKey);for(const we of _e){const Be=we.state;if(d.terrain&&d.terrain.setupElevationDraw(Be.tile,Be.program,{useDepthForOcclusion:!ye,labelPlaneMatrixInv:Be.labelPlaneMatrixInv}),j.activeTexture.set($.TEXTURE0),Be.atlasTexture.bind(Be.atlasInterpolation,$.CLAMP_TO_EDGE),Be.atlasTextureIcon&&(j.activeTexture.set($.TEXTURE1),Be.atlasTextureIcon&&Be.atlasTextureIcon.bind(Be.atlasInterpolationIcon,$.CLAMP_TO_EDGE)),Be.isSDF){const Ce=Be.uniformValues;Be.hasHalo&&(Ce.u_is_halo=1,hl(Be.buffers,we.segments,c,d,Be.program,he,P,D,Ce)),Ce.u_is_halo=0}hl(Be.buffers,we.segments,c,d,Be.program,he,P,D,Be.uniformValues)}}function hl(d,o,c,f,_,v,E,S,C){const z=f.context,P=[d.dynamicLayoutVertexBuffer,d.opacityVertexBuffer,d.globeExtVertexBuffer];_.draw(z,z.gl.TRIANGLES,v,E,S,s.CullFaceMode.disabled,C,c.id,d.layoutVertexBuffer,d.indexBuffer,o,c.paint,f.transform.zoom,d.programConfigurations.get(c.id),P)}function Rp(d,o,c,f,_,v,E){const S=d.context.gl,C=c.paint.get("fill-pattern"),z=C&&C.constantOr(1);let P,D,j,$,W;E?(D=z&&!c.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",P=S.LINES):(D=z?"fillPattern":"fill",P=S.TRIANGLES);for(const Z of f){const H=o.getTile(Z);if(z&&!H.patternsLoaded())continue;const O=H.getBucket(c);if(!O)continue;d.prepareDrawTile();const G=O.programConfigurations.get(c.id),J=d.useProgram(D,G);z&&(d.context.activeTexture.set(S.TEXTURE0),H.imageAtlasTexture.bind(S.LINEAR,S.CLAMP_TO_EDGE),G.updatePaintBuffers());const Q=C.constantOr(null);if(Q&&H.imageAtlas){const pe=H.imageAtlas.patternPositions[Q.toString()];pe&&G.setConstantPatternPositions(pe)}const he=d.translatePosMatrix(Z.projMatrix,H,c.paint.get("fill-translate"),c.paint.get("fill-translate-anchor"));if(E){$=O.indexBuffer2,W=O.segments2;const pe=d.terrain&&d.terrain.renderingToTexture?d.terrain.drapeBufferSize:[S.drawingBufferWidth,S.drawingBufferHeight];j=D==="fillOutlinePattern"&&z?jg(he,d,H,pe):Ug(he,pe)}else $=O.indexBuffer,W=O.segments,j=z?ch(he,d,H):fs(he);d.prepareDrawProgram(d.context,J,Z.toUnwrapped()),J.draw(d.context,P,_,d.stencilModeForClipping(Z),v,s.CullFaceMode.disabled,j,c.id,O.layoutVertexBuffer,$,W,c.paint,d.transform.zoom,G)}}function yc(d,o,c,f,_,v,E){const S=d.context,C=S.gl,z=d.transform,P=c.paint.get("fill-extrusion-pattern"),D=P.constantOr(1),j=c.paint.get("fill-extrusion-opacity"),$=[c.paint.get("fill-extrusion-ambient-occlusion-intensity"),c.paint.get("fill-extrusion-ambient-occlusion-radius")],W=c.layout.get("fill-extrusion-edge-radius"),Z=W>0&&!c.paint.get("fill-extrusion-rounded-roof"),H=Z?0:W,O=z.projection.name==="globe"?s.fillExtrusionHeightLift():0,G=z.projection.name==="globe",J=G?s.globeToMercatorTransition(z.zoom):0,Q=[s.mercatorXfromLng(z.center.lng),s.mercatorYfromLat(z.center.lat)],he=[];G&&he.push("PROJECTION_GLOBE_VIEW"),$[0]>0&&he.push("FAUX_AO"),Z&&he.push("ZERO_ROOF_RADIUS");for(const pe of f){const de=o.getTile(pe),ye=de.getBucket(c);if(!ye||ye.projection.name!==z.projection.name)continue;const _e=ye.programConfigurations.get(c.id),Te=d.useProgram(D?"fillExtrusionPattern":"fillExtrusion",_e,he);if(d.terrain){const Oe=d.terrain;if(d.style.terrainSetForDrapingOnly())Oe.setupElevationDraw(de,Te,{useMeterToDem:!0});else{if(!ye.enableTerrain)continue;if(Oe.setupElevationDraw(de,Te,{useMeterToDem:!0}),Dp(S,o,pe,ye,c,Oe),!ye.centroidVertexBuffer){const He=Te.attributes.a_centroid_pos;He!==void 0&&C.vertexAttrib2f(He,0,0)}}}D&&(d.context.activeTexture.set(C.TEXTURE0),de.imageAtlasTexture.bind(C.LINEAR,C.CLAMP_TO_EDGE),_e.updatePaintBuffers());const Ze=P.constantOr(null);if(Ze&&de.imageAtlas){const Oe=de.imageAtlas.patternPositions[Ze.toString()];Oe&&_e.setConstantPatternPositions(Oe)}const we=d.translatePosMatrix(pe.projMatrix,de,c.paint.get("fill-extrusion-translate"),c.paint.get("fill-extrusion-translate-anchor")),Be=z.projection.createInversionMatrix(z,pe.canonical),Ce=c.paint.get("fill-extrusion-vertical-gradient"),qe=D?Ip(we,d,Ce,j,$,H,pe,de,O,J,Q,Be):lh(we,d,Ce,j,$,H,pe,O,J,Q,Be);d.prepareDrawProgram(S,Te,pe.toUnwrapped());const Ee=[];d.terrain&&Ee.push(ye.centroidVertexBuffer),G&&Ee.push(ye.layoutVertexExtBuffer),Te.draw(S,S.gl.TRIANGLES,_,v,E,s.CullFaceMode.backCCW,qe,c.id,ye.layoutVertexBuffer,ye.indexBuffer,ye.segments,c.paint,d.transform.zoom,_e,Ee)}}function Dp(d,o,c,f,_,v){const E=[O=>{let G=O.canonical.x-1,J=O.wrap;return G<0&&(G=(1<{let G=O.canonical.x+1,J=O.wrap;return G===1<new s.OverscaledTileID(O.overscaledZ,O.wrap,O.canonical.z,O.canonical.x,(O.canonical.y===0?1<new s.OverscaledTileID(O.overscaledZ,O.wrap,O.canonical.z,O.canonical.x,O.canonical.y===(1<{const G=o.getSource().minzoom,J=he=>{const pe=o.getTileByID(he);if(pe&&pe.hasData())return pe.getBucket(_)},Q=[0,-1,1];for(const he of Q){if(O.overscaledZ+he(C[0]=Math.min(O.min.y,G.min.y),C[1]=Math.max(O.max.y,G.max.y),C[2]=s.EXTENT-G.min.x>O.max.x?G.min.x-s.EXTENT:O.max.x,C),P=(O,G)=>(C[0]=Math.min(O.min.x,G.min.x),C[1]=Math.max(O.max.x,G.max.x),C[2]=s.EXTENT-G.min.y>O.max.y?G.min.y-s.EXTENT:O.max.y,C),D=[(O,G)=>z(O,G),(O,G)=>z(G,O),(O,G)=>P(O,G),(O,G)=>P(G,O)],j=new s.Point(0,0);let $,W,Z;const H=(O,G,J,Q,he)=>{const pe=[[Q?J:O,Q?O:J,0],[Q?J:G,Q?G:J,0]],de=he<0?s.EXTENT+he:he,ye=[Q?de:(O+G)/2,Q?(O+G)/2:de,0];return J===0&&he<0||J!==0&&he>0?v.getForTilePoints(Z,[ye],!0,W):pe.push(ye),v.getForTilePoints(c,pe,!0,$),Math.max(pe[0][2],pe[1][2],ye[2])/v.exaggeration()};for(let O=0;O<4;O++){const G=(O<2?1:5)-O,J=f.borders[O];if(J.length===0)continue;const Q=Z=E[O](c),he=S(Q);if(!(he&&he instanceof s.FillExtrusionBucket&&he.enableTerrain)||f.borderDoneWithNeighborZ[O]===he.canonical.z&&he.borderDoneWithNeighborZ[G]===f.canonical.z||(W=v.findDEMTileFor(Q),!W||!W.dem))continue;if(!$){const _e=v.findDEMTileFor(c);if(!_e||!_e.dem)return;$=_e}const pe=he.borders[G];let de=0;const ye=he.borderDoneWithNeighborZ[G]!==f.canonical.z;if(f.canonical.z===he.canonical.z){for(let _e=0;_eZe[0]+3));)ye&&he.encodeCentroid(void 0,we,!1),de++;if(we&&deZe[1]-3)&&(Ce++,++de!==pe.length);)we=he.featuresOnBorder[pe[de]];if(we=he.featuresOnBorder[pe[Be]],Te.intersectsCount()>1||we.intersectsCount()>1||Ce!==1){Ce!==1&&(de=Be),f.encodeCentroid(void 0,Te,!1),ye&&he.encodeCentroid(void 0,we,!1);continue}const qe=D[O](Te,we),Ee=O%2?s.EXTENT-1:0;j.x=H(qe[0],Math.min(s.EXTENT-1,qe[1]),Ee,O<2,qe[2]),j.y=0,f.encodeCentroid(j,Te,!1),ye&&he.encodeCentroid(j,we,!1)}else f.encodeCentroid(void 0,Te,!1)}f.borderDoneWithNeighborZ[O]=he.canonical.z,f.needsCentroidUpdate=!0,ye&&(he.borderDoneWithNeighborZ[G]=f.canonical.z,he.needsCentroidUpdate=!0)}else{for(const _e of J)f.encodeCentroid(void 0,f.featuresOnBorder[_e],!1);if(ye){for(const _e of pe)he.encodeCentroid(void 0,he.featuresOnBorder[_e],!1);he.borderDoneWithNeighborZ[G]=f.canonical.z,he.needsCentroidUpdate=!0}f.borderDoneWithNeighborZ[O]=he.canonical.z,f.needsCentroidUpdate=!0}}(f.needsCentroidUpdate||!f.centroidVertexBuffer&&f.centroidVertexArray.length!==0)&&f.uploadCentroid(d)}const Qs=new s.Color(1,0,0,1),Zg=new s.Color(0,1,0,1),Wg=new s.Color(0,0,1,1),Hg=new s.Color(1,0,1,1),Xg=new s.Color(0,1,1,1);function Kg(d,o,c){const f=d.context,_=d.transform,v=f.gl,E=_.projection.name==="globe",S=E?["PROJECTION_GLOBE_VIEW"]:null;let C=c.projMatrix;if(E&&s.globeToMercatorTransition(_.zoom)>0){const Te=s.transitionTileAABBinECEF(c.canonical,_),Ze=s.globeDenormalizeECEF(Te);C=s.multiply(new Float32Array(16),_.globeMatrix,Ze),s.multiply(C,_.projMatrix,C)}const z=d.useProgram("debug",null,S),P=o.getTileByID(c.key);d.terrain&&d.terrain.setupElevationDraw(P,z);const D=s.DepthMode.disabled,j=s.StencilMode.disabled,$=d.colorModeForRenderPass(),W="$debug";f.activeTexture.set(v.TEXTURE0),d.emptyTexture.bind(v.LINEAR,v.CLAMP_TO_EDGE),E?P._makeGlobeTileDebugBuffers(d.context,_):P._makeDebugTileBoundsBuffers(d.context,_.projection);const Z=P._tileDebugBuffer||d.debugBuffer,H=P._tileDebugIndexBuffer||d.debugIndexBuffer,O=P._tileDebugSegments||d.debugSegments;z.draw(f,v.LINE_STRIP,D,j,$,s.CullFaceMode.disabled,fc(C,s.Color.red),W,Z,H,O,null,null,null,[P._globeTileDebugBorderBuffer]);const G=P.latestRawTileData,J=Math.floor((G&&G.byteLength||0)/1024),Q=o.getTile(c).tileSize,he=512/Math.min(Q,512)*(c.overscaledZ/_.zoom)*.5;let pe=c.canonical.toString();c.overscaledZ!==c.canonical.z&&(pe+=` => ${c.overscaledZ}`),pe+=` ${J}kb`,function(Te,Ze){Te.initDebugOverlayCanvas();const we=Te.debugOverlayCanvas,Be=Te.context.gl,Ce=Te.debugOverlayCanvas.getContext("2d");Ce.clearRect(0,0,we.width,we.height),Ce.shadowColor="white",Ce.shadowBlur=2,Ce.lineWidth=1.5,Ce.strokeStyle="white",Ce.textBaseline="top",Ce.font="bold 36px Open Sans, sans-serif",Ce.fillText(Ze,5,5),Ce.strokeText(Ze,5,5),Te.debugOverlayTexture.update(we),Te.debugOverlayTexture.bind(Be.LINEAR,Be.CLAMP_TO_EDGE)}(d,pe);const de=P._tileDebugTextBuffer||d.debugBuffer,ye=P._tileDebugTextIndexBuffer||d.quadTriangleIndexBuffer,_e=P._tileDebugTextSegments||d.debugSegments;z.draw(f,v.TRIANGLES,D,j,s.ColorMode.alphaBlended,s.CullFaceMode.disabled,fc(C,s.Color.transparent,he),W,de,ye,_e,null,null,null,[P._globeTileDebugTextBuffer])}function Op(d,o,c,f){ea(d,0,o+c/2,d.transform.width,c,f)}function vc(d,o,c,f){ea(d,o-c/2,0,c,d.transform.height,f)}function ea(d,o,c,f,_,v){const E=d.context,S=E.gl;S.enable(S.SCISSOR_TEST),S.scissor(o*s.exported.devicePixelRatio,c*s.exported.devicePixelRatio,f*s.exported.devicePixelRatio,_*s.exported.devicePixelRatio),E.clear({color:v}),S.disable(S.SCISSOR_TEST)}const Bp=s.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:Fp}=Bp;function uo(d,o,c,f){d.emplaceBack(o,c,f)}class xc{constructor(o){this.vertexArray=new s.StructArrayLayout3f12,this.indices=new s.StructArrayLayout3ui6,uo(this.vertexArray,-1,-1,1),uo(this.vertexArray,1,-1,1),uo(this.vertexArray,-1,1,1),uo(this.vertexArray,1,1,1),uo(this.vertexArray,-1,-1,-1),uo(this.vertexArray,1,-1,-1),uo(this.vertexArray,-1,1,-1),uo(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=o.createVertexBuffer(this.vertexArray,Fp),this.indexBuffer=o.createIndexBuffer(this.indices),this.segment=s.SegmentVector.simpleSegment(0,0,36,12)}}function sr(d,o,c,f,_,v){const E=d.gl,S=o.paint.get("sky-atmosphere-color"),C=o.paint.get("sky-atmosphere-halo-color"),z=o.paint.get("sky-atmosphere-sun-intensity"),P=((D,j,$,W,Z)=>({u_matrix_3f:D,u_sun_direction:j,u_sun_intensity:$,u_color_tint_r:[W.r,W.g,W.b,W.a],u_color_tint_m:[Z.r,Z.g,Z.b,Z.a],u_luminance:5e-5}))(s.fromMat4(s.create$1(),f),_,z,S,C);E.framebufferTexture2D(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.TEXTURE_CUBE_MAP_POSITIVE_X+v,o.skyboxTexture,0),c.draw(d,E.TRIANGLES,s.DepthMode.disabled,s.StencilMode.disabled,s.ColorMode.unblended,s.CullFaceMode.frontCW,P,"skyboxCapture",o.skyboxGeometry.vertexBuffer,o.skyboxGeometry.indexBuffer,o.skyboxGeometry.segment)}const dl=s.createLayout([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);class Np{constructor(o){const c=new s.StructArrayLayout5f20;c.emplaceBack(-1,1,1,0,0),c.emplaceBack(1,1,1,1,0),c.emplaceBack(1,-1,1,1,1),c.emplaceBack(-1,-1,1,0,1);const f=new s.StructArrayLayout3ui6;f.emplaceBack(0,1,2),f.emplaceBack(2,3,0),this.vertexBuffer=o.createVertexBuffer(c,dl.members),this.indexBuffer=o.createIndexBuffer(f),this.segments=s.SegmentVector.simpleSegment(0,0,4,2)}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy()}}const ms={symbol:function(d,o,c,f,_){if(d.renderPass!=="translucent")return;const v=s.StencilMode.disabled,E=d.colorModeForRenderPass();c.layout.get("text-variable-anchor")&&function(S,C,z,P,D,j,$){const W=C.transform,Z=D==="map",H=j==="map";for(const O of S){const G=P.getTile(O),J=G.getBucket(z);if(!J||!J.text||!J.text.segments.get().length)continue;const Q=s.evaluateSizeForZoom(J.textSizeData,W.zoom),he=En(O,J.getProjection(),W),pe=W.calculatePixelsToTileUnitsMatrix(G),de=Le(he,G.tileID.canonical,H,Z,W,J.getProjection(),pe),ye=z.layout.get("icon-text-fit")!=="none"&&J.hasIconData();if(Q){const _e=Math.pow(2,W.zoom-G.tileID.overscaledZ);qg(J,Z,H,$,s.symbolSize,W,de,O,_e,Q,ye)}}}(f,d,c,o,c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),_),c.paint.get("icon-opacity").constantOr(1)!==0&&Lp(d,o,c,f,!1,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),c.layout.get("icon-rotation-alignment"),c.layout.get("icon-pitch-alignment"),c.layout.get("icon-keep-upright"),v,E),c.paint.get("text-opacity").constantOr(1)!==0&&Lp(d,o,c,f,!0,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),c.layout.get("text-keep-upright"),v,E),o.map.showCollisionBoxes&&(ul(d,o,c,f,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),!0),ul(d,o,c,f,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),!1))},circle:function(d,o,c,f){if(d.renderPass!=="translucent")return;const _=c.paint.get("circle-opacity"),v=c.paint.get("circle-stroke-width"),E=c.paint.get("circle-stroke-opacity"),S=c.layout.get("circle-sort-key").constantOr(1)!==void 0;if(_.constantOr(1)===0&&(v.constantOr(1)===0||E.constantOr(1)===0))return;const C=d.context,z=C.gl,P=d.transform,D=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),j=s.StencilMode.disabled,$=d.colorModeForRenderPass(),W=P.projection.name==="globe",Z=[s.mercatorXfromLng(P.center.lng),s.mercatorYfromLat(P.center.lat)],H=[];for(let G=0;GG.sortKey-J.sortKey);const O={useDepthForOcclusion:!W};for(const G of H){const{programConfiguration:J,program:Q,layoutVertexBuffer:he,globeExtVertexBuffer:pe,indexBuffer:de,uniformValues:ye,tile:_e}=G.state,Te=G.segments;d.terrain&&d.terrain.setupElevationDraw(_e,Q,O),d.prepareDrawProgram(C,Q,_e.tileID.toUnwrapped()),Q.draw(C,z.TRIANGLES,D,j,$,s.CullFaceMode.disabled,ye,c.id,he,de,Te,c.paint,P.zoom,J,[pe])}},heatmap:function(d,o,c,f){if(c.paint.get("heatmap-opacity")!==0)if(d.renderPass==="offscreen"){const _=d.context,v=_.gl,E=s.StencilMode.disabled,S=new s.ColorMode([v.ONE,v.ONE],s.Color.transparent,[!0,!0,!0,!0]);(function($,W,Z,H){const O=$.gl,G=W.width*H,J=W.height*H;$.activeTexture.set(O.TEXTURE1),$.viewport.set([0,0,G,J]);let Q=Z.heatmapFbo;if(!Q||Q&&(Q.width!==G||Q.height!==J)){Q&&Q.destroy();const he=O.createTexture();O.bindTexture(O.TEXTURE_2D,he),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_WRAP_S,O.CLAMP_TO_EDGE),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_WRAP_T,O.CLAMP_TO_EDGE),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_MIN_FILTER,O.LINEAR),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_MAG_FILTER,O.LINEAR),Q=Z.heatmapFbo=$.createFramebuffer(G,J,!1),function(pe,de,ye,_e,Te,Ze){const we=pe.gl;we.texImage2D(we.TEXTURE_2D,0,pe.isWebGL2&&pe.extRenderToTextureHalfFloat?we.RGBA16F:we.RGBA,Te,Ze,0,we.RGBA,pe.extRenderToTextureHalfFloat?pe.isWebGL2?we.HALF_FLOAT:pe.extTextureHalfFloat.HALF_FLOAT_OES:we.UNSIGNED_BYTE,null),_e.colorAttachment.set(ye)}($,0,he,Q,G,J)}else O.bindTexture(O.TEXTURE_2D,Q.colorAttachment.get()),$.bindFramebuffer.set(Q.framebuffer)})(_,d,c,d.transform.projection.name==="globe"?.5:.25),_.clear({color:s.Color.transparent});const C=d.transform,z=C.projection.name==="globe",P=z?["PROJECTION_GLOBE_VIEW"]:null,D=z?s.CullFaceMode.frontCCW:s.CullFaceMode.disabled,j=[s.mercatorXfromLng(C.center.lng),s.mercatorYfromLat(C.center.lat)];for(let $=0;$({u_image:0,u_color_ramp:1,u_opacity:D.paint.get("heatmap-opacity")}))(0,v),v.id,_.viewportBuffer,_.quadTriangleIndexBuffer,_.viewportSegments,v.paint,_.transform.zoom)}(d,c))},line:function(d,o,c,f){if(d.renderPass!=="translucent")return;const _=c.paint.get("line-opacity"),v=c.paint.get("line-width");if(_.constantOr(1)===0||v.constantOr(1)===0)return;const E=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),S=d.colorModeForRenderPass(),C=d.terrain&&d.terrain.renderingToTexture?1:s.exported.devicePixelRatio,z=c.paint.get("line-dasharray"),P=z.constantOr(1),D=c.layout.get("line-cap"),j=c.paint.get("line-pattern"),$=j.constantOr(1),W=c.paint.get("line-gradient"),Z=$?"linePattern":"line",H=d.context,O=H.gl,G=(Q=>{const he=[];cl(Q)&&he.push("RENDER_LINE_DASH"),Q.paint.get("line-gradient")&&he.push("RENDER_LINE_GRADIENT");const pe=Q.paint.get("line-trim-offset");pe[0]===0&&pe[1]===0||he.push("RENDER_LINE_TRIM_OFFSET");const de=Q.paint.get("line-pattern").constantOr(1),ye=Q.paint.get("line-opacity").constantOr(1)!==1;return!de&&ye&&he.push("RENDER_LINE_ALPHA_DISCARD"),he})(c);let J=G.includes("RENDER_LINE_ALPHA_DISCARD");d.terrain&&d.terrain.clipOrMaskOverlapStencilType()&&(J=!1);for(const Q of f){const he=o.getTile(Q);if($&&!he.patternsLoaded())continue;const pe=he.getBucket(c);if(!pe)continue;d.prepareDrawTile();const de=pe.programConfigurations.get(c.id),ye=d.useProgram(Z,de,G),_e=j.constantOr(null);if(_e&&he.imageAtlas){const Oe=he.imageAtlas.patternPositions[_e.toString()];Oe&&de.setConstantPatternPositions(Oe)}const Te=z.constantOr(null),Ze=D.constantOr(null);if(!$&&Te&&Ze&&he.lineAtlas){const Oe=he.lineAtlas.getDash(Te,Ze);Oe&&de.setConstantPatternPositions(Oe)}let[we,Be]=c.paint.get("line-trim-offset");(Ze==="round"||Ze==="square")&&we!==Be&&(we===0&&(we-=1),Be===1&&(Be+=1));const Ce=d.terrain?Q.projMatrix:null,qe=$?ll(d,he,c,Ce,C):Gg(d,he,c,Ce,pe.lineClipsArray.length,C,[we,Be]);if(W){const Oe=pe.gradients[c.id];let He=Oe.texture;if(c.gradientVersion!==Oe.version){let Ge=256;if(c.stepInterpolant){const Xe=o.getSource().maxzoom,gt=Q.canonical.z===Xe?Math.ceil(1<{ye.draw(H,O.TRIANGLES,E,Oe,S,s.CullFaceMode.disabled,qe,c.id,pe.layoutVertexBuffer,pe.indexBuffer,pe.segments,c.paint,d.transform.zoom,de,[pe.layoutVertexBuffer2])};if(J){const Oe=d.stencilModeForClipping(Q).ref;Oe===0&&d.terrain&&H.clear({stencil:0});const He={func:O.EQUAL,mask:255};qe.u_alpha_discard_threshold=.8,Ee(new s.StencilMode(He,Oe,255,O.KEEP,O.KEEP,O.INVERT)),qe.u_alpha_discard_threshold=0,Ee(new s.StencilMode(He,Oe,255,O.KEEP,O.KEEP,O.KEEP))}else Ee(d.stencilModeForClipping(Q))}J&&(d.resetStencilClippingMasks(),d.terrain&&H.clear({stencil:0}))},fill:function(d,o,c,f){const _=c.paint.get("fill-color"),v=c.paint.get("fill-opacity");if(v.constantOr(1)===0)return;const E=d.colorModeForRenderPass(),S=c.paint.get("fill-pattern"),C=d.opaquePassEnabledForLayer()&&!S.constantOr(1)&&_.constantOr(s.Color.transparent).a===1&&v.constantOr(0)===1?"opaque":"translucent";if(d.renderPass===C){const z=d.depthModeForSublayer(1,d.renderPass==="opaque"?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly);Rp(d,o,c,f,z,E,!1)}if(d.renderPass==="translucent"&&c.paint.get("fill-antialias")){const z=d.depthModeForSublayer(c.getPaintProperty("fill-outline-color")?2:0,s.DepthMode.ReadOnly);Rp(d,o,c,f,z,E,!0)}},"fill-extrusion":function(d,o,c,f){const _=c.paint.get("fill-extrusion-opacity");if(_!==0&&d.renderPass==="translucent"){const v=new s.DepthMode(d.context.gl.LEQUAL,s.DepthMode.ReadWrite,d.depthRangeFor3D);if(_!==1||c.paint.get("fill-extrusion-pattern").constantOr(1))yc(d,o,c,f,v,s.StencilMode.disabled,s.ColorMode.disabled),yc(d,o,c,f,v,d.stencilModeFor3D(),d.colorModeForRenderPass()),d.resetStencilClippingMasks();else{const E=d.colorModeForRenderPass();yc(d,o,c,f,v,s.StencilMode.disabled,E)}}},hillshade:function(d,o,c,f){if(d.renderPass!=="offscreen"&&d.renderPass!=="translucent")return;const _=d.context,v=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),E=d.colorModeForRenderPass(),S=d.terrain&&d.terrain.renderingToTexture,[C,z]=d.renderPass!=="translucent"||S?[{},f]:d.stencilConfigForOverlap(f);for(const P of z){const D=o.getTile(P);if(D.needsHillshadePrepare&&d.renderPass==="offscreen")Sp(d,D,c,v,s.StencilMode.disabled,E);else if(d.renderPass==="translucent"){const j=S&&d.terrain?d.terrain.stencilModeForRTTOverlap(P):C[P.overscaledZ];Tp(d,P,D,c,v,j,E)}}_.viewport.set([0,0,d.width,d.height]),d.resetStencilClippingMasks()},raster:function(d,o,c,f,_,v){if(d.renderPass!=="translucent"||c.paint.get("raster-opacity")===0||!f.length)return;const E=d.context,S=E.gl,C=o.getSource(),z=d.useProgram("raster"),P=d.colorModeForRenderPass(),D=d.terrain&&d.terrain.renderingToTexture,[j,$]=C instanceof Rt||D?[{},f]:d.stencilConfigForOverlap(f),W=$[$.length-1].overscaledZ,Z=!d.options.moving;for(const H of $){const O=D?s.DepthMode.disabled:d.depthModeForSublayer(H.overscaledZ-W,c.paint.get("raster-opacity")===1?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly,S.LESS),G=H.toUnwrapped(),J=o.getTile(H);if(D&&(!J||!J.hasData()))continue;const Q=D?H.projMatrix:d.transform.calculateProjMatrix(G,Z),he=d.terrain&&D?d.terrain.stencilModeForRTTOverlap(H):j[H.overscaledZ],pe=v?0:c.paint.get("raster-fade-duration");J.registerFadeDuration(pe);const de=o.findLoadedParent(H,0),ye=oh(J,de,o,d.transform,pe);let _e,Te;d.terrain&&d.terrain.prepareDrawTile();const Ze=c.paint.get("raster-resampling")==="nearest"?S.NEAREST:S.LINEAR;E.activeTexture.set(S.TEXTURE0),J.texture.bind(Ze,S.CLAMP_TO_EDGE),E.activeTexture.set(S.TEXTURE1),de?(de.texture.bind(Ze,S.CLAMP_TO_EDGE),_e=Math.pow(2,de.tileID.overscaledZ-J.tileID.overscaledZ),Te=[J.tileID.canonical.x*_e%1,J.tileID.canonical.y*_e%1]):J.texture.bind(Ze,S.CLAMP_TO_EDGE),J.texture.useMipmap&&E.extTextureFilterAnisotropic&&d.transform.pitch>20&&S.texParameterf(S.TEXTURE_2D,E.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,E.extTextureFilterAnisotropicMax);const we=fh(Q,Te||[0,0],_e||1,ye,c,C instanceof Rt?C.perspectiveTransform:[0,0]);if(d.prepareDrawProgram(E,z,G),C instanceof Rt)C.boundsBuffer&&C.boundsSegments&&z.draw(E,S.TRIANGLES,O,s.StencilMode.disabled,P,s.CullFaceMode.disabled,we,c.id,C.boundsBuffer,d.quadTriangleIndexBuffer,C.boundsSegments);else{const{tileBoundsBuffer:Be,tileBoundsIndexBuffer:Ce,tileBoundsSegments:qe}=d.getTileBoundsBuffers(J);z.draw(E,S.TRIANGLES,O,he,P,s.CullFaceMode.disabled,we,c.id,Be,Ce,qe)}}d.resetStencilClippingMasks()},background:function(d,o,c,f){const _=c.paint.get("background-color"),v=c.paint.get("background-opacity");if(v===0)return;const E=d.context,S=E.gl,C=d.transform,z=C.tileSize,P=c.paint.get("background-pattern");if(d.isPatternMissing(P))return;const D=!P&&_.a===1&&v===1&&d.opaquePassEnabledForLayer()?"opaque":"translucent";if(d.renderPass!==D)return;const j=s.StencilMode.disabled,$=d.depthModeForSublayer(0,D==="opaque"?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly),W=d.colorModeForRenderPass(),Z=d.useProgram(P?"backgroundPattern":"background");let H,O=f;O||(H=d.getBackgroundTiles(),O=Object.values(H).map(G=>G.tileID)),P&&(E.activeTexture.set(S.TEXTURE0),d.imageManager.bind(d.context));for(const G of O){const J=G.toUnwrapped(),Q=f?G.projMatrix:d.transform.calculateProjMatrix(J);d.prepareDrawTile();const he=o?o.getTile(G):H?H[G.key]:new s.Tile(G,z,C.zoom,d),pe=P?$g(Q,v,d,P,{tileID:G,tileSize:z}):gh(Q,v,_);d.prepareDrawProgram(E,Z,J);const{tileBoundsBuffer:de,tileBoundsIndexBuffer:ye,tileBoundsSegments:_e}=d.getTileBoundsBuffers(he);Z.draw(E,S.TRIANGLES,$,j,W,s.CullFaceMode.disabled,pe,c.id,de,ye,_e)}},sky:function(d,o,c){const f=d.transform,_=f.projection.name==="mercator"||f.projection.name==="globe"?1:s.smoothstep(7,8,f.zoom),v=c.paint.get("sky-opacity")*_;if(v===0)return;const E=d.context,S=c.paint.get("sky-type"),C=new s.DepthMode(E.gl.LEQUAL,s.DepthMode.ReadOnly,[0,1]),z=d.frameCounter/1e3%1;S==="atmosphere"?d.renderPass==="offscreen"?c.needsSkyboxCapture(d)&&(function(P,D,j,$){const W=P.context,Z=W.gl;let H=D.skyboxFbo;if(!H){H=D.skyboxFbo=W.createFramebuffer(32,32,!1),D.skyboxGeometry=new xc(W),D.skyboxTexture=W.gl.createTexture(),Z.bindTexture(Z.TEXTURE_CUBE_MAP,D.skyboxTexture),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_WRAP_S,Z.CLAMP_TO_EDGE),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_WRAP_T,Z.CLAMP_TO_EDGE),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_MIN_FILTER,Z.LINEAR),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_MAG_FILTER,Z.LINEAR);for(let Q=0;Q<6;++Q)Z.texImage2D(Z.TEXTURE_CUBE_MAP_POSITIVE_X+Q,0,Z.RGBA,32,32,0,Z.RGBA,Z.UNSIGNED_BYTE,null)}W.bindFramebuffer.set(H.framebuffer),W.viewport.set([0,0,32,32]);const O=D.getCenter(P,!0),G=P.useProgram("skyboxCapture"),J=new Float64Array(16);s.identity(J),s.rotateY(J,J,.5*-Math.PI),sr(W,D,G,J,O,0),s.identity(J),s.rotateY(J,J,.5*Math.PI),sr(W,D,G,J,O,1),s.identity(J),s.rotateX(J,J,.5*-Math.PI),sr(W,D,G,J,O,2),s.identity(J),s.rotateX(J,J,.5*Math.PI),sr(W,D,G,J,O,3),s.identity(J),sr(W,D,G,J,O,4),s.identity(J),s.rotateY(J,J,Math.PI),sr(W,D,G,J,O,5),W.viewport.set([0,0,P.width,P.height])}(d,c),c.markSkyboxValid(d)):d.renderPass==="sky"&&function(P,D,j,$,W){const Z=P.context,H=Z.gl,O=P.transform,G=P.useProgram("skybox");Z.activeTexture.set(H.TEXTURE0),H.bindTexture(H.TEXTURE_CUBE_MAP,D.skyboxTexture);const J=((Q,he,pe,de,ye)=>({u_matrix:Q,u_sun_direction:he,u_cubemap:0,u_opacity:de,u_temporal_offset:ye}))(O.skyboxMatrix,D.getCenter(P,!1),0,$,W);P.prepareDrawProgram(Z,G),G.draw(Z,H.TRIANGLES,j,s.StencilMode.disabled,P.colorModeForRenderPass(),s.CullFaceMode.backCW,J,"skybox",D.skyboxGeometry.vertexBuffer,D.skyboxGeometry.indexBuffer,D.skyboxGeometry.segment)}(d,c,C,v,z):S==="gradient"&&d.renderPass==="sky"&&function(P,D,j,$,W){const Z=P.context,H=Z.gl,O=P.transform,G=P.useProgram("skyboxGradient");D.skyboxGeometry||(D.skyboxGeometry=new xc(Z)),Z.activeTexture.set(H.TEXTURE0);let J=D.colorRampTexture;J||(J=D.colorRampTexture=new s.Texture(Z,D.colorRamp,H.RGBA)),J.bind(H.LINEAR,H.CLAMP_TO_EDGE);const Q=((he,pe,de,ye,_e)=>({u_matrix:he,u_color_ramp:0,u_center_direction:pe,u_radius:s.degToRad(de),u_opacity:ye,u_temporal_offset:_e}))(O.skyboxMatrix,D.getCenter(P,!1),D.paint.get("sky-gradient-radius"),$,W);P.prepareDrawProgram(Z,G),G.draw(Z,H.TRIANGLES,j,s.StencilMode.disabled,P.colorModeForRenderPass(),s.CullFaceMode.backCW,Q,"skyboxGradient",D.skyboxGeometry.vertexBuffer,D.skyboxGeometry.indexBuffer,D.skyboxGeometry.segment)}(d,c,C,v,z)},debug:function(d,o,c){for(let f=0;f_)return void(this.transform.fogCullDistSq=null);const v=f+.78*(_-f);this.transform.fogCullDistSq=v*v}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(o,c){if(this.width=o*s.exported.devicePixelRatio,this.height=c*s.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const f of this.style.order)this.style._layers[f].resize()}setup(){const o=this.context,c=new s.StructArrayLayout2i4;c.emplaceBack(0,0),c.emplaceBack(s.EXTENT,0),c.emplaceBack(0,s.EXTENT),c.emplaceBack(s.EXTENT,s.EXTENT),this.tileExtentBuffer=o.createVertexBuffer(c,s.posAttributes.members),this.tileExtentSegments=s.SegmentVector.simpleSegment(0,0,4,2);const f=new s.StructArrayLayout2i4;f.emplaceBack(0,0),f.emplaceBack(s.EXTENT,0),f.emplaceBack(0,s.EXTENT),f.emplaceBack(s.EXTENT,s.EXTENT),this.debugBuffer=o.createVertexBuffer(f,s.posAttributes.members),this.debugSegments=s.SegmentVector.simpleSegment(0,0,4,5);const _=new s.StructArrayLayout2i4;_.emplaceBack(-1,-1),_.emplaceBack(1,-1),_.emplaceBack(-1,1),_.emplaceBack(1,1),this.viewportBuffer=o.createVertexBuffer(_,s.posAttributes.members),this.viewportSegments=s.SegmentVector.simpleSegment(0,0,4,2);const v=new s.StructArrayLayout4i8;v.emplaceBack(0,0,0,0),v.emplaceBack(s.EXTENT,0,s.EXTENT,0),v.emplaceBack(0,s.EXTENT,0,s.EXTENT),v.emplaceBack(s.EXTENT,s.EXTENT,s.EXTENT,s.EXTENT),this.mercatorBoundsBuffer=o.createVertexBuffer(v,s.boundsAttributes.members),this.mercatorBoundsSegments=s.SegmentVector.simpleSegment(0,0,4,2);const E=new s.StructArrayLayout3ui6;E.emplaceBack(0,1,2),E.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=o.createIndexBuffer(E);const S=new s.StructArrayLayout1ui2;for(const z of[0,1,3,2,0])S.emplaceBack(z);this.debugIndexBuffer=o.createIndexBuffer(S),this.emptyTexture=new s.Texture(o,new s.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),o.gl.RGBA),this.identityMat=s.create();const C=this.context.gl;this.stencilClearMode=new s.StencilMode({func:C.ALWAYS,mask:0},0,255,C.ZERO,C.ZERO,C.ZERO),this.loadTimeStamps.push(s.window.performance.now()),this.atmosphereBuffer=new Np(this.context)}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(o){return o._makeTileBoundsBuffers(this.context,this.transform.projection),o._tileBoundsBuffer?{tileBoundsBuffer:o._tileBoundsBuffer,tileBoundsIndexBuffer:o._tileBoundsIndexBuffer,tileBoundsSegments:o._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const o=this.context,c=o.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(o,c.TRIANGLES,s.DepthMode.disabled,this.stencilClearMode,s.ColorMode.disabled,s.CullFaceMode.disabled,sl(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(o,c,f){if(!c||this.currentStencilSource===c.id||!o.isTileClipped()||!f||f.length===0)return;if(this._tileClippingMaskIDs&&!this.terrain){let S=!1;for(const C of f)if(this._tileClippingMaskIDs[C.key]===void 0){S=!0;break}if(!S)return}this.currentStencilSource=c.id;const _=this.context,v=_.gl;this.nextStencilID+f.length>256&&this.clearStencil(),_.setColorMode(s.ColorMode.disabled),_.setDepthMode(s.DepthMode.disabled);const E=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const S of f){const C=c.getTile(S),z=this._tileClippingMaskIDs[S.key]=this.nextStencilID++,{tileBoundsBuffer:P,tileBoundsIndexBuffer:D,tileBoundsSegments:j}=this.getTileBoundsBuffers(C);E.draw(_,v.TRIANGLES,s.DepthMode.disabled,new s.StencilMode({func:v.ALWAYS,mask:0},z,255,v.KEEP,v.KEEP,v.REPLACE),s.ColorMode.disabled,s.CullFaceMode.disabled,sl(S.projMatrix),"$clipping",P,D,j)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const o=this.nextStencilID++,c=this.context.gl;return new s.StencilMode({func:c.NOTEQUAL,mask:255},o,255,c.KEEP,c.KEEP,c.REPLACE)}stencilModeForClipping(o){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(o);const c=this.context.gl;return new s.StencilMode({func:c.EQUAL,mask:255},this._tileClippingMaskIDs[o.key],0,c.KEEP,c.KEEP,c.REPLACE)}stencilConfigForOverlap(o){const c=this.context.gl,f=o.sort((E,S)=>S.overscaledZ-E.overscaledZ),_=f[f.length-1].overscaledZ,v=f[0].overscaledZ-_+1;if(v>1){this.currentStencilSource=void 0,this.nextStencilID+v>256&&this.clearStencil();const E={};for(let S=0;S=0;this.currentLayer--){const z=this.style._layers[f[this.currentLayer]],P=o._getLayerSourceCache(z);if(z.isSky())continue;const D=P?E[P.id]:void 0;this._renderTileClippingMasks(z,P,D),this.renderLayer(this,P,z,D)}if(this.style.fog&&this.transform.projection.supportsFog&&function(z,P){const D=z.context,j=D.gl,$=z.transform,W=new s.DepthMode(j.LEQUAL,s.DepthMode.ReadOnly,[0,1]),Z=z.useProgram("globeAtmosphere",null,$.projection.name==="globe"?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"]),H=s.globeToMercatorTransition($.zoom),O=P.properties.get("color").toArray01(),G=P.properties.get("high-color").toArray01(),J=P.properties.get("space-color").toArray01PremultipliedAlpha(),Q=s.identity$1([]);s.rotateY$1(Q,Q,-s.degToRad($._center.lng)),s.rotateX$1(Q,Q,s.degToRad($._center.lat)),s.rotateZ$1(Q,Q,$.angle),s.rotateX$1(Q,Q,-$._pitch);const he=s.fromQuat(new Float32Array(16),Q),pe=s.mapValue(P.properties.get("star-intensity"),0,1,0,.25),de=5e-4,ye=s.mapValue(P.properties.get("horizon-blend"),0,1,de,.25),_e=s.globeUseCustomAntiAliasing(z,D,$)&&ye===de?$.worldSize/(2*Math.PI*1.025)-1:$.globeRadius,Te=z.frameCounter/1e3%1,Ze=s.length($.globeCenterInViewSpace),we=Math.sqrt(Math.pow(Ze,2)-Math.pow(_e,2)),Be=Math.acos(we/Ze),Ce=((Ee,Oe,He,Ge,Xe,gt,Et,dt,wt,Ut,Ot,mt,en,rn)=>({u_frustum_tl:Ee,u_frustum_tr:Oe,u_frustum_br:He,u_frustum_bl:Ge,u_horizon:Xe,u_transition:gt,u_fadeout_range:Et,u_color:dt,u_high_color:wt,u_space_color:Ut,u_star_intensity:Ot,u_star_size:5*s.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:mt,u_horizon_angle:en,u_rotation_matrix:rn}))($.frustumCorners.TL,$.frustumCorners.TR,$.frustumCorners.BR,$.frustumCorners.BL,$.frustumCorners.horizon,H,ye,O,G,J,pe,Te,Be,he);z.prepareDrawProgram(D,Z);const qe=z.atmosphereBuffer;qe&&Z.draw(D,j.TRIANGLES,W,s.StencilMode.disabled,s.ColorMode.alphaBlended,s.CullFaceMode.backCW,Ce,"skybox",qe.vertexBuffer,qe.indexBuffer,qe.segments)}(this,this.style.fog),this.renderPass="sky",(s.globeToMercatorTransition(this.transform.zoom)>0||this.transform.projection.name!=="globe")&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const D=o._getLayerSourceCache(P);D&&!P.isHidden(this.transform.zoom)&&(!z||z.getSource().maxzoom0?c.pop():null}isPatternMissing(o){return o===null||o!==void 0&&!this.imageManager.getPattern(o.toString())}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture}currentGlobalDefines(){const o=this.terrain&&this.terrain.renderingToTexture,c=this.terrain&&this.terrain.exaggeration()===0,f=this.style&&this.style.fog,_=[];return this.terrainRenderModeElevated()&&_.push("TERRAIN"),this.transform.projection.name==="globe"&&_.push("GLOBE"),c&&_.push("ZERO_EXAGGERATION"),f&&!o&&f.getOpacity(this.transform.pitch)!==0&&_.push("FOG"),o&&_.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&_.push("OVERDRAW_INSPECTOR"),_}useProgram(o,c,f){this.cache=this.cache||{};const _=f||[],v=this.currentGlobalDefines().concat(_),E=Zt.cacheKey(th[o],o,v,c);return this.cache[E]||(this.cache[E]=new Zt(this.context,o,th[o],c,_h[o],v)),this.cache[E]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const o=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(o.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=s.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new s.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy()}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile()}prepareDrawProgram(o,c,f){if(this.terrain&&this.terrain.renderingToTexture)return;const _=this.style.fog;if(_){const v=_.getOpacity(this.transform.pitch),E=((S,C,z,P,D,j,$,W,Z,H,O)=>{const G=S.transform,J=C.properties.get("color").toArray01();J[3]=P;const Q=S.frameCounter/1e3%1;return{u_fog_matrix:z?G.calculateFogTileMatrix(z):S.identityMat,u_fog_range:C.getFovAdjustedRange(G._fov),u_fog_color:J,u_fog_horizon_blend:C.properties.get("horizon-blend"),u_fog_temporal_offset:Q,u_frustum_tl:D,u_frustum_tr:j,u_frustum_br:$,u_frustum_bl:W,u_globe_pos:Z,u_globe_radius:H,u_viewport:O,u_globe_transition:s.globeToMercatorTransition(G.zoom),u_is_globe:+(G.projection.name==="globe")}})(this,_,f,v,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*s.exported.devicePixelRatio,this.transform.height*s.exported.devicePixelRatio]);c.setFogUniformValues(o,E)}}setTileLoadedFlag(o){this.tileLoaded=o}saveCanvasCopy(){const o=this.canvasCopy();o&&(this.frameCopies.push(o),this.tileLoaded=!1)}canvasCopy(){const o=this.context.gl,c=o.createTexture();return o.bindTexture(o.TEXTURE_2D,c),o.copyTexImage2D(o.TEXTURE_2D,0,o.RGBA,0,0,o.drawingBufferWidth,o.drawingBufferHeight,0),c}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;const o=this.style&&this.style.fog;return!!o&&o.getOpacity(this.transform.pitch)!==0}getBackgroundTiles(){const o=this._backgroundTiles,c=this._backgroundTiles={},f=this.transform.coveringTiles({tileSize:512});for(const _ of f)c[_.key]=o[_.key]||new s.Tile(_,512,this.transform.tileZoom,this);return c}clearBackgroundTiles(){this._backgroundTiles={}}}class wc{constructor(o=0,c=0,f=0,_=0){if(isNaN(o)||o<0||isNaN(c)||c<0||isNaN(f)||f<0||isNaN(_)||_<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=o,this.bottom=c,this.left=f,this.right=_}interpolate(o,c,f){return c.top!=null&&o.top!=null&&(this.top=s.number(o.top,c.top,f)),c.bottom!=null&&o.bottom!=null&&(this.bottom=s.number(o.bottom,c.bottom,f)),c.left!=null&&o.left!=null&&(this.left=s.number(o.left,c.left,f)),c.right!=null&&o.right!=null&&(this.right=s.number(o.right,c.right,f)),this}getCenter(o,c){const f=s.clamp((this.left+o-this.right)/2,0,o),_=s.clamp((this.top+c-this.bottom)/2,0,c);return new s.Point(f,_)}equals(o){return this.top===o.top&&this.bottom===o.bottom&&this.left===o.left&&this.right===o.right}clone(){return new wc(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function bc(d,o){const c=s.getColumn(d,3);s.fromQuat(d,o),s.setColumn(d,3,c)}function Wt(d,o){const c=s.identity$1([]);return s.rotateZ$1(c,c,-o),s.rotateX$1(c,c,-d),c}function pl(d,o){const c=[d[0],d[1],0],f=[o[0],o[1],0];if(s.length(c)>=1e-15){const E=s.normalize([],c);s.scale$2(f,E,s.dot(f,E)),o[0]=f[0],o[1]=f[1]}const _=s.cross([],o,d);if(s.len(_)<1e-15)return null;const v=Math.atan2(-_[1],_[0]);return Wt(Math.atan2(Math.sqrt(d[0]*d[0]+d[1]*d[1]),-d[2]),v)}class Up{constructor(o,c){this.position=o,this.orientation=c}get position(){return this._position}set position(o){if(o){const c=o instanceof s.MercatorCoordinate?o:new s.MercatorCoordinate(o[0],o[1],o[2]);this._renderWorldCopies&&(c.x=s.wrap(c.x,0,1)),this._position=c}else this._position=null}lookAtPoint(o,c){if(this.orientation=null,!this.position)return;const f=this.position,_=this._elevation?this._elevation.getAtPointOrZero(s.MercatorCoordinate.fromLngLat(o)):0,v=s.MercatorCoordinate.fromLngLat(o,_),E=[v.x-f.x,v.y-f.y,v.z-f.z];c||(c=[0,0,1]),c[2]=Math.abs(c[2]),this.orientation=pl(E,c)}setPitchBearing(o,c){this.orientation=Wt(s.degToRad(o),s.degToRad(-c))}}class Ec{constructor(o,c){this._transform=s.identity([]),this.orientation=c,this.position=o}get mercatorPosition(){const o=this.position;return new s.MercatorCoordinate(o[0],o[1],o[2])}get position(){const o=s.getColumn(this._transform,3);return[o[0],o[1],o[2]]}set position(o){var c;o&&s.setColumn(this._transform,3,[(c=o)[0],c[1],c[2],1])}get orientation(){return this._orientation}set orientation(o){this._orientation=o||s.identity$1([]),o&&bc(this._transform,this._orientation)}getPitchBearing(){const o=this.forward(),c=this.right();return{bearing:Math.atan2(-c[1],c[0]),pitch:Math.atan2(Math.sqrt(o[0]*o[0]+o[1]*o[1]),-o[2])}}setPitchBearing(o,c){this._orientation=Wt(o,c),bc(this._transform,this._orientation)}forward(){const o=s.getColumn(this._transform,2);return[-o[0],-o[1],-o[2]]}up(){const o=s.getColumn(this._transform,1);return[-o[0],-o[1],-o[2]]}right(){const o=s.getColumn(this._transform,0);return[o[0],o[1],o[2]]}getCameraToWorld(o,c){const f=new Float64Array(16);return s.invert(f,this.getWorldToCamera(o,c)),f}getWorldToCameraPosition(o,c,f){const _=this.position;s.scale$2(_,_,-o);const v=new Float64Array(16);return s.fromScaling(v,[f,f,f]),s.translate(v,v,_),v[10]*=c,v}getWorldToCamera(o,c){const f=new Float64Array(16),_=new Float64Array(4),v=this.position;return s.conjugate(_,this._orientation),s.scale$2(v,v,-o),s.fromQuat(f,_),s.translate(f,f,v),f[1]*=-1,f[5]*=-1,f[9]*=-1,f[13]*=-1,f[8]*=c,f[9]*=c,f[10]*=c,f[11]*=c,f}getCameraToClipPerspective(o,c,f,_){const v=new Float64Array(16);return s.perspective(v,o,c,f,_),v}getDistanceToElevation(o,c=!1){const f=o===0?0:s.mercatorZfromAltitude(o,c?s.latFromMercatorY(this.position[1]):this.position[1]),_=this.forward();return(f-this.position[2])/_[2]}clone(){return new Ec([...this.position],[...this.orientation])}}function na(d,o){const c=Tc(d.projection,d.zoom,d.width,d.height),f=function(v,E,S,C,z){const P=new s.LngLat(S.lng-180*ho,S.lat),D=new s.LngLat(S.lng+180*ho,S.lat),j=v.project(P.lng,P.lat),$=v.project(D.lng,D.lat),W=-Math.atan2($.y-j.y,$.x-j.x),Z=s.MercatorCoordinate.fromLngLat(S);Z.y=s.clamp(Z.y,-1+ho,1-ho);const H=Z.toLngLat(),O=v.project(H.lng,H.lat),G=s.MercatorCoordinate.fromLngLat(H);G.x+=ho;const J=G.toLngLat(),Q=v.project(J.lng,J.lat),he=Sc(Q.x-O.x,Q.y-O.y,W),pe=s.MercatorCoordinate.fromLngLat(H);pe.y+=ho;const de=pe.toLngLat(),ye=v.project(de.lng,de.lat),_e=Sc(ye.x-O.x,ye.y-O.y,W),Te=Math.abs(he.x)/Math.abs(_e.y),Ze=s.identity([]);s.rotateZ(Ze,Ze,-W*(1-(z?0:C)));const we=s.identity([]);return s.scale(we,we,[1,1-(1-Te)*C,1]),we[4]=-_e.x/_e.y*C,s.rotateZ(we,we,W),s.multiply(we,Ze,we),we}(d.projection,0,d.center,c,o),_=jp(d);return s.scale(f,f,[_,_,1]),f}function jp(d){const o=d.projection,c=Tc(d.projection,d.zoom,d.width,d.height),f=Vp(o,d.center),_=Vp(o,s.LngLat.convert(o.center));return Math.pow(2,f*c+(1-c)*_)}function Tc(d,o,c,f,_=1/0){const v=d.range;if(!v)return 0;const E=Math.min(_,Math.max(c,f)),S=Math.log(E/1024)/Math.LN2;return s.smoothstep(v[0]+S,v[1]+S,o)}const ho=1/4e4;function Vp(d,o){const c=s.clamp(o.lat,-s.MAX_MERCATOR_LATITUDE,s.MAX_MERCATOR_LATITUDE),f=new s.LngLat(o.lng-180*ho,c),_=new s.LngLat(o.lng+180*ho,c),v=d.project(f.lng,c),E=d.project(_.lng,c),S=s.MercatorCoordinate.fromLngLat(f),C=s.MercatorCoordinate.fromLngLat(_),z=E.x-v.x,P=E.y-v.y,D=C.x-S.x,j=C.y-S.y,$=Math.sqrt((D*D+j*j)/(z*z+P*P));return Math.log($)/Math.LN2}function Sc(d,o,c){const f=Math.cos(c),_=Math.sin(c);return{x:d*f-o*_,y:d*_+o*f}}class ia{constructor(o,c,f,_,v,E,S){this.tileSize=512,this._renderWorldCopies=v===void 0||v,this._minZoom=o||0,this._maxZoom=c||22,this._minPitch=f??0,this._maxPitch=_??60,this.setProjection(E),this.setMaxBounds(S),this.width=0,this.height=0,this._center=new s.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new wc,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Ec,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1}clone(){const o=new ia(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return o._elevation=this._elevation,o._centerAltitude=this._centerAltitude,o._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,o.tileSize=this.tileSize,o.mercatorFromTransition=this.mercatorFromTransition,o.width=this.width,o.height=this.height,o.cameraElevationReference=this.cameraElevationReference,o._center=this._center,o._setZoom(this.zoom),o._seaLevelZoom=this._seaLevelZoom,o.angle=this.angle,o._fov=this._fov,o._pitch=this._pitch,o._nearZ=this._nearZ,o._farZ=this._farZ,o._averageElevation=this._averageElevation,o._unmodified=this._unmodified,o._edgeInsets=this._edgeInsets.clone(),o._camera=this._camera.clone(),o._calcMatrices(),o.freezeTileCoverage=this.freezeTileCoverage,o.frustumCorners=this.frustumCorners,o}get elevation(){return this._elevation}set elevation(o){this._elevation!==o&&(this._elevation=o,this._updateCameraOnTerrain(),this._calcMatrices())}updateElevation(o,c=!1){const f=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(this._seaLevelZoom==null||f)&&this._updateCameraOnTerrain(),(o||f)&&this._constrainCamera(c),this._calcMatrices()}getProjection(){return s.pick(this.projection,["name","center","parallels"])}setProjection(o){this.projectionOptions=o||{name:"mercator"};const c=this.projection?this.getProjection():void 0;this.projection=s.getProjection(this.projectionOptions);const f=!M(c,this.getProjection());return f&&this._calcMatrices(),this.mercatorFromTransition=!1,f}setMercatorFromTransition(){const o=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:"mercator"},this.projection=s.getProjection({name:"mercator"});const c=o!==this.projection.name;return c&&this._calcMatrices(),c}get minZoom(){return this._minZoom}set minZoom(o){this._minZoom!==o&&(this._minZoom=o,this.zoom=Math.max(this.zoom,o))}get maxZoom(){return this._maxZoom}set maxZoom(o){this._maxZoom!==o&&(this._maxZoom=o,this.zoom=Math.min(this.zoom,o))}get minPitch(){return this._minPitch}set minPitch(o){this._minPitch!==o&&(this._minPitch=o,this.pitch=Math.max(this.pitch,o))}get maxPitch(){return this._maxPitch}set maxPitch(o){this._maxPitch!==o&&(this._maxPitch=o,this.pitch=Math.min(this.pitch,o))}get renderWorldCopies(){return this._renderWorldCopies&&this.projection.supportsWorldCopies===!0}set renderWorldCopies(o){o===void 0?o=!0:o===null&&(o=!1),this._renderWorldCopies=o}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){const o=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(o))}get cameraWorldSize(){const o=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(o))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return s.mercatorZfromAltitude(this.center.lat,this.cameraWorldSizeForFog)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.Point(this.width,this.height)}get bearing(){return s.wrap(this.rotation,-180,180)}set bearing(o){this.rotation=o}get rotation(){return-this.angle/Math.PI*180}set rotation(o){const c=-o*Math.PI/180;var f;this.angle!==c&&(this._unmodified=!1,this.angle=c,this._calcMatrices(),this.rotationMatrix=(f=new s.ARRAY_TYPE(4),s.ARRAY_TYPE!=Float32Array&&(f[1]=0,f[2]=0),f[0]=1,f[3]=1,f),function(_,v,E){var S=v[0],C=v[1],z=v[2],P=v[3],D=Math.sin(E),j=Math.cos(E);_[0]=S*j+z*D,_[1]=C*j+P*D,_[2]=S*-D+z*j,_[3]=C*-D+P*j}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(o){const c=s.clamp(o,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==c&&(this._unmodified=!1,this._pitch=c,this._calcMatrices())}get aspect(){return this.width/this.height}get fov(){return this._fov/Math.PI*180}get fovX(){return this._fov}get fovY(){const o=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/o)}set fov(o){o=Math.max(.01,Math.min(60,o)),this._fov!==o&&(this._unmodified=!1,this._fov=s.degToRad(o),this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(o){this._averageElevation=o,this._calcFogMatrices(),this._distanceTileDataCache={}}get zoom(){return this._zoom}set zoom(o){const c=Math.min(Math.max(o,this.minZoom),this.maxZoom);this._zoom!==c&&(this._unmodified=!1,this._setZoom(c),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices())}_setZoom(o){this._zoom=o,this.scale=this.zoomScale(o),this.tileZoom=Math.floor(o),this.zoomFraction=o-this.tileZoom}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const o=this._elevation;this._centerAltitude=o.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=o.exaggeration(),this._updateSeaLevelZoom()}_updateSeaLevelZoom(){this._centerAltitudeValidForExaggeration!==void 0&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize))}sampleAverageElevation(){if(!this._elevation)return 0;const o=this._elevation,c=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],f=this.horizonLineFromTop();let _=0,v=0;for(let E=0;Eo.maxzoom&&(c=o.maxzoom);const E=this.locationCoordinate(this.center),S=this.center.lat,C=1<{const He=new s.MercatorCoordinate(Ee.x+25e-6,Ee.y,Ee.z),Ge=new s.MercatorCoordinate(Ee.x,Ee.y+25e-6,Ee.z),Xe=Ee.toLngLat(),gt=He.toLngLat(),Et=Ge.toLngLat(),dt=this.locationCoordinate(Xe),wt=this.locationCoordinate(gt),Ut=this.locationCoordinate(Et),Ot=Math.hypot(wt.x-dt.x,wt.y-dt.y),mt=Math.hypot(Ut.x-dt.x,Ut.y-dt.y);return Math.sqrt(Ot*mt)*he/25e-6},de=Ee=>{const Oe=J,He=Q;return{aabb:s.tileAABB(this,C,0,0,0,Ee,He,Oe,this.projection),zoom:0,x:0,y:0,minZ:He,maxZ:Oe,wrap:Ee,fullyVisible:!1}},ye=[];let _e=[];const Te=c,Ze=o.reparseOverscaled?f:c,we=Ee=>Ee*Ee,Be=we((Z-this._centerAltitude)*W),Ce=Ee=>{if(!this._elevation||!Ee.tileID||!v)return;const Oe=this._elevation.getMinMaxForTile(Ee.tileID),He=Ee.aabb;Oe?(He.min[2]=Oe.min,He.max[2]=Oe.max,He.center[2]=(He.min[2]+He.max[2])/2):(Ee.shouldSplit=qe(Ee),Ee.shouldSplit||(He.min[2]=He.max[2]=He.center[2]=this._centerAltitude))},qe=Ee=>{if(Ee.zoom=.9)return!0}else if(_&&(Ge=we(Ee.aabb.distanceZ(H)*W)),this.projection.isReprojectedInTileSpace&&f<=5){const dt=Math.pow(2,Ee.zoom),wt=pe(new s.MercatorCoordinate((Ee.x+.5)/dt,(Ee.y+.5)/dt));Xe=wt>.85?1:wt}const gt=Oe*Oe+He*He+Ge,Et=we((1<{if(wt*we(.707)0;){const Ee=ye.pop(),Oe=Ee.x,He=Ee.y;let Ge=Ee.fullyVisible;if(!Ge){const Xe=Ee.aabb.intersects(j);if(Xe===0)continue;Ge=Xe===2}if(Ee.zoom!==Te&&qe(Ee))for(let Xe=0;Xe<4;Xe++){const gt=(Oe<<1)+Xe%2,Et=(He<<1)+(Xe>>1),dt={aabb:v?Ee.aabb.quadrant(Xe):s.tileAABB(this,C,Ee.zoom+1,gt,Et,Ee.wrap,Ee.minZ,Ee.maxZ,this.projection),zoom:Ee.zoom+1,x:gt,y:Et,wrap:Ee.wrap,fullyVisible:Ge,tileID:void 0,shouldSplit:void 0,minZ:Ee.minZ,maxZ:Ee.maxZ};_&&!P&&(dt.tileID=new s.OverscaledTileID(Ee.zoom+1===Te?Ze:Ee.zoom+1,Ee.wrap,Ee.zoom+1,gt,Et),Ce(dt)),ye.push(dt)}else{const Xe=Ee.zoom===Te?Ze:Ee.zoom;if(o.minzoom&&o.minzoom>Xe)continue;const gt=z[0]-(.5+Oe+(Ee.wrap<{const Ge=[0,0,0,1],Xe=[s.EXTENT,s.EXTENT,0,1],gt=this.calculateFogTileMatrix(He.tileID.toUnwrapped());s.transformMat4$1(Ge,Ge,gt),s.transformMat4$1(Xe,Xe,gt);const Et=s.getAABBPointSquareDist(Ge,Xe);if(Et===0)return!0;let dt=!1;const wt=this._elevation;if(wt&&Et>Ee&&Oe!==0){const Ut=this.calculateProjMatrix(He.tileID.toUnwrapped());let Ot;o.isTerrainDEM||(Ot=wt.getMinMaxForTile(He.tileID)),Ot||(Ot={min:Q,max:J});const mt=s.furthestTileCorner(this.rotation),en=[mt[0]*s.EXTENT,mt[1]*s.EXTENT,Ot.max];s.transformMat4(en,en,Ut),dt=(1-en[1])*this.height*.5Ee.distanceSq-Oe.distanceSq).map(Ee=>Ee.tileID)}resize(o,c){this.width=o,this.height=c,this.pixelsToGLUnits=[2/o,-2/c],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(o){return Math.pow(2,o)}scaleZoom(o){return Math.log(o)/Math.LN2}project(o){const c=s.clamp(o.lat,-s.MAX_MERCATOR_LATITUDE,s.MAX_MERCATOR_LATITUDE),f=this.projection.project(o.lng,c);return new s.Point(f.x*this.worldSize,f.y*this.worldSize)}unproject(o){return this.projection.unproject(o.x/this.worldSize,o.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/s.mercatorZfromAltitude(1,this.center.lat)/this.worldSize}setLocationAtPoint(o,c){let f,_;const v=this.centerPoint;if(this.projection.name==="globe"){const S=this.worldSize;f=(c.x-v.x)/S,_=(c.y-v.y)/S}else{const S=this.pointCoordinate(c),C=this.pointCoordinate(v);f=S.x-C.x,_=S.y-C.y}const E=this.locationCoordinate(o);this.setLocation(new s.MercatorCoordinate(E.x-f,E.y-_))}setLocation(o){this.center=this.coordinateLocation(o),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(o){return this.projection.locationPoint(this,o)}locationPoint3D(o){return this.projection.locationPoint(this,o,!0)}pointLocation(o){return this.coordinateLocation(this.pointCoordinate(o))}pointLocation3D(o){return this.coordinateLocation(this.pointCoordinate3D(o))}locationCoordinate(o,c){const f=c?s.mercatorZfromAltitude(c,o.lat):void 0,_=this.projection.project(o.lng,o.lat);return new s.MercatorCoordinate(_.x,_.y,f)}coordinateLocation(o){return this.projection.unproject(o.x,o.y)}pointRayIntersection(o,c){const f=c??this._centerAltitude,_=[o.x,o.y,0,1],v=[o.x,o.y,1,1];s.transformMat4$1(_,_,this.pixelMatrixInverse),s.transformMat4$1(v,v,this.pixelMatrixInverse);const E=v[3];s.scale$1(_,_,1/_[3]),s.scale$1(v,v,1/E);const S=_[2],C=v[2];return{p0:_,p1:v,t:S===C?0:(f-S)/(C-S)}}screenPointToMercatorRay(o){const c=[o.x,o.y,0,1],f=[o.x,o.y,1,1];return s.transformMat4$1(c,c,this.pixelMatrixInverse),s.transformMat4$1(f,f,this.pixelMatrixInverse),s.scale$1(c,c,1/c[3]),s.scale$1(f,f,1/f[3]),c[2]=s.mercatorZfromAltitude(c[2],this._center.lat)*this.worldSize,f[2]=s.mercatorZfromAltitude(f[2],this._center.lat)*this.worldSize,s.scale$1(c,c,1/this.worldSize),s.scale$1(f,f,1/this.worldSize),new s.Ray([c[0],c[1],c[2]],s.normalize([],s.sub([],f,c)))}rayIntersectionCoordinate(o){const{p0:c,p1:f,t:_}=o,v=s.mercatorZfromAltitude(c[2],this._center.lat),E=s.mercatorZfromAltitude(f[2],this._center.lat);return new s.MercatorCoordinate(s.number(c[0],f[0],_)/this.worldSize,s.number(c[1],f[1],_)/this.worldSize,s.number(v,E,_))}pointCoordinate(o,c=this._centerAltitude){return this.projection.pointCoordinate(this,o.x,o.y,c)}pointCoordinate3D(o){if(!this.elevation)return this.pointCoordinate(o);let c=this.projection.pointCoordinate3D(this,o.x,o.y);if(c)return new s.MercatorCoordinate(c[0],c[1],c[2]);let f=0,_=this.horizonLineFromTop();if(o.y>_)return this.pointCoordinate(o);const v=.02*_,E=o.clone();for(let S=0;S<10&&_-f>v;S++){E.y=s.number(f,_,.66);const C=this.projection.pointCoordinate3D(this,E.x,E.y);C?(_=E.y,c=C):f=E.y}return c?new s.MercatorCoordinate(c[0],c[1],c[2]):this.pointCoordinate(o)}isPointAboveHorizon(o){return this.projection.isPointAboveHorizon(this,o)}isPointOnSurface(o){if(o.y<0||o.y>this.height||o.x<0||o.x>this.width)return!1;if(this.elevation||this.zoom>=s.GLOBE_ZOOM_THRESHOLD_MAX)return!this.isPointAboveHorizon(o);const c=this.pointCoordinate(o);return c.y>=0&&c.y<=1}_coordinatePoint(o,c){const f=c&&this.elevation?this.elevation.getAtPointOrZero(o,this._centerAltitude):this._centerAltitude,_=[o.x*this.worldSize,o.y*this.worldSize,f+o.toAltitude(),1];return s.transformMat4$1(_,_,this.pixelMatrix),_[3]>0?new s.Point(_[0]/_[3],_[1]/_[3]):new s.Point(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){const{top:o,left:c}=this._edgeInsets,f=this.height-this._edgeInsets.bottom,_=this.width-this._edgeInsets.right,v=this.pointLocation3D(new s.Point(c,o)),E=this.pointLocation3D(new s.Point(_,o)),S=this.pointLocation3D(new s.Point(_,f)),C=this.pointLocation3D(new s.Point(c,f));let z=Math.min(v.lng,E.lng,S.lng,C.lng),P=Math.max(v.lng,E.lng,S.lng,C.lng),D=Math.min(v.lat,E.lat,S.lat,C.lat),j=Math.max(v.lat,E.lat,S.lat,C.lat);const $=Math.pow(2,-this.zoom)/16*270,W=this.projection.name==="globe"?1:4,Z=(H,O,G,J,Q)=>{const he=(H+G)/2,pe=(O+J)/2,de=new s.Point(he,pe),{lng:ye,lat:_e}=this.pointLocation3D(de),Te=Math.max(0,z-ye,D-_e,ye-P,_e-j);z=Math.min(z,ye),P=Math.max(P,ye),D=Math.min(D,_e),j=Math.max(j,_e),(Q$)&&(Z(H,O,he,pe,Q+1),Z(he,pe,G,J,Q+1))};if(Z(c,o,_,o,1),Z(_,o,_,f,1),Z(_,f,c,f,1),Z(c,f,c,o,1),this.projection.name==="globe"){const[H,O]=s.polesInViewport(this);H?(j=90,P=180,z=-180):O&&(D=-90,P=180,z=-180)}return new s.LngLatBounds(new s.LngLat(z,D),new s.LngLat(P,j))}_getBoundsRectangular(o,c){const{top:f,left:_}=this._edgeInsets,v=this.height-this._edgeInsets.bottom,E=this.width-this._edgeInsets.right,S=new s.Point(_,f),C=new s.Point(E,f),z=new s.Point(E,v),P=new s.Point(_,v);let D=this.pointCoordinate(S,o),j=this.pointCoordinate(C,o);const $=this.pointCoordinate(z,c),W=this.pointCoordinate(P,c),Z=(H,O)=>(O.y-H.y)/(O.x-H.x);return D.y>1&&j.y>=0?D=new s.MercatorCoordinate((1-W.y)/Z(W,D)+W.x,1):D.y<0&&j.y<=1&&(D=new s.MercatorCoordinate(-W.y/Z(W,D)+W.x,0)),j.y>1&&D.y>=0?j=new s.MercatorCoordinate((1-$.y)/Z($,j)+$.x,1):j.y<0&&D.y<=1&&(j=new s.MercatorCoordinate(-$.y/Z($,j)+$.x,0)),new s.LngLatBounds().extend(this.coordinateLocation(D)).extend(this.coordinateLocation(j)).extend(this.coordinateLocation(W)).extend(this.coordinateLocation($))}_getBoundsRectangularTerrain(){const o=this.elevation;if(!o.visibleDemTiles.length||o.isUsingMockSource())return this._getBoundsRectangular(0,0);const c=o.visibleDemTiles.reduce((f,_)=>{if(_.dem){const v=_.dem.tree;f.min=Math.min(f.min,v.minimums[0]),f.max=Math.max(f.max,v.maximums[0])}return f},{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(c.min*o.exaggeration(),c.max*o.exaggeration())}getBounds(){return this.projection.name==="mercator"||this.projection.name==="equirectangular"?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(o=!0){const c=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,f=this.height/2-c*(1-this._horizonShift);return o?Math.max(0,f):f}getMaxBounds(){return this.maxBounds}setMaxBounds(o){this.maxBounds=o,this.minLat=-s.MAX_MERCATOR_LATITUDE,this.maxLat=s.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,o&&(this.minLat=o.getSouth(),this.maxLat=o.getNorth(),this.minLng=o.getWest(),this.maxLng=o.getEast(),this.maxLngD&&(S=D-z),D-P$&&(E=$-C),$-j.5?J-1:J,Q>.5?Q-1:Q,0]),this.alignedProjMatrix=he,S=s.create(),s.scale(S,S,[this.width/2,-this.height/2,1]),s.translate(S,S,[1,-1,0]),this.labelPlaneMatrix=S,S=s.create(),s.scale(S,S,[1,-1,1]),s.translate(S,S,[-1,-1,0]),s.scale(S,S,[2/this.width,2/this.height,1]),this.glCoordMatrix=S,this.pixelMatrix=s.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},S=s.invert(new Float64Array(16),this.pixelMatrix),!S)throw new Error("failed to invert matrix");if(this.pixelMatrixInverse=S,this.projection.name==="globe"||this.mercatorFromTransition){this.globeMatrix=s.calculateGlobeMatrix(this);const pe=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=s.transformMat4(pe,pe,v),this.globeRadius=this.worldSize/2/Math.PI-1}else this.globeMatrix=S;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};const o=this.cameraWorldSizeForFog,c=this.cameraPixelsPerMeter,f=this._camera.position,_=1/this.height/this._pixelsPerMercatorPixel,v=[o,o,c];s.scale$2(v,v,_),s.scale$2(f,f,-1),s.multiply$2(f,f,v);const E=s.create();s.translate(E,E,f),s.scale(E,E,v),this.mercatorFogMatrix=E,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(o,c,_)}_computeCameraPosition(o){const c=(o=o||this.pixelsPerMeter)/this.pixelsPerMeter,f=this._camera.forward(),_=this.point,v=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*c-o/this.worldSize*this._centerAltitude;return[_.x/this.worldSize-f[0]*v,_.y/this.worldSize-f[1]*v,o/this.worldSize*this._centerAltitude-f[2]*v]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(o){const c=this._maxCameraBoundsDistance()*Math.cos(this._pitch),f=this._camera.position[2],_=o[2];let v=1;this.projection.wrap&&(this.center=this.center.wrap()),_>0&&(v=Math.min((c-f)/_,1)),this._camera.position=s.scaleAndAdd([],this._camera.position,o,v),this._updateStateFromCamera()}_updateStateFromCamera(){const o=this._camera.position,c=this._camera.forward(),{pitch:f,bearing:_}=this._camera.getPitchBearing(),v=s.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,E=this._mercatorZfromZoom(this._maxZoom)*Math.cos(s.degToRad(this._maxPitch)),S=Math.max((o[2]-v)/Math.cos(f),E),C=this._zoomFromMercatorZ(S);s.scaleAndAdd(o,o,c,S),this._pitch=s.clamp(f,s.degToRad(this.minPitch),s.degToRad(this.maxPitch)),this.angle=s.wrap(_,-Math.PI,Math.PI),this._setZoom(s.clamp(C,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new s.MercatorCoordinate(o[0],o[1],o[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(o){return Math.pow(2,o)*this.tileSize}_mercatorZfromZoom(o){return this.cameraToCenterDistance/this._worldSizeFromZoom(o)}_minimumHeightOverTerrain(){const o=Math.min((this._seaLevelZoom!=null?this._seaLevelZoom:this._zoom)+4,this._maxZoom);return this._mercatorZfromZoom(o)}_zoomFromMercatorZ(o){return this.scaleZoom(this.cameraToCenterDistance/(o*this.tileSize))}zoomFromMercatorZAdjusted(o){let c=0,f=s.GLOBE_ZOOM_THRESHOLD_MAX,_=0,v=1/0;for(;f-c>1e-6&&f>c;){const E=c+.5*(f-c),S=this.tileSize*Math.pow(2,E),C=this.getCameraToCenterDistance(this.projection,E,S),z=this.scaleZoom(C/(o*this.tileSize)),P=Math.abs(E-z);Pz||j.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+s.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new s.Point(0,0),new s.Point(this.width,this.height))}zoomDeltaToMovement(o,c){const f=s.length(s.sub([],this._camera.position,o)),_=this._zoomFromMercatorZ(f)+c;return f-this._mercatorZfromZoom(_)}getCameraPoint(){if(this.projection.name==="globe"){const o=function([c,f,_],v){const E=[c,f,_,1];s.transformMat4$1(E,E,v);const S=E[3]=Math.max(E[3],1e-6);return E[0]/=S,E[1]/=S,E[2]/=S,E}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new s.Point(o[0],o[1])}{const o=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.Point(0,o))}}getCameraToCenterDistance(o,c=this.zoom,f=this.worldSize){const _=Tc(o,c,this.width,this.height,1024),v=o.pixelSpaceConversion(this.center.lat,f,_);return .5/Math.tan(.5*this._fov)*this.height*v}getWorldToCameraMatrix(){const o=this._camera.getWorldToCamera(this.worldSize,this.projection.zAxisUnit==="meters"?this.pixelsPerMeter:1);return this.projection.name==="globe"&&s.multiply(o,o,this.globeMatrix),o}}function ra(d,o){let c=!1,f=null;const _=()=>{f=null,c&&(d(),f=setTimeout(_,o),c=!1)};return()=>(c=!0,f||_(),f)}class xh{constructor(o){this._hashName=o&&encodeURIComponent(o),s.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=ra(this._updateHashUnthrottled.bind(this),300)}addTo(o){return this._map=o,s.window.addEventListener("hashchange",this._onHashChange,!1),o.on("moveend",this._updateHash),this}remove(){return this._map?(this._map.off("moveend",this._updateHash),s.window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const o=this._map;if(!o)return"";const c=fl(o);if(this._hashName){const f=this._hashName;let _=!1;const v=s.window.location.hash.slice(1).split("&").map(E=>{const S=E.split("=")[0];return S===f?(_=!0,`${S}=${c}`):E}).filter(E=>E);return _||v.push(`${f}=${c}`),`#${v.join("&")}`}return`#${c}`}_getCurrentHash(){const o=s.window.location.hash.replace("#","");if(this._hashName){let c;return o.split("&").map(f=>f.split("=")).forEach(f=>{f[0]===this._hashName&&(c=f)}),(c&&c[1]||"").split("/")}return o.split("/")}_onHashChange(){const o=this._map;if(!o)return!1;const c=this._getCurrentHash();if(c.length>=3&&!c.some(f=>isNaN(f))){const f=o.dragRotate.isEnabled()&&o.touchZoomRotate.isEnabled()?+(c[3]||0):o.getBearing();return o.jumpTo({center:[+c[2],+c[1]],zoom:+c[0],bearing:f,pitch:+(c[4]||0)}),!0}return!1}_updateHashUnthrottled(){const o=s.window.location.href.replace(/(#.+)?$/,this.getHashString());s.window.history.replaceState(s.window.history.state,null,o)}}function fl(d,o){const c=d.getCenter(),f=Math.round(100*d.getZoom())/100,_=Math.ceil((f*Math.LN2+Math.log(512/360/.5))/Math.LN10),v=Math.pow(10,_),E=Math.round(c.lng*v)/v,S=Math.round(c.lat*v)/v,C=d.getBearing(),z=d.getPitch();let P=o?`/${E}/${S}/${f}`:`${f}/${S}/${E}`;return(C||z)&&(P+="/"+Math.round(10*C)/10),z&&(P+=`/${Math.round(z)}`),P}const ml={linearity:.3,easing:s.bezier(0,0,.3,1)},Ac=s.extend({deceleration:2500,maxSpeed:1400},ml),Cc=s.extend({deceleration:20,maxSpeed:1400},ml),ct=s.extend({deceleration:1e3,maxSpeed:360},ml),Er=s.extend({deceleration:1e3,maxSpeed:90},ml);class Gp{constructor(o){this._map=o,this.clear()}clear(){this._inertiaBuffer=[]}record(o){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:s.exported.now(),settings:o})}_drainInertiaBuffer(){const o=this._inertiaBuffer,c=s.exported.now();for(;o.length>0&&c-o[0].time>160;)o.shift()}_onMoveEnd(o){if(this._map._prefersReducedMotion()||(this._drainInertiaBuffer(),this._inertiaBuffer.length<2))return;const c={zoom:0,bearing:0,pitch:0,pan:new s.Point(0,0),pinchAround:void 0,around:void 0};for(const{settings:v}of this._inertiaBuffer)c.zoom+=v.zoomDelta||0,c.bearing+=v.bearingDelta||0,c.pitch+=v.pitchDelta||0,v.panDelta&&c.pan._add(v.panDelta),v.around&&(c.around=v.around),v.pinchAround&&(c.pinchAround=v.pinchAround);const f=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,_={};if(c.pan.mag()){const v=_l(c.pan.mag(),f,s.extend({},Ac,o||{}));_.offset=c.pan.mult(v.amount/c.pan.mag()),_.center=this._map.transform.center,gl(_,v)}if(c.zoom){const v=_l(c.zoom,f,Cc);_.zoom=this._map.transform.zoom+v.amount,gl(_,v)}if(c.bearing){const v=_l(c.bearing,f,ct);_.bearing=this._map.transform.bearing+s.clamp(v.amount,-179,179),gl(_,v)}if(c.pitch){const v=_l(c.pitch,f,Er);_.pitch=this._map.transform.pitch+v.amount,gl(_,v)}if(_.zoom||_.bearing){const v=c.pinchAround===void 0?c.around:c.pinchAround;_.around=v?this._map.unproject(v):this._map.getCenter()}return this.clear(),_.noMoveStart=!0,_}}function gl(d,o){(!d.duration||d.durationc.unproject(C)),S=v.reduce((C,z,P,D)=>C.add(z.div(D.length)),new s.Point(0,0));super(o,{points:v,point:S,lngLats:E,lngLat:c.unproject(S),originalEvent:f}),this._defaultPrevented=!1}}class Ic extends s.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(o,c,f){super(o,{originalEvent:f}),this._defaultPrevented=!1}}class wh{constructor(o,c){this._map=o,this._clickTolerance=c.clickTolerance}reset(){this._mousedownPos=void 0}wheel(o){return this._firePreventable(new Ic(o.type,this._map,o))}mousedown(o,c){return this._mousedownPos=c,this._firePreventable(new oi(o.type,this._map,o))}mouseup(o){this._map.fire(new oi(o.type,this._map,o))}preclick(o){const c=s.extend({},o);c.type="preclick",this._map.fire(new oi(c.type,this._map,c))}click(o,c){this._mousedownPos&&this._mousedownPos.dist(c)>=this._clickTolerance||(this.preclick(o),this._map.fire(new oi(o.type,this._map,o)))}dblclick(o){return this._firePreventable(new oi(o.type,this._map,o))}mouseover(o){this._map.fire(new oi(o.type,this._map,o))}mouseout(o){this._map.fire(new oi(o.type,this._map,o))}touchstart(o){return this._firePreventable(new yl(o.type,this._map,o))}touchmove(o){this._map.fire(new yl(o.type,this._map,o))}touchend(o){this._map.fire(new yl(o.type,this._map,o))}touchcancel(o){this._map.fire(new yl(o.type,this._map,o))}_firePreventable(o){if(this._map.fire(o),o.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Mc{constructor(o){this._map=o}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0}mousemove(o){this._map.fire(new oi(o.type,this._map,o))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new oi("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(o){this._delayContextMenu?this._contextMenuEvent=o:this._map.fire(new oi(o.type,this._map,o)),this._map.listens("contextmenu")&&o.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class $p{constructor(o,c){this._map=o,this._el=o.getCanvasContainer(),this._container=o.getContainer(),this._clickTolerance=c.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(o,c){this.isEnabled()&&o.shiftKey&&o.button===0&&(ue(),this._startPos=this._lastPos=c,this._active=!0)}mousemoveWindow(o,c){if(!this._active)return;const f=c,_=this._startPos,v=this._lastPos;if(!_||!v||v.equals(f)||!this._box&&f.dist(_){this._box&&(this._box.style.transform=`translate(${E}px,${C}px)`,this._box.style.width=S-E+"px",this._box.style.height=z-C+"px")})}mouseupWindow(o,c){if(!this._active)return;const f=this._startPos,_=c;if(f&&o.button===0){if(this.reset(),De(),f.x!==_.x||f.y!==_.y)return this._map.fire(new s.Event("boxzoomend",{originalEvent:o})),{cameraAnimation:v=>v.fitScreenCoordinates(f,_,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",o)}}keydown(o){this._active&&o.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",o))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),re(),delete this._startPos,delete this._lastPos}_fireEvent(o,c){return this._map.fire(new s.Event(o,{originalEvent:c}))}}function kc(d,o){const c={};for(let f=0;fthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===0&&(this.startTime=o.timeStamp),f.length===this.numTouches&&(this.centroid=function(_){const v=new s.Point(0,0);for(const E of _)v._add(E);return v.div(_.length)}(c),this.touches=kc(f,c)))}touchmove(o,c,f){if(this.aborted||!this.centroid)return;const _=kc(f,c);for(const v in this.touches){const E=_[v];(!E||E.dist(this.touches[v])>30)&&(this.aborted=!0)}}touchend(o,c,f){if((!this.centroid||o.timeStamp-this.startTime>500)&&(this.aborted=!0),f.length===0){const _=!this.aborted&&this.centroid;if(this.reset(),_)return _}}}class bh{constructor(o){this.singleTap=new oa(o),this.numTaps=o.numTaps,this.reset()}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset()}touchstart(o,c,f){this.singleTap.touchstart(o,c,f)}touchmove(o,c,f){this.singleTap.touchmove(o,c,f)}touchend(o,c,f){const _=this.singleTap.touchend(o,c,f);if(_){const v=o.timeStamp-this.lastTime<500,E=!this.lastTap||this.lastTap.dist(_)<30;if(v&&E||this.reset(),this.count++,this.lastTime=o.timeStamp,this.lastTap=_,this.count===this.numTaps)return this.reset(),_}}}class Yg{constructor(){this._zoomIn=new bh({numTouches:1,numTaps:2}),this._zoomOut=new bh({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(o,c,f){this._zoomIn.touchstart(o,c,f),this._zoomOut.touchstart(o,c,f)}touchmove(o,c,f){this._zoomIn.touchmove(o,c,f),this._zoomOut.touchmove(o,c,f)}touchend(o,c,f){const _=this._zoomIn.touchend(o,c,f),v=this._zoomOut.touchend(o,c,f);return _?(this._active=!0,o.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:E=>E.easeTo({duration:300,zoom:E.getZoom()+1,around:E.unproject(_)},{originalEvent:o})}):v?(this._active=!0,o.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:E=>E.easeTo({duration:300,zoom:E.getZoom()-1,around:E.unproject(v)},{originalEvent:o})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}const qp={0:1,2:2};class sa{constructor(o){this.reset(),this._clickTolerance=o.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0}_correctButton(o,c){return!1}_move(o,c){return{}}mousedown(o,c){if(this._lastPoint)return;const f=lt(o);this._correctButton(o,f)&&(this._lastPoint=c,this._eventButton=f)}mousemoveWindow(o,c){const f=this._lastPoint;if(f){if(o.preventDefault(),this._eventButton!=null&&function(_,v){const E=qp[v];return _.buttons===void 0||(_.buttons&E)!==E}(o,this._eventButton))this.reset();else if(this._moved||!(c.dist(f)0&&(this._active=!0);const _=kc(f,c),v=new s.Point(0,0),E=new s.Point(0,0);let S=0;for(const z in _){const P=_[z],D=this._touches[z];D&&(v._add(P),E._add(P.sub(D)),S++,_[z]=P)}if(this._touches=_,S{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","null")},500)}}class vl{constructor(){this.reset()}reset(){this._active=!1,this._firstTwoTouches=void 0}_start(o){}_move(o,c,f){return{}}touchstart(o,c,f){this._firstTwoTouches||f.length<2||(this._firstTwoTouches=[f[0].identifier,f[1].identifier],this._start([c[0],c[1]]))}touchmove(o,c,f){const _=this._firstTwoTouches;if(!_)return;o.preventDefault();const[v,E]=_,S=xl(f,c,v),C=xl(f,c,E);if(!S||!C)return;const z=this._aroundCenter?null:S.add(C).div(2);return this._move([S,C],z,o)}touchend(o,c,f){if(!this._firstTwoTouches)return;const[_,v]=this._firstTwoTouches,E=xl(f,c,_),S=xl(f,c,v);E&&S||(this._active&&De(),this.reset())}touchcancel(){this.reset()}enable(o){this._enabled=!0,this._aroundCenter=!!o&&o.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}function xl(d,o,c){for(let f=0;fMath.abs(d.x)}class Hp extends vl{constructor(o){super(),this._map=o}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0}_start(o){this._lastPoints=o,Uo(o[0].sub(o[1]))&&(this._valid=!1)}_move(o,c,f){const _=this._lastPoints;if(!_)return;const v=o[0].sub(_[0]),E=o[1].sub(_[1]);return this._map._cooperativeGestures&&!s.isFullscreen()&&f.touches.length<3||(this._valid=this.gestureBeginsVertically(v,E,f.timeStamp),!this._valid)?void 0:(this._lastPoints=o,this._active=!0,{pitchDelta:(v.y+E.y)/2*-.5})}gestureBeginsVertically(o,c,f){if(this._valid!==void 0)return this._valid;const _=o.mag()>=2,v=c.mag()>=2;if(!_&&!v)return;if(!_||!v)return this._firstMove==null&&(this._firstMove=f),f-this._firstMove<100&&void 0;const E=o.y>0==c.y>0;return Uo(o)&&Uo(c)&&E}}const Xp={panStep:100,bearingStep:15,pitchStep:10};class Jg{constructor(){const o=Xp;this._panStep=o.panStep,this._bearingStep=o.bearingStep,this._pitchStep=o.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(o){if(o.altKey||o.ctrlKey||o.metaKey)return;let c=0,f=0,_=0,v=0,E=0;switch(o.keyCode){case 61:case 107:case 171:case 187:c=1;break;case 189:case 109:case 173:c=-1;break;case 37:o.shiftKey?f=-1:(o.preventDefault(),v=-1);break;case 39:o.shiftKey?f=1:(o.preventDefault(),v=1);break;case 38:o.shiftKey?_=1:(o.preventDefault(),E=-1);break;case 40:o.shiftKey?_=-1:(o.preventDefault(),E=1);break;default:return}return this._rotationDisabled&&(f=0,_=0),{cameraAnimation:S=>{const C=S.getZoom();S.easeTo({duration:300,easeId:"keyboardHandler",easing:Kp,zoom:c?Math.round(C)+c*(o.shiftKey?2:1):C,bearing:S.getBearing()+f*this._bearingStep,pitch:S.getPitch()+_*this._pitchStep,offset:[-v*this._panStep,-E*this._panStep],center:S.getCenter()},{originalEvent:o})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function Kp(d){return d*(2-d)}const Ih=4.000244140625;class Yp{constructor(o,c){this._map=o,this._el=o.getCanvasContainer(),this._handler=c,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,s.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this)}setZoomRate(o){this._defaultZoomRate=o}setWheelZoomRate(o){this._wheelZoomRate=o}isEnabled(){return!!this._enabled}isActive(){return this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(o){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!o&&o.around==="center",this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(o){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(o.ctrlKey||o.metaKey||this.isZooming()||s.isFullscreen()))return void this._showBlockerAlert();this._alertContainer.style.visibility!=="hidden"&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let c=o.deltaMode===s.window.WheelEvent.DOM_DELTA_LINE?40*o.deltaY:o.deltaY;const f=s.exported.now(),_=f-(this._lastWheelEventTime||0);this._lastWheelEventTime=f,c!==0&&c%Ih==0?this._type="wheel":c!==0&&Math.abs(c)<4?this._type="trackpad":_>400?(this._type=null,this._lastValue=c,this._timeout=setTimeout(this._onTimeout,40,o)):this._type||(this._type=Math.abs(_*c)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,c+=this._lastValue)),o.shiftKey&&c&&(c/=4),this._type&&(this._lastWheelEvent=o,this._delta-=c,this._active||this._start(o)),o.preventDefault()}_onTimeout(o){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(o)}_start(o){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const c=je(this._el,o);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:c,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const o=this._map.transform;this._type==="wheel"&&o.projection.wrap&&(o._center.lng>=180||o._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);const c=()=>o._terrainEnabled()&&this._aroundCoord?o.computeZoomRelativeTo(this._aroundCoord):o.zoom;if(this._delta!==0){const C=this._type==="wheel"&&Math.abs(this._delta)>Ih?this._wheelZoomRate:this._defaultZoomRate;let z=2/(1+Math.exp(-Math.abs(this._delta*C)));this._delta<0&&z!==0&&(z=1/z);const P=c(),D=Math.pow(2,P),j=typeof this._targetZoom=="number"?o.zoomScale(this._targetZoom):D;this._targetZoom=Math.min(o.maxZoom,Math.max(o.minZoom,o.scaleZoom(j*z))),this._type==="wheel"&&(this._startZoom=P,this._easing=this._smoothOutEasing(200)),this._delta=0}const f=typeof this._targetZoom=="number"?this._targetZoom:c(),_=this._startZoom,v=this._easing;let E,S=!1;if(this._type==="wheel"&&_&&v){const C=Math.min((s.exported.now()-this._lastWheelEventTime)/200,1),z=v(C);E=s.number(_,f,z),C<1?this._frameId||(this._frameId=!0):S=!0}else E=f,S=!0;return this._active=!0,S&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!S,zoomDelta:E-c(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(o){let c=s.ease;if(this._prevEase){const f=this._prevEase,_=(s.exported.now()-f.start)/f.duration,v=f.easing(_+.01)-f.easing(_),E=.27/Math.sqrt(v*v+1e-4)*.01,S=Math.sqrt(.0729-E*E);c=s.bezier(E,S,.25,1)}return this._prevEase={start:s.exported.now(),duration:o,easing:c},c}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=oe("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(s.window.navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","null")},200)}}class Jp{constructor(o,c){this._clickZoom=o,this._tapZoom=c}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()}}class xi{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(o,c){return o.preventDefault(),{cameraAnimation:f=>{f.easeTo({duration:300,zoom:f.getZoom()+(o.shiftKey?-1:1),around:f.unproject(c)},{originalEvent:o})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Qg{constructor(){this._tap=new bh({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset()}touchstart(o,c,f){this._swipePoint||(this._tapTime&&o.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?f.length>0&&(this._swipePoint=c[0],this._swipeTouch=f[0].identifier):this._tap.touchstart(o,c,f))}touchmove(o,c,f){if(this._tapTime){if(this._swipePoint){if(f[0].identifier!==this._swipeTouch)return;const _=c[0],v=_.y-this._swipePoint.y;return this._swipePoint=_,o.preventDefault(),this._active=!0,{zoomDelta:v/128}}}else this._tap.touchmove(o,c,f)}touchend(o,c,f){this._tapTime?this._swipePoint&&f.length===0&&this.reset():this._tap.touchend(o,c,f)&&(this._tapTime=o.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Qp{constructor(o,c,f){this._el=o,this._mousePan=c,this._touchPan=f}enable(o){this._inertiaOptions=o||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class e_{constructor(o,c,f){this._pitchWithRotate=o.pitchWithRotate,this._mouseRotate=c,this._mousePitch=f}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class t_{constructor(o,c,f,_){this._el=o,this._touchZoom=c,this._touchRotate=f,this._tapDragZoom=_,this._rotationDisabled=!1,this._enabled=!0}enable(o){this._touchZoom.enable(o),this._rotationDisabled||this._touchRotate.enable(o),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}const ar=d=>d.zoom||d.drag||d.pitch||d.rotate;class ef extends s.Event{}class n_{constructor(){this.constants=[1,1,.01],this.radius=0}setup(o,c){const f=s.sub([],c,o);this.radius=s.length(f[2]<0?s.div([],f,this.constants):[f[0],f[1],0])}projectRay(o){s.div(o,o,this.constants),s.normalize(o,o),s.mul$1(o,o,this.constants);const c=s.scale$2([],o,this.radius);if(c[2]>0){const f=s.scale$2([],[0,0,1],s.dot(c,[0,0,1])),_=s.scale$2([],s.normalize([],[c[0],c[1],0]),this.radius),v=s.add([],c,s.scale$2([],s.sub([],s.add([],_,f),c),2));c[0]=v[0],c[1]=v[1]}return c}}function Tr(d){return d.panDelta&&d.panDelta.mag()||d.zoomDelta||d.bearingDelta||d.pitchDelta}class Gr{constructor(o,c){this._map=o,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Gp(o),this._bearingSnap=c.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new n_,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(c),s.bindAll(["handleEvent","handleWindowEvent"],this);const f=this._el;this._listeners=[[f,"touchstart",{passive:!0}],[f,"touchmove",{passive:!1}],[f,"touchend",void 0],[f,"touchcancel",void 0],[f,"mousedown",void 0],[f,"mousemove",void 0],[f,"mouseup",void 0],[s.window.document,"mousemove",{capture:!0}],[s.window.document,"mouseup",void 0],[f,"mouseover",void 0],[f,"mouseout",void 0],[f,"dblclick",void 0],[f,"click",void 0],[f,"keydown",{capture:!1}],[f,"keyup",void 0],[f,"wheel",{passive:!1}],[f,"contextmenu",void 0],[s.window,"blur",void 0]];for(const[_,v,E]of this._listeners)_.addEventListener(v,_===s.window.document?this.handleWindowEvent:this.handleEvent,E)}destroy(){for(const[o,c,f]of this._listeners)o.removeEventListener(c,o===s.window.document?this.handleWindowEvent:this.handleEvent,f)}_addDefaultHandlers(o){const c=this._map,f=c.getCanvasContainer();this._add("mapEvent",new wh(c,o));const _=c.boxZoom=new $p(c,o);this._add("boxZoom",_);const v=new Yg,E=new xi;c.doubleClickZoom=new Jp(E,v),this._add("tapZoom",v),this._add("clickZoom",E);const S=new Qg;this._add("tapDragZoom",S);const C=c.touchPitch=new Hp(c);this._add("touchPitch",C);const z=new Th(o),P=new Sh(o);c.dragRotate=new e_(o,z,P),this._add("mouseRotate",z,["mousePitch"]),this._add("mousePitch",P,["mouseRotate"]);const D=new Eh(o),j=new Pc(c,o);c.dragPan=new Qp(f,D,j),this._add("mousePan",D),this._add("touchPan",j,["touchZoom","touchRotate"]);const $=new Wp,W=new Zp;c.touchZoomRotate=new t_(f,W,$,S),this._add("touchRotate",$,["touchPan","touchZoom"]),this._add("touchZoom",W,["touchPan","touchRotate"]),this._add("blockableMapEvent",new Mc(c));const Z=c.scrollZoom=new Yp(c,this);this._add("scrollZoom",Z,["mousePan"]);const H=c.keyboard=new Jg;this._add("keyboard",H);for(const O of["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"])o.interactive&&o[O]&&c[O].enable(o[O])}_add(o,c,f){this._handlers.push({handlerName:o,handler:c,allowed:f}),this._handlersById[o]=c}stop(o){if(!this._updatingCamera){for(const{handler:c}of this._handlers)c.reset();this._inertia.clear(),this._fireEvents({},{},o),this._changes=[]}}isActive(){for(const{handler:o}of this._handlers)if(o.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!ar(this._eventsInProgress)||this.isZooming()}_isDragging(){return!!this._eventsInProgress.drag}_blockedByActive(o,c,f){for(const _ in o)if(_!==f&&(!c||c.indexOf(_)<0))return!0;return!1}handleWindowEvent(o){this.handleEvent(o,`${o.type}Window`)}_getMapTouches(o){const c=[];for(const f of o)this._el.contains(f.target)&&c.push(f);return c}handleEvent(o,c){this._updatingCamera=!0;const f=o.type==="renderFrame",_=f?void 0:o,v={needsRenderFrame:!1},E={},S={},C=o.touches?this._getMapTouches(o.touches):void 0,z=C?tt(this._el,C):f?void 0:je(this._el,o);for(const{handlerName:j,handler:$,allowed:W}of this._handlers){if(!$.isEnabled())continue;let Z;this._blockedByActive(S,W,j)?$.reset():$[c||o.type]&&(Z=$[c||o.type](o,z,C),this.mergeHandlerResult(v,E,Z,j,_),Z&&Z.needsRenderFrame&&this._triggerRenderFrame()),(Z||$.isActive())&&(S[j]=$)}const P={};for(const j in this._previousActiveHandlers)S[j]||(P[j]=_);this._previousActiveHandlers=S,(Object.keys(P).length||Tr(v))&&(this._changes.push([v,E,P]),this._triggerRenderFrame()),(Object.keys(S).length||Tr(v))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:D}=v;D&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],D(this._map))}mergeHandlerResult(o,c,f,_,v){if(!f)return;s.extend(o,f);const E={handlerName:_,originalEvent:f.originalEvent||v};f.zoomDelta!==void 0&&(c.zoom=E),f.panDelta!==void 0&&(c.drag=E),f.pitchDelta!==void 0&&(c.pitch=E),f.bearingDelta!==void 0&&(c.rotate=E)}_applyChanges(){const o={},c={},f={};for(const[_,v,E]of this._changes)_.panDelta&&(o.panDelta=(o.panDelta||new s.Point(0,0))._add(_.panDelta)),_.zoomDelta&&(o.zoomDelta=(o.zoomDelta||0)+_.zoomDelta),_.bearingDelta&&(o.bearingDelta=(o.bearingDelta||0)+_.bearingDelta),_.pitchDelta&&(o.pitchDelta=(o.pitchDelta||0)+_.pitchDelta),_.around!==void 0&&(o.around=_.around),_.aroundCoord!==void 0&&(o.aroundCoord=_.aroundCoord),_.pinchAround!==void 0&&(o.pinchAround=_.pinchAround),_.noInertia&&(o.noInertia=_.noInertia),s.extend(c,v),s.extend(f,E);this._updateMapTransform(o,c,f),this._changes=[]}_updateMapTransform(o,c,f){const _=this._map,v=_.transform,E=G=>[G.x,G.y,G.z];if((G=>{const J=this._eventsInProgress.drag;return J&&!this._handlersById[J.handlerName].isActive()})()&&!Tr(o)){const G=v.zoom;v.cameraElevationReference="sea",v.recenterOnTerrain(),v.cameraElevationReference="ground",G!==v.zoom&&this._map._update(!0)}if(v._isCameraConstrained&&_._stop(!0),!Tr(o))return void this._fireEvents(c,f,!0);let{panDelta:S,zoomDelta:C,bearingDelta:z,pitchDelta:P,around:D,aroundCoord:j,pinchAround:$}=o;v._isCameraConstrained&&(C>0&&(C=0),v._isCameraConstrained=!1),$!==void 0&&(D=$),(C||(G=>c[G]&&!this._eventsInProgress[G])("drag"))&&D&&(this._dragOrigin=E(v.pointCoordinate3D(D)),this._trackingEllipsoid.setup(v._camera.position,this._dragOrigin)),v.cameraElevationReference="sea",_._stop(!0),D=D||_.transform.centerPoint,z&&(v.bearing+=z),P&&(v.pitch+=P),v._updateCameraState();const W=[0,0,0];if(S)if(v.projection.name==="mercator"){const G=this._trackingEllipsoid.projectRay(v.screenPointToMercatorRay(D).dir),J=this._trackingEllipsoid.projectRay(v.screenPointToMercatorRay(D.sub(S)).dir);W[0]=J[0]-G[0],W[1]=J[1]-G[1]}else{const G=v.pointCoordinate(D);if(v.projection.name==="globe"){S=S.rotate(-v.angle);const J=v._pixelsPerMercatorPixel/v.worldSize;W[0]=-S.x*s.mercatorScale(s.latFromMercatorY(G.y))*J,W[1]=-S.y*s.mercatorScale(v.center.lat)*J}else{const J=v.pointCoordinate(D.sub(S));G&&J&&(W[0]=J.x-G.x,W[1]=J.y-G.y)}}const Z=v.zoom,H=[0,0,0];if(C){const G=E(j||v.pointCoordinate3D(D)),J={dir:s.normalize([],s.sub([],G,v._camera.position))};if(J.dir[2]<0){const Q=v.zoomDeltaToMovement(G,C);s.scale$2(H,J.dir,Q)}}const O=s.add(W,W,H);v._translateCameraConstrained(O),C&&Math.abs(v.zoom-Z)>1e-4&&v.recenterOnTerrain(),v.cameraElevationReference="ground",this._map._update(),o.noInertia||this._inertia.record(o),this._fireEvents(c,f,!0)}_fireEvents(o,c,f){const _=ar(this._eventsInProgress),v=ar(o),E={};for(const P in o){const{originalEvent:D}=o[P];this._eventsInProgress[P]||(E[`${P}start`]=D),this._eventsInProgress[P]=o[P]}!_&&v&&this._fireEvent("movestart",v.originalEvent);for(const P in E)this._fireEvent(P,E[P]);v&&this._fireEvent("move",v.originalEvent);for(const P in o){const{originalEvent:D}=o[P];this._fireEvent(P,D)}const S={};let C;for(const P in this._eventsInProgress){const{handlerName:D,originalEvent:j}=this._eventsInProgress[P];this._handlersById[D].isActive()||(delete this._eventsInProgress[P],C=c[D]||j,S[`${P}end`]=C)}for(const P in S)this._fireEvent(P,S[P]);const z=ar(this._eventsInProgress);if(f&&(_||v)&&!z){this._updatingCamera=!0;const P=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),D=j=>j!==0&&-this._bearingSnap{this._frameId=void 0,this.handleEvent(new ef("renderFrame",{timeStamp:o})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}const gs="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class zc extends s.Evented{constructor(o,c){super(),this._moving=!1,this._zooming=!1,this.transform=o,this._bearingSnap=c.bearingSnap,this._respectPrefersReducedMotion=c.respectPrefersReducedMotion!==!1,s.bindAll(["_renderFrameCallback"],this)}getCenter(){return new s.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(o,c){return this.jumpTo({center:o},c)}panBy(o,c,f){return o=s.Point.convert(o).mult(-1),this.panTo(this.transform.center,s.extend({offset:o},c),f)}panTo(o,c,f){return this.easeTo(s.extend({center:o},c),f)}getZoom(){return this.transform.zoom}setZoom(o,c){return this.jumpTo({zoom:o},c),this}zoomTo(o,c,f){return this.easeTo(s.extend({zoom:o},c),f)}zoomIn(o,c){return this.zoomTo(this.getZoom()+1,o,c),this}zoomOut(o,c){return this.zoomTo(this.getZoom()-1,o,c),this}getBearing(){return this.transform.bearing}setBearing(o,c){return this.jumpTo({bearing:o},c),this}getPadding(){return this.transform.padding}setPadding(o,c){return this.jumpTo({padding:o},c),this}rotateTo(o,c,f){return this.easeTo(s.extend({bearing:o},c),f)}resetNorth(o,c){return this.rotateTo(0,s.extend({duration:1e3},o),c),this}resetNorthPitch(o,c){return this.easeTo(s.extend({bearing:0,pitch:0,duration:1e3},o),c),this}snapToNorth(o,c){return Math.abs(this.getBearing())o.aspect?f/(2*Math.tan(.5*o.fovX)*o.aspect):_/(2*Math.tan(.5*o.fovY)*o.aspect)}_cameraForBoundsOnGlobe(o,c,f,_,v,E){const S=o.clone(),C=this._extendCameraOptions(E);S.bearing=_,S.pitch=v;const z=s.LngLat.convert(c),P=s.LngLat.convert(f),D=.5*(z.lat+P.lat),j=.5*(z.lng+P.lng),$=s.latLngToECEF(D,j),W=s.normalize([],$),Z=s.normalize([],s.cross([],W,[0,1,0])),H=s.cross([],Z,W),O=[Z[0],Z[1],Z[2],0,H[0],H[1],H[2],0,W[0],W[1],W[2],0,0,0,0,1],G=[$,s.latLngToECEF(z.lat,z.lng),s.latLngToECEF(P.lat,z.lng),s.latLngToECEF(P.lat,P.lng),s.latLngToECEF(z.lat,P.lng),s.latLngToECEF(D,z.lng),s.latLngToECEF(D,P.lng),s.latLngToECEF(z.lat,j),s.latLngToECEF(P.lat,j)];let J=s.Aabb.fromPoints(G.map(Ge=>[s.dot(Z,Ge),s.dot(H,Ge),s.dot(W,Ge)]));const Q=s.transformMat4([],J.center,O);s.squaredLength(Q)===0&&s.set(Q,0,0,1),s.normalize(Q,Q),s.scale$2(Q,Q,s.GLOBE_RADIUS),S.center=s.ecefToLatLng(Q);const he=S.getWorldToCameraMatrix(),pe=s.invert(new Float64Array(16),he);J=s.Aabb.applyTransform(J,s.multiply([],he,O)),s.transformMat4(Q,Q,he);const de=.5*(J.max[2]-J.min[2]),ye=this._minimumAABBFrustumDistance(S,J),_e=s.scale$2([],[0,0,1],de),Te=s.add(_e,Q,_e),Ze=ye+(S.pitch===0?0:s.distance(Q,Te)),we=S.globeCenterInViewSpace,Be=s.sub([],Q,[we[0],we[1],we[2]]);s.normalize(Be,Be),s.scale$2(Be,Be,Ze);const Ce=s.add([],Q,Be);s.transformMat4(Ce,Ce,pe);const qe=s.earthRadius/s.GLOBE_RADIUS,Ee=s.length(Ce),Oe=s.mercatorZfromAltitude(Math.max(Ee*qe-s.earthRadius,Number.EPSILON),0),He=Math.min(S.zoomFromMercatorZAdjusted(Oe),C.maxZoom);return He>.5*(s.GLOBE_ZOOM_THRESHOLD_MIN+s.GLOBE_ZOOM_THRESHOLD_MAX)?(S.setProjection({name:"mercator"}),S.zoom=He,this._cameraForBounds(S,c,f,_,v,E)):{center:S.center,zoom:He,bearing:_,pitch:v}}queryTerrainElevation(o,c){const f=this.transform.elevation;return f?(c=s.extend({},{exaggerated:!0},c),f.getAtPoint(s.MercatorCoordinate.fromLngLat(o),null,c.exaggerated)):null}_cameraForBounds(o,c,f,_,v,E){if(o.projection.name==="globe")return this._cameraForBoundsOnGlobe(o,c,f,_,v,E);const S=o.clone(),C=this._extendCameraOptions(E),z=S.padding;S.bearing=_,S.pitch=v;const P=s.LngLat.convert(c),D=s.LngLat.convert(f),j=new s.LngLat(P.lng,D.lat),$=new s.LngLat(D.lng,P.lat),W=S.project(P),Z=S.project(D),H=this.queryTerrainElevation(P),O=this.queryTerrainElevation(D),G=this.queryTerrainElevation(j),J=this.queryTerrainElevation($),Q=[[W.x,W.y,Math.min(H||0,O||0,G||0,J||0)],[Z.x,Z.y,Math.max(H||0,O||0,G||0,J||0)]];let he=s.Aabb.fromPoints(Q);const pe=S.getWorldToCameraMatrix(),de=s.invert(new Float64Array(16),pe);he=s.Aabb.applyTransform(he,pe);const ye=s.sub([],he.max,he.min),_e=z.left||0,Te=z.right||0,Ze=z.bottom||0,we=z.top||0,{left:Be,right:Ce,top:qe,bottom:Ee}=C.padding,Oe=.5*(_e+Te),He=.5*(we+Ze),Ge=Math.min(S.scaleZoom(S.scale*Math.min((S.width-(_e+Te+Be+Ce))/ye[0],(S.height-(Ze+we+Ee+qe))/ye[1])),C.maxZoom),Xe=S.scale/S.zoomScale(Ge);he=new s.Aabb([he.min[0]-(Be+Oe)*Xe,he.min[1]-(Ee+He)*Xe,he.min[2]],[he.max[0]+(Ce+Oe)*Xe,he.max[1]+(qe+He)*Xe,he.max[2]]);const gt=.5*ye[2],Et=this._minimumAABBFrustumDistance(S,he),dt=[0,0,1,0];s.transformMat4$1(dt,dt,pe),s.normalize$2(dt,dt);const wt=s.scale$2([],dt,Et+gt),Ut=s.add([],he.center,wt),Ot=(typeof C.offset.x=="number"&&typeof C.offset.y=="number"?new s.Point(C.offset.x,C.offset.y):s.Point.convert(C.offset)).rotate(-s.degToRad(_));he.center[0]-=Ot.x*Xe,he.center[1]+=Ot.y*Xe,s.transformMat4(he.center,he.center,de),s.transformMat4(Ut,Ut,de);const mt=[he.center[0],he.center[1],Ut[2]*S.pixelsPerMeter];s.scale$2(mt,mt,1/S.worldSize);const en=s.lngFromMercatorX(mt[0]),rn=s.latFromMercatorY(mt[1]),on=Math.min(S._zoomFromMercatorZ(mt[2]),C.maxZoom),sn=new s.LngLat(en,rn);return S.mercatorFromTransition&&on<.5*(s.GLOBE_ZOOM_THRESHOLD_MIN+s.GLOBE_ZOOM_THRESHOLD_MAX)?(S.setProjection({name:"globe"}),S.zoom=on,this._cameraForBounds(S,c,f,_,v,E)):{center:sn,zoom:on,bearing:_,pitch:v}}fitBounds(o,c,f){const _=this.cameraForBounds(o,c);return this._fitInternal(_,c,f)}fitScreenCoordinates(o,c,f,_,v){const E=s.Point.convert(o),S=s.Point.convert(c),C=new s.Point(Math.min(E.x,S.x),Math.min(E.y,S.y)),z=new s.Point(Math.max(E.x,S.x),Math.max(E.y,S.y));if(this.transform.projection.name==="mercator"&&this.transform.anyCornerOffEdge(E,S))return this;const P=this.transform.pointLocation3D(C),D=this.transform.pointLocation3D(z),j=this.transform.pointLocation3D(new s.Point(C.x,z.y)),$=this.transform.pointLocation3D(new s.Point(z.x,C.y)),W=[Math.min(P.lng,D.lng,j.lng,$.lng),Math.min(P.lat,D.lat,j.lat,$.lat)],Z=[Math.max(P.lng,D.lng,j.lng,$.lng),Math.max(P.lat,D.lat,j.lat,$.lat)],H=_&&_.pitch?_.pitch:this.getPitch(),O=this._cameraForBounds(this.transform,W,Z,f,H,_);return this._fitInternal(O,_,v)}_fitInternal(o,c,f){return o?(delete(c=s.extend(o,c)).padding,c.linear?this.easeTo(c,f):this.flyTo(c,f)):this}jumpTo(o,c){this.stop();const f=o.preloadOnly?this.transform.clone():this.transform;let _=!1,v=!1,E=!1;return"zoom"in o&&f.zoom!==+o.zoom&&(_=!0,f.zoom=+o.zoom),o.center!==void 0&&(f.center=s.LngLat.convert(o.center)),"bearing"in o&&f.bearing!==+o.bearing&&(v=!0,f.bearing=+o.bearing),"pitch"in o&&f.pitch!==+o.pitch&&(E=!0,f.pitch=+o.pitch),o.padding==null||f.isPaddingEqual(o.padding)||(f.padding=o.padding),o.preloadOnly?(this._preloadTiles(f),this):(this.fire(new s.Event("movestart",c)).fire(new s.Event("move",c)),_&&this.fire(new s.Event("zoomstart",c)).fire(new s.Event("zoom",c)).fire(new s.Event("zoomend",c)),v&&this.fire(new s.Event("rotatestart",c)).fire(new s.Event("rotate",c)).fire(new s.Event("rotateend",c)),E&&this.fire(new s.Event("pitchstart",c)).fire(new s.Event("pitch",c)).fire(new s.Event("pitchend",c)),this.fire(new s.Event("moveend",c)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||s.warnOnce(gs),this.transform.getFreeCameraOptions()}setFreeCameraOptions(o,c){const f=this.transform;if(!f.projection.supportsFreeCamera)return s.warnOnce(gs),this;this.stop();const _=f.zoom,v=f.pitch,E=f.bearing;f.setFreeCameraOptions(o);const S=_!==f.zoom,C=v!==f.pitch,z=E!==f.bearing;return this.fire(new s.Event("movestart",c)).fire(new s.Event("move",c)),S&&this.fire(new s.Event("zoomstart",c)).fire(new s.Event("zoom",c)).fire(new s.Event("zoomend",c)),z&&this.fire(new s.Event("rotatestart",c)).fire(new s.Event("rotate",c)).fire(new s.Event("rotateend",c)),C&&this.fire(new s.Event("pitchstart",c)).fire(new s.Event("pitch",c)).fire(new s.Event("pitchend",c)),this.fire(new s.Event("moveend",c)),this}easeTo(o,c){this._stop(!1,o.easeId),((o=s.extend({offset:[0,0],duration:500,easing:s.ease},o)).animate===!1||this._prefersReducedMotion(o))&&(o.duration=0);const f=this.transform,_=this.getZoom(),v=this.getBearing(),E=this.getPitch(),S=this.getPadding(),C="zoom"in o?+o.zoom:_,z="bearing"in o?this._normalizeBearing(o.bearing,v):v,P="pitch"in o?+o.pitch:E,D="padding"in o?o.padding:f.padding,j=s.Point.convert(o.offset);let $,W,Z;if(f.projection.name==="globe"){const _e=s.MercatorCoordinate.fromLngLat(f.center),Te=j.rotate(-f.angle);_e.x+=Te.x/f.worldSize,_e.y+=Te.y/f.worldSize;const Ze=_e.toLngLat(),we=s.LngLat.convert(o.center||Ze);this._normalizeCenter(we),$=f.centerPoint.add(Te),W=new s.Point(_e.x,_e.y).mult(f.worldSize),Z=new s.Point(s.mercatorXfromLng(we.lng),s.mercatorYfromLat(we.lat)).mult(f.worldSize).sub(W)}else{$=f.centerPoint.add(j);const _e=f.pointLocation($),Te=s.LngLat.convert(o.center||_e);this._normalizeCenter(Te),W=f.project(_e),Z=f.project(Te).sub(W)}const H=f.zoomScale(C-_);let O,G;o.around&&(O=s.LngLat.convert(o.around),G=f.locationPoint(O));const J=this._zooming||C!==_,Q=this._rotating||v!==z,he=this._pitching||P!==E,pe=!f.isPaddingEqual(D),de=_e=>Te=>{if(J&&(_e.zoom=s.number(_,C,Te)),Q&&(_e.bearing=s.number(v,z,Te)),he&&(_e.pitch=s.number(E,P,Te)),pe&&(_e.interpolatePadding(S,D,Te),$=_e.centerPoint.add(j)),O)_e.setLocationAtPoint(O,G);else{const Ze=_e.zoomScale(_e.zoom-_),we=C>_?Math.min(2,H):Math.max(.5,H),Be=Math.pow(we,1-Te),Ce=_e.unproject(W.add(Z.mult(Te*Be)).mult(Ze));_e.setLocationAtPoint(_e.renderWorldCopies?Ce.wrap():Ce,$)}return o.preloadOnly||this._fireMoveEvents(c),_e};if(o.preloadOnly){const _e=this._emulate(de,o.duration,f);return this._preloadTiles(_e),this}const ye={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=J,this._rotating=Q,this._pitching=he,this._padding=pe,this._easeId=o.easeId,this._prepareEase(c,o.noMoveStart,ye),this._ease(de(f),_e=>{f.recenterOnTerrain(),this._afterEase(c,_e)},o),this}_prepareEase(o,c,f={}){this._moving=!0,this.transform.cameraElevationReference="sea",c||f.moving||this.fire(new s.Event("movestart",o)),this._zooming&&!f.zooming&&this.fire(new s.Event("zoomstart",o)),this._rotating&&!f.rotating&&this.fire(new s.Event("rotatestart",o)),this._pitching&&!f.pitching&&this.fire(new s.Event("pitchstart",o))}_fireMoveEvents(o){this.fire(new s.Event("move",o)),this._zooming&&this.fire(new s.Event("zoom",o)),this._rotating&&this.fire(new s.Event("rotate",o)),this._pitching&&this.fire(new s.Event("pitch",o))}_afterEase(o,c){if(this._easeId&&c&&this._easeId===c)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";const f=this._zooming,_=this._rotating,v=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,f&&this.fire(new s.Event("zoomend",o)),_&&this.fire(new s.Event("rotateend",o)),v&&this.fire(new s.Event("pitchend",o)),this.fire(new s.Event("moveend",o))}flyTo(o,c){if(this._prefersReducedMotion(o)){const Ge=s.pick(o,["center","zoom","bearing","pitch","around"]);return this.jumpTo(Ge,c)}this.stop(),o=s.extend({offset:[0,0],speed:1.2,curve:1.42,easing:s.ease},o);const f=this.transform,_=this.getZoom(),v=this.getBearing(),E=this.getPitch(),S=this.getPadding(),C="zoom"in o?s.clamp(+o.zoom,f.minZoom,f.maxZoom):_,z="bearing"in o?this._normalizeBearing(o.bearing,v):v,P="pitch"in o?+o.pitch:E,D="padding"in o?o.padding:f.padding,j=f.zoomScale(C-_),$=s.Point.convert(o.offset);let W=f.centerPoint.add($);const Z=f.pointLocation(W),H=s.LngLat.convert(o.center||Z);this._normalizeCenter(H);const O=f.project(Z),G=f.project(H).sub(O);let J=o.curve;const Q=Math.max(f.width,f.height),he=Q/j,pe=G.mag();if("minZoom"in o){const Ge=s.clamp(Math.min(o.minZoom,_,C),f.minZoom,f.maxZoom),Xe=Q/f.zoomScale(Ge-_);J=Math.sqrt(Xe/pe*2)}const de=J*J;function ye(Ge){const Xe=(he*he-Q*Q+(Ge?-1:1)*de*de*pe*pe)/(2*(Ge?he:Q)*de*pe);return Math.log(Math.sqrt(Xe*Xe+1)-Xe)}function _e(Ge){return(Math.exp(Ge)-Math.exp(-Ge))/2}function Te(Ge){return(Math.exp(Ge)+Math.exp(-Ge))/2}const Ze=ye(0);let we=function(Ge){return Te(Ze)/Te(Ze+J*Ge)},Be=function(Ge){return Q*((Te(Ze)*(_e(Xe=Ze+J*Ge)/Te(Xe))-_e(Ze))/de)/pe;var Xe},Ce=(ye(1)-Ze)/J;if(Math.abs(pe)<1e-6||!isFinite(Ce)){if(Math.abs(Q-he)<1e-6)return this.easeTo(o,c);const Ge=heo.maxDuration&&(o.duration=0);const qe=v!==z,Ee=P!==E,Oe=!f.isPaddingEqual(D),He=Ge=>Xe=>{const gt=Xe*Ce,Et=1/we(gt);Ge.zoom=Xe===1?C:_+Ge.scaleZoom(Et),qe&&(Ge.bearing=s.number(v,z,Xe)),Ee&&(Ge.pitch=s.number(E,P,Xe)),Oe&&(Ge.interpolatePadding(S,D,Xe),W=Ge.centerPoint.add($));const dt=Xe===1?H:Ge.unproject(O.add(G.mult(Be(gt))).mult(Et));return Ge.setLocationAtPoint(Ge.renderWorldCopies?dt.wrap():dt,W),Ge._updateCameraOnTerrain(),o.preloadOnly||this._fireMoveEvents(c),Ge};if(o.preloadOnly){const Ge=this._emulate(He,o.duration,f);return this._preloadTiles(Ge),this}return this._zooming=!0,this._rotating=qe,this._pitching=Ee,this._padding=Oe,this._prepareEase(c,!1),this._ease(He(f),()=>this._afterEase(c),o),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(o,c){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const f=this._onEaseEnd;this._onEaseEnd=void 0,f.call(this,c)}if(!o){const f=this.handlers;f&&f.stop(!1)}return this}_ease(o,c,f){f.animate===!1||f.duration===0?(o(1),c()):(this._easeStart=s.exported.now(),this._easeOptions=f,this._onEaseFrame=o,this._onEaseEnd=c,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){const o=Math.min((s.exported.now()-this._easeStart)/this._easeOptions.duration,1),c=this._onEaseFrame;c&&c(this._easeOptions.easing(o)),o<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(o,c){o=s.wrap(o,-180,180);const f=Math.abs(o-c);return Math.abs(o-360-c)180?-360:f<-180?360:0}_prefersReducedMotion(o){return this._respectPrefersReducedMotion&&s.exported.prefersReducedMotion&&!(o&&o.essential)}_emulate(o,c,f){const _=Math.ceil(15*c/1e3),v=[],E=o(f.clone());for(let S=0;S<=_;S++){const C=E(S/_);v.push(C.clone())}return v}}class ht{constructor(o={}){this.options=o,s.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(o){const c=this.options&&this.options.compact;return this._map=o,this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=oe("button","mapboxgl-ctrl-attrib-button",this._container),oe("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden","true"),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=oe("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),c&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),c===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0}_setElementTitle(o,c){const f=this._map._getUIString(`AttributionControl.${c}`);o.setAttribute("aria-label",f),o.removeAttribute("title"),o.firstElementChild&&o.firstElementChild.setAttribute("title",f)}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"))}_updateEditLink(){let o=this._editLink;o||(o=this._editLink=this._container.querySelector(".mapbox-improve-map"));const c=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||s.config.ACCESS_TOKEN}];if(o){const f=c.reduce((_,v,E)=>(v.value&&(_+=`${v.key}=${v.value}${E_.length-v.length),o=o.filter((_,v)=>{for(let E=v+1;E=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?o=[...this.options.customAttribution,...o]:o.unshift(this.options.customAttribution));const f=o.join(" | ");f!==this._attribHTML&&(this._attribHTML=f,o.length?(this._innerContainer.innerHTML=f,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")}}class Mh{constructor(){s.bindAll(["_updateLogo","_updateCompact"],this)}onAdd(o){this._map=o,this._container=oe("div","mapboxgl-ctrl");const c=oe("a","mapboxgl-ctrl-logo");return c.target="_blank",c.rel="noopener nofollow",c.href="https://www.mapbox.com/",c.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),c.setAttribute("rel","noopener nofollow"),this._container.appendChild(c),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)}getDefaultPosition(){return"bottom-left"}_updateLogo(o){o&&o.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;const o=this._map.style._sourceCaches;if(Object.entries(o).length===0)return!0;for(const c in o){const f=o[c].getSource();if(f.hasOwnProperty("mapbox_logo")&&!f.mapbox_logo)return!1}return!0}_updateCompact(){const o=this._container.children;if(o.length){const c=o[0];this._map.getCanvasContainer().offsetWidth<250?c.classList.add("mapboxgl-compact"):c.classList.remove("mapboxgl-compact")}}}class kh{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(o){const c=++this._id;return this._queue.push({callback:o,id:c,cancelled:!1}),c}remove(o){const c=this._currentlyRunning,f=c?this._queue.concat(c):this._queue;for(const _ of f)if(_.id===o)return void(_.cancelled=!0)}run(o=0){const c=this._currentlyRunning=this._queue;this._queue=[];for(const f of c)if(!f.cancelled&&(f.callback(o),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}function aa(d,o,c){if(d=new s.LngLat(d.lng,d.lat),o){const f=new s.LngLat(d.lng-360,d.lat),_=new s.LngLat(d.lng+360,d.lat),v=360*Math.ceil(Math.abs(d.lng-c.center.lng)/360),E=c.locationPoint(d).distSqr(o),S=o.x<0||o.y<0||o.x>c.width||o.y>c.height;c.locationPoint(f).distSqr(o)180;){const f=c.locationPoint(d);if(f.x>=0&&f.y>=0&&f.x<=c.width&&f.y<=c.height)break;d.lng>c.center.lng?d.lng-=360:d.lng+=360}return d}const _s={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%)"};class st extends s.Evented{constructor(o,c){if(super(),(o instanceof s.window.HTMLElement||c)&&(o=s.extend({element:o},c)),s.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=o&&o.anchor||"center",this._color=o&&o.color||"#3FB1CE",this._scale=o&&o.scale||1,this._draggable=o&&o.draggable||!1,this._clickTolerance=o&&o.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=o&&o.rotation||0,this._rotationAlignment=o&&o.rotationAlignment||"auto",this._pitchAlignment=o&&o.pitchAlignment&&o.pitchAlignment||"auto",this._updateMoving=()=>this._update(!0),this._occludedOpacity=o&&o.occludedOpacity||.2,o&&o.element)this._element=o.element,this._offset=s.Point.convert(o&&o.offset||[0,0]);else{this._defaultMarker=!0,this._element=oe("div");const _=41,v=27,E=Ae("svg",{display:"block",height:_*this._scale+"px",width:v*this._scale+"px",viewBox:`0 0 ${v} ${_}`},this._element),S=Ae("radialGradient",{id:"shadowGradient"},Ae("defs",{},E));Ae("stop",{offset:"10%","stop-opacity":.4},S),Ae("stop",{offset:"100%","stop-opacity":.05},S),Ae("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},E),Ae("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},E),Ae("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},E),Ae("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},E),this._offset=s.Point.convert(o&&o.offset||[0,-14])}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",_=>{_.preventDefault()}),this._element.addEventListener("mousedown",_=>{_.preventDefault()});const f=this._element.classList;for(const _ in _s)f.remove(`mapboxgl-marker-anchor-${_}`);f.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(o){return o===this._map||(this.remove(),this._map=o,o.getCanvasContainer().appendChild(this._element),o.on("move",this._updateMoving),o.on("moveend",this._update),o.on("remove",this._clearFadeTimer),o._addMarker(this),this.setDraggable(this._draggable),this._update(),o.on("click",this._onMapClick)),this}remove(){const o=this._map;return o&&(o.off("click",this._onMapClick),o.off("move",this._updateMoving),o.off("moveend",this._update),o.off("mousedown",this._addDragHandler),o.off("touchstart",this._addDragHandler),o.off("mouseup",this._onUp),o.off("touchend",this._onUp),o.off("mousemove",this._onMove),o.off("touchmove",this._onMove),o.off("remove",this._clearFadeTimer),o._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(o){return this._lngLat=s.LngLat.convert(o),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(o){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),o){if(!("offset"in o.options)){const _=Math.sqrt(Math.pow(13.5,2)/2);o.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[_,-1*(38.1-13.5+_)],"bottom-right":[-_,-1*(38.1-13.5+_)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=o,o._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false")}return this}_onKeyPress(o){const c=o.code,f=o.charCode||o.keyCode;c!=="Space"&&c!=="Enter"&&f!==32&&f!==13||this.togglePopup()}_onMapClick(o){const c=o.originalEvent.target,f=this._element;this._popup&&(c===f||f.contains(c))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){const o=this._popup;return o?(o.isOpen()?(o.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(o.addTo(this._map),this._element.setAttribute("aria-expanded","true")),this):this}_behindTerrain(){const o=this._map,c=this._pos;if(!o||!c)return!1;const f=o.unproject(c),_=o.getFreeCameraOptions();if(!_.position)return!1;const v=_.position.toLngLat();return v.distanceTo(f)<.9*v.distanceTo(this._lngLat)}_evaluateOpacity(){const o=this._map;if(!o)return;const c=this._pos;if(!c||c.x<0||c.x>o.transform.width||c.y<0||c.y>o.transform.height)return void this._clearFadeTimer();const f=o.unproject(c);let _;o._showingGlobe()&&s.isLngLatBehindGlobe(o.transform,this._lngLat)?_=0:(_=1-o._queryFogOpacity(f),o.transform._terrainEnabled()&&o.getTerrain()&&this._behindTerrain()&&(_*=this._occludedOpacity)),this._element.style.opacity=`${_}`,this._element.style.pointerEvents=_>0?"auto":"none",this._popup&&this._popup._setOpacity(_),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_updateDOM(){const o=this._pos;if(!o||!this._map)return;const c=this._offset.mult(this._scale);this._element.style.transform=` + translate(${o.x}px,${o.y}px) + ${_s[this._anchor]} + ${this._calculateXYTransform()} ${this._calculateZTransform()} + translate(${c.x}px,${c.y}px) + `}_calculateXYTransform(){const o=this._pos,c=this._map,f=this.getPitchAlignment();if(!c||!o||f!=="map")return"";if(!c._showingGlobe()){const C=c.getPitch();return C?`rotateX(${C}deg)`:""}const _=s.radToDeg(s.globeTiltAtLngLat(c.transform,this._lngLat)),v=o.sub(s.globeCenterToScreenPoint(c.transform)),E=Math.abs(v.x)+Math.abs(v.y);if(E===0)return"";const S=_/E;return`rotateX(${-v.y*S}deg) rotateY(${v.x*S}deg)`}_calculateZTransform(){const o=this._pos,c=this._map;if(!c||!o)return"";let f=0;const _=this.getRotationAlignment();if(_==="map")if(c._showingGlobe()){const v=c.project(new s.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),E=c.project(new s.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(v);f=s.radToDeg(Math.atan2(E.y,E.x))-90}else f=-c.getBearing();else if(_==="horizon"){const v=s.smoothstep(4,6,c.getZoom()),E=s.globeCenterToScreenPoint(c.transform);E.y+=v*c.transform.height;const S=o.sub(E),C=s.radToDeg(Math.atan2(S.y,S.x));f=(C>90?C-270:C+90)*(1-v)}return f+=this._rotation,f?`rotateZ(${f}deg)`:""}_update(o){s.window.cancelAnimationFrame(this._updateFrameId);const c=this._map;c&&(c.transform.renderWorldCopies&&(this._lngLat=aa(this._lngLat,this._pos,c.transform)),this._pos=c.project(this._lngLat),o===!0?this._updateFrameId=s.window.requestAnimationFrame(()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),c._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(c._showingGlobe()||c.getTerrain()||c.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))}))}getOffset(){return this._offset}setOffset(o){return this._offset=s.Point.convert(o),this._update(),this}_onMove(o){const c=this._map;if(!c)return;const f=this._pointerdownPos,_=this._positionDelta;if(f&&_){if(!this._isDragging){const v=this._clickTolerance||c._clickTolerance;if(o.point.dist(f)=this._endTime)return this._end;const c=s.easeCubicInOut((o-this._startTime)/(this._endTime-this._startTime));return this._start*(1-c)+this._end*c}isEasing(o){return o>=this._startTime&&o<=this._endTime}jumpTo(o){this._startTime=-1/0,this._endTime=-1/0,this._start=o,this._end=o}easeTo(o,c,f){this._start=this.getValue(c),this._end=o,this._startTime=c,this._endTime=c+f}}const nf={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use ⌘ + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"},rf={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,respectPrefersReducedMotion:!0,crossSourceCollisions:!0},r_={showCompass:!0,showZoom:!0,visualizePitch:!1};class o_{constructor(o,c,f=!1){this._clickTolerance=10,this.element=c,this.mouseRotate=new Th({clickTolerance:o.dragRotate._mouseRotate._clickTolerance}),this.map=o,f&&(this.mousePitch=new Sh({clickTolerance:o.dragRotate._mousePitch._clickTolerance})),s.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),c.addEventListener("mousedown",this.mousedown),c.addEventListener("touchstart",this.touchstart,{passive:!1}),c.addEventListener("touchmove",this.touchmove),c.addEventListener("touchend",this.touchend),c.addEventListener("touchcancel",this.reset)}down(o,c){this.mouseRotate.mousedown(o,c),this.mousePitch&&this.mousePitch.mousedown(o,c),ue()}move(o,c){const f=this.map,_=this.mouseRotate.mousemoveWindow(o,c),v=_&&_.bearingDelta;if(v&&f.setBearing(f.getBearing()+v),this.mousePitch){const E=this.mousePitch.mousemoveWindow(o,c),S=E&&E.pitchDelta;S&&f.setPitch(f.getPitch()+S)}}off(){const o=this.element;o.removeEventListener("mousedown",this.mousedown),o.removeEventListener("touchstart",this.touchstart,{passive:!1}),o.removeEventListener("touchmove",this.touchmove),o.removeEventListener("touchend",this.touchend),o.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){re(),s.window.removeEventListener("mousemove",this.mousemove),s.window.removeEventListener("mouseup",this.mouseup)}mousedown(o){this.down(s.extend({},o,{ctrlKey:!0,preventDefault:()=>o.preventDefault()}),je(this.element,o)),s.window.addEventListener("mousemove",this.mousemove),s.window.addEventListener("mouseup",this.mouseup)}mousemove(o){this.move(o,je(this.element,o))}mouseup(o){this.mouseRotate.mouseupWindow(o),this.mousePitch&&this.mousePitch.mouseupWindow(o),this.offTemp()}touchstart(o){o.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=tt(this.element,o.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>o.preventDefault()},this._startPos))}touchmove(o){o.targetTouches.length!==1?this.reset():(this._lastPos=tt(this.element,o.targetTouches)[0],this.move({preventDefault:()=>o.preventDefault()},this._lastPos))}touchend(o){o.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)d.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(d.minPitch!=null&&d.maxPitch!=null&&d.minPitch>d.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(d.minPitch!=null&&d.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(d.maxPitch!=null&&d.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(d.antialias&&s.isSafariWithAntialiasingBug(s.window)&&(d.antialias=!1,s.warnOnce("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new ia(d.minZoom,d.maxZoom,d.minPitch,d.maxPitch,d.renderWorldCopies),d),this._interactive=d.interactive,this._minTileCacheSize=d.minTileCacheSize,this._maxTileCacheSize=d.maxTileCacheSize,this._failIfMajorPerformanceCaveat=d.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=d.preserveDrawingBuffer,this._antialias=d.antialias,this._useWebGL2=d.useWebGL2,this._trackResize=d.trackResize,this._bearingSnap=d.bearingSnap,this._refreshExpiredTiles=d.refreshExpiredTiles,this._fadeDuration=d.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=d.crossSourceCollisions,this._collectResourceTiming=d.collectResourceTiming,this._optimizeForTerrain=d.optimizeForTerrain,this._language=this._parseLanguage(d.language),this._worldview=d.worldview,this._renderTaskQueue=new kh,this._domRenderTaskQueue=new kh,this._controls=[],this._markers=[],this._popups=[],this._mapId=s.uniqueId(),this._locale=s.extend({},nf,d.locale),this._clickTolerance=d.clickTolerance,this._cooperativeGestures=d.cooperativeGestures,this._performanceMetricsCollection=d.performanceMetricsCollection,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new zh(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._requestManager=new s.RequestManager(d.transformRequest,d.accessToken,d.testMode),this._silenceAuthErrors=!!d.testMode,typeof d.container=="string"){if(this._container=s.window.document.getElementById(d.container),!this._container)throw new Error(`Container '${d.container}' not found.`)}else{if(!(d.container instanceof s.window.HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=d.container}if(this._container.childNodes.length>0&&s.warnOnce("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),d.maxBounds&&this.setMaxBounds(d.maxBounds),s.bindAll(["_onWindowOnline","_onWindowResize","_onVisibilityChange","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),s.window!==void 0&&(s.window.addEventListener("online",this._onWindowOnline,!1),s.window.addEventListener("resize",this._onWindowResize,!1),s.window.addEventListener("orientationchange",this._onWindowResize,!1),s.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1),s.window.addEventListener("visibilitychange",this._onVisibilityChange,!1)),this.handlers=new Gr(this,d),this._localFontFamily=d.localFontFamily,this._localIdeographFontFamily=d.localIdeographFontFamily,d.style&&this.setStyle(d.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),d.projection&&this.setProjection(d.projection),this._hash=d.hash&&new xh(typeof d.hash=="string"&&d.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:d.center,zoom:d.zoom,bearing:d.bearing,pitch:d.pitch}),d.bounds&&(this.resize(),this.fitBounds(d.bounds,s.extend({},d.fitBoundsOptions,{duration:0})))),this.resize(),d.attributionControl&&this.addControl(new ht({customAttribution:d.customAttribution})),this._logoControl=new Mh,this.addControl(this._logoControl,d.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",o=>{this._update(o.dataType==="style"),this.fire(new s.Event(`${o.dataType}data`,o))}),this.on("dataloading",o=>{this.fire(new s.Event(`${o.dataType}dataloading`,o))})}_getMapId(){return this._mapId}addControl(d,o){if(o===void 0&&(o=d.getDefaultPosition?d.getDefaultPosition():"top-right"),!d||!d.onAdd)return this.fire(new s.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const c=d.onAdd(this);this._controls.push(d);const f=this._controlPositions[o];return o.indexOf("bottom")!==-1?f.insertBefore(c,f.firstChild):f.appendChild(c),this}removeControl(d){if(!d||!d.onRemove)return this.fire(new s.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const o=this._controls.indexOf(d);return o>-1&&this._controls.splice(o,1),d.onRemove(this),this}hasControl(d){return this._controls.indexOf(d)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(d){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const o=!this._moving;return o&&this.fire(new s.Event("movestart",d)).fire(new s.Event("move",d)),this.fire(new s.Event("resize",d)),o&&this.fire(new s.Event("moveend",d)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(d){return this.transform.setMaxBounds(s.LngLatBounds.convert(d)),this._update()}setMinZoom(d){if((d=d??-2)>=-2&&d<=this.transform.maxZoom)return this.transform.minZoom=d,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=d,this._update(),this.getZoom()>d?this.setZoom(d):this.fire(new s.Event("zoomstart")).fire(new s.Event("zoom")).fire(new s.Event("zoomend")),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(d){if((d=d??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(d>=0&&d<=this.transform.maxPitch)return this.transform.minPitch=d,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(d>=this.transform.minPitch)return this.transform.maxPitch=d,this._update(),this.getPitch()>d?this.setPitch(d):this.fire(new s.Event("pitchstart")).fire(new s.Event("pitch")).fire(new s.Event("pitchend")),this;throw new Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(d){return this.transform.renderWorldCopies=d,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(d){return d==="auto"?s.window.navigator.language:Array.isArray(d)?d.length===0?void 0:d.map(o=>o==="auto"?s.window.navigator.language:o):d}setLanguage(d){const o=this._parseLanguage(d);if(!this.style||o===this._language)return this;this._language=o,this.style._reloadSources();for(const c of this._controls)c._setLanguage&&c._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(d){return this.style&&d!==this._worldview?(this._worldview=d,this.style._reloadSources(),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return this.transform.projection.name==="globe"}setProjection(d){return this._lazyInitEmptyStyle(),d?typeof d=="string"&&(d={name:d}):d=null,this._useExplicitProjection=!!d,this._prioritizeAndUpdateProjection(d,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){if(this.getProjection().name!=="globe")return;const d=this.transform,o=d.projection.name;let c;o==="globe"&&d.zoom>=s.GLOBE_ZOOM_THRESHOLD_MAX?(d.setMercatorFromTransition(),c=!0):o==="mercator"&&d.zoom=s.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(d),this.style.applyProjectionUpdate(),o){this.painter.clearBackgroundTiles();for(const c in this.style._sourceCaches)this.style._sourceCaches[c].clearTiles();this._update(!0),this._forceMarkerAndPopupUpdate(!0)}return this}project(d){return this.transform.locationPoint3D(s.LngLat.convert(d))}unproject(d){return this.transform.pointLocation3D(s.Point.convert(d))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(d,o,c){if(d==="mouseenter"||d==="mouseover"){let f=!1;const _=E=>{const S=o.filter(z=>this.getLayer(z)),C=S.length?this.queryRenderedFeatures(E.point,{layers:S}):[];C.length?f||(f=!0,c.call(this,new oi(d,this,E.originalEvent,{features:C}))):f=!1},v=()=>{f=!1};return{layers:new Set(o),listener:c,delegates:{mousemove:_,mouseout:v}}}if(d==="mouseleave"||d==="mouseout"){let f=!1;const _=E=>{const S=o.filter(C=>this.getLayer(C));(S.length?this.queryRenderedFeatures(E.point,{layers:S}):[]).length?f=!0:f&&(f=!1,c.call(this,new oi(d,this,E.originalEvent)))},v=E=>{f&&(f=!1,c.call(this,new oi(d,this,E.originalEvent)))};return{layers:new Set(o),listener:c,delegates:{mousemove:_,mouseout:v}}}{const f=_=>{const v=o.filter(S=>this.getLayer(S)),E=v.length?this.queryRenderedFeatures(_.point,{layers:v}):[];E.length&&(_.features=E,c.call(this,_),delete _.features)};return{layers:new Set(o),listener:c,delegates:{[d]:f}}}}on(d,o,c){if(c===void 0)return super.on(d,o);Array.isArray(o)||(o=[o]);const f=this._createDelegatedListener(d,o,c);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[d]=this._delegatedListeners[d]||[],this._delegatedListeners[d].push(f);for(const _ in f.delegates)this.on(_,f.delegates[_]);return this}once(d,o,c){if(c===void 0)return super.once(d,o);Array.isArray(o)||(o=[o]);const f=this._createDelegatedListener(d,o,c);for(const _ in f.delegates)this.once(_,f.delegates[_]);return this}off(d,o,c){if(c===void 0)return super.off(d,o);o=new Set(Array.isArray(o)?o:[o]);const f=(v,E)=>{if(v.size!==E.size)return!1;for(const S of v)if(!E.has(S))return!1;return!0},_=this._delegatedListeners?this._delegatedListeners[d]:void 0;return _&&(v=>{for(let E=0;E{_?this.fire(new s.ErrorEvent(_)):v&&this._updateDiff(v,o)})}else typeof d=="object"&&this._updateDiff(d,o)}_updateDiff(d,o){try{this.style.setState(d)&&this._update(!0)}catch(c){s.warnOnce(`Unable to perform style diff: ${c.message||c.error||c}. Rebuilding the style from scratch.`),this._updateStyle(d,o)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(s.warnOnce("There is no style added to the map."),!1)}addSource(d,o){return this._lazyInitEmptyStyle(),this.style.addSource(d,o),this._update(!0)}isSourceLoaded(d){return!!this.style&&this.style._isSourceCacheLoaded(d)}areTilesLoaded(){const d=this.style&&this.style._sourceCaches;for(const o in d){const c=d[o]._tiles;for(const f in c){const _=c[f];if(_.state!=="loaded"&&_.state!=="errored")return!1}}return!0}addSourceType(d,o,c){this._lazyInitEmptyStyle(),this.style.addSourceType(d,o,c)}removeSource(d){return this.style.removeSource(d),this._updateTerrain(),this._update(!0)}getSource(d){return this.style.getSource(d)}addImage(d,o,{pixelRatio:c=1,sdf:f=!1,stretchX:_,stretchY:v,content:E}={}){if(this._lazyInitEmptyStyle(),o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap){const{width:S,height:C,data:z}=s.exported.getImageData(o);this.style.addImage(d,{data:new s.RGBAImage({width:S,height:C},z),pixelRatio:c,stretchX:_,stretchY:v,content:E,sdf:f,version:0})}else if(o.width===void 0||o.height===void 0)this.fire(new s.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));else{const{width:S,height:C}=o,z=o;this.style.addImage(d,{data:new s.RGBAImage({width:S,height:C},new Uint8Array(z.data)),pixelRatio:c,stretchX:_,stretchY:v,content:E,sdf:f,version:0,userImage:z}),z.onAdd&&z.onAdd(this,d)}}updateImage(d,o){const c=this.style.getImage(d);if(!c)return void this.fire(new s.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const f=o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap?s.exported.getImageData(o):o,{width:_,height:v}=f;_!==void 0&&v!==void 0?_===c.data.width&&v===c.data.height?(c.data.replace(f.data,!(o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap)),this.style.updateImage(d,c)):this.fire(new s.ErrorEvent(new Error(`The width and height of the updated image (${_}, ${v}) + must be that same as the previous version of the image + (${c.data.width}, ${c.data.height})`))):this.fire(new s.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")))}hasImage(d){return d?!!this.style.getImage(d):(this.fire(new s.ErrorEvent(new Error("Missing required image id"))),!1)}removeImage(d){this.style.removeImage(d)}loadImage(d,o){s.getImage(this._requestManager.transformRequest(d,s.ResourceType.Image),(c,f)=>{o(c,f instanceof s.window.HTMLImageElement?s.exported.getImageData(f):f)})}listImages(){return this.style.listImages()}addLayer(d,o){return this._lazyInitEmptyStyle(),this.style.addLayer(d,o),this._update(!0)}moveLayer(d,o){return this.style.moveLayer(d,o),this._update(!0)}removeLayer(d){return this.style.removeLayer(d),this._update(!0)}getLayer(d){return this.style.getLayer(d)}setLayerZoomRange(d,o,c){return this.style.setLayerZoomRange(d,o,c),this._update(!0)}setFilter(d,o,c={}){return this.style.setFilter(d,o,c),this._update(!0)}getFilter(d){return this.style.getFilter(d)}setPaintProperty(d,o,c,f={}){return this.style.setPaintProperty(d,o,c,f),this._update(!0)}getPaintProperty(d,o){return this.style.getPaintProperty(d,o)}setLayoutProperty(d,o,c,f={}){return this.style.setLayoutProperty(d,o,c,f),this._update(!0)}getLayoutProperty(d,o){return this.style.getLayoutProperty(d,o)}setLight(d,o={}){return this._lazyInitEmptyStyle(),this.style.setLight(d,o),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(d){return this._lazyInitEmptyStyle(),!d&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(d),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(d){return this._lazyInitEmptyStyle(),this.style.setFog(d),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(d){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(s.LngLat.convert(d),this.transform):0}setFeatureState(d,o){return this.style.setFeatureState(d,o),this._update()}removeFeatureState(d,o){return this.style.removeFeatureState(d,o),this._update()}getFeatureState(d){return this.style.getFeatureState(d)}_updateContainerDimensions(){if(!this._container)return;const d=this._container.getBoundingClientRect().width||400,o=this._container.getBoundingClientRect().height||300;let c,f,_,v=this._container;for(;v&&(!f||!_);){const E=s.window.getComputedStyle(v).transform;E&&E!=="none"&&(c=E.match(/matrix.*\((.+)\)/)[1].split(", "),c[0]&&c[0]!=="0"&&c[0]!=="1"&&(f=c[0]),c[3]&&c[3]!=="0"&&c[3]!=="1"&&(_=c[3])),v=v.parentElement}this._containerWidth=f?Math.abs(d/f):d,this._containerHeight=_?Math.abs(o/_):o}_detectMissingCSS(){s.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&s.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")}_setupContainer(){const d=this._container;d.classList.add("mapboxgl-map"),(this._missingCSSCanary=oe("div","mapboxgl-canary",d)).style.visibility="hidden",this._detectMissingCSS();const o=this._canvasContainer=oe("div","mapboxgl-canvas-container",d);this._interactive&&o.classList.add("mapboxgl-interactive"),this._canvas=oe("canvas","mapboxgl-canvas",o),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const c=this._controlContainer=oe("div","mapboxgl-control-container",d),f=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(_=>{f[_]=oe("div",`mapboxgl-ctrl-${_}`,c)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(d,o){const c=s.exported.devicePixelRatio||1;this._canvas.width=c*Math.ceil(d),this._canvas.height=c*Math.ceil(o),this._canvas.style.width=`${d}px`,this._canvas.style.height=`${o}px`}_addMarker(d){this._markers.push(d)}_removeMarker(d){const o=this._markers.indexOf(d);o!==-1&&this._markers.splice(o,1)}_addPopup(d){this._popups.push(d)}_removePopup(d){const o=this._popups.indexOf(d);o!==-1&&this._popups.splice(o,1)}_setupPainter(){const d=s.extend({},F.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._useWebGL2&&this._canvas.getContext("webgl2",d),c=o||this._canvas.getContext("webgl",d)||this._canvas.getContext("experimental-webgl",d);c?(this._useWebGL2&&!o&&s.warnOnce("Failed to create WebGL 2 context. Using WebGL 1."),s.storeAuthState(c,!0),this.painter=new ta(c,this.transform,!!o),this.on("data",f=>{f.dataType==="source"&&this.painter.setTileLoadedFlag(!0)}),s.exported$1.testSupport(c)):this.fire(new s.ErrorEvent(new Error("Failed to initialize WebGL")))}_contextLost(d){d.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new s.Event("webglcontextlost",{originalEvent:d}))}_contextRestored(d){this._setupPainter(),this.resize(),this._update(),this.fire(new s.Event("webglcontextrestored",{originalEvent:d}))}_onMapScroll(d){if(d.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(d){return this.style?(this._styleDirty=this._styleDirty||d,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(d){return this._update(),this._renderTaskQueue.add(d)}_cancelRenderFrame(d){this._renderTaskQueue.remove(d)}_requestDomTask(d){!this.loaded()||this.loaded()&&!this.isMoving()?d():this._domRenderTaskQueue.add(d)}_render(d){let o;const c=this.painter.context.extTimerQuery,f=s.exported.now();if(this.listens("gpu-timing-frame")&&(o=c.createQueryEXT(),c.beginQueryEXT(c.TIME_ELAPSED_EXT,o)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],s.window.performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],s.window.performance.now())),this._renderTaskQueue.run(d),this._domRenderTaskQueue.run(d),this._removed)return;this._updateProjectionTransition();const _=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const S=this.transform.zoom,C=this.transform.pitch,z=s.exported.now(),P=new s.EvaluationParameters(S,{now:z,fadeDuration:_,pitch:C,transition:this.style.getTransition()});this.style.update(P)}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let v=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),v=this._updateAverageElevation(f),this.style._updateSources(this.transform),this._forceMarkerAndPopupUpdate()):v=this._updateAverageElevation(f),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,_,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:_,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new s.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new s.Event("load"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),o){const S=s.exported.now()-f;c.endQueryEXT(c.TIME_ELAPSED_EXT,o),setTimeout(()=>{const C=c.getQueryObjectEXT(o,c.QUERY_RESULT_EXT)/1e6;c.deleteQueryEXT(o),this.fire(new s.Event("gpu-timing-frame",{cpuTime:S,gpuTime:C})),s.window.performance.mark("frame-gpu",{startTime:f,detail:{gpuTime:C}})},50)}if(this.listens("gpu-timing-layer")){const S=this.painter.collectGpuTimers();setTimeout(()=>{const C=this.painter.queryGpuTimers(S);this.fire(new s.Event("gpu-timing-layer",{layerTimes:C}))},50)}if(this.listens("gpu-timing-deferred-render")){const S=this.painter.collectDeferredRenderGpuQueries();setTimeout(()=>{const C=this.painter.queryGpuTimeDeferredRender(S);this.fire(new s.Event("gpu-timing-deferred-render",{gpuTime:C}))},50)}const E=this._sourcesDirty||this._styleDirty||this._placementDirty||v;if(E||this._repaint)this.triggerRepaint();else{const S=!this.isMoving()&&this.loaded();if(S&&(v=this._updateAverageElevation(f,!0)),v)this.triggerRepaint();else if(this._triggerFrame(!1),S&&(this.fire(new s.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const C=this._calculateSpeedIndex();this.fire(new s.Event("speedindexcompleted",{speedIndex:C})),this.speedIndexTiming=!1}}!this._loaded||this._fullyLoaded||E||(this._fullyLoaded=!0,s.LivePerformanceUtils.mark(s.PerformanceMarkers.fullLoad),this._performanceMetricsCollection&&s.postPerformanceEvent(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate())}_forceMarkerAndPopupUpdate(d){for(const o of this._markers)d&&!this.getRenderWorldCopies()&&(o._lngLat=o._lngLat.wrap()),o._update();for(const o of this._popups)!d||this.getRenderWorldCopies()||o._trackPointer||(o._lngLat=o._lngLat.wrap()),o._update()}_updateAverageElevation(d,o=!1){const c=f=>(this.transform.averageElevation=f,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return this.transform.averageElevation!==0&&c(0);if((o||d-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(d)){const f=this.transform.averageElevation;let _=this.transform.sampleAverageElevation(),v=!1;this.transform.elevation&&(v=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(_)?_=0:this._averageElevationLastSampledAt=d;const E=Math.abs(f-_);if(E>1){if(this._isInitialLoad||v)return this._averageElevation.jumpTo(_),c(_);this._averageElevation.easeTo(_,d,300)}else if(E>1e-4)return this._averageElevation.jumpTo(_),c(_)}return!!this._averageElevation.isEasing(d)&&c(this._averageElevation.getValue(d))}_authenticate(){s.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,d=>{if(d&&(d.message===s.AUTH_ERR_MSG||d.status===401)){const o=this.painter.context.gl;s.storeAuthState(o,!1),this._logoControl instanceof Mh&&this._logoControl._updateLogo(),o&&o.clear(o.DEPTH_BUFFER_BIT|o.COLOR_BUFFER_BIT|o.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new s.ErrorEvent(new Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")))}}),s.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_updateTerrain(){const d=this._isDragging();this.painter.updateTerrain(this.style,d)}_calculateSpeedIndex(){const d=this.painter.canvasCopy(),o=this.painter.getCanvasCopiesAndTimestamps();o.timeStamps.push(performance.now());const c=this.painter.context.gl,f=c.createFramebuffer();function _(v){c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_2D,v,0);const E=new Uint8Array(c.drawingBufferWidth*c.drawingBufferHeight*4);return c.readPixels(0,0,c.drawingBufferWidth,c.drawingBufferHeight,c.RGBA,c.UNSIGNED_BYTE,E),E}return c.bindFramebuffer(c.FRAMEBUFFER,f),this._canvasPixelComparison(_(d),o.canvasCopies.map(_),o.timeStamps)}_canvasPixelComparison(d,o,c){let f=c[1]-c[0];const _=d.length/4;for(let v=0;v{const c=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,c&&this._render(o)}))}_preloadTiles(d){const o=this.style?Object.values(this.style._sourceCaches):[];return s.asyncAll(o,(c,f)=>c._preloadTiles(d,f),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(d){this._trackResize&&this.resize({originalEvent:d})._update()}_onVisibilityChange(){s.window.document.visibilityState==="hidden"&&this._visibilityHidden++}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(d){this._showTileBoundaries!==d&&(this._showTileBoundaries=d,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(d){this._showTerrainWireframe!==d&&(this._showTerrainWireframe=d,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(d){this._speedIndexTiming!==d&&(this._speedIndexTiming=d,this._update())}get showPadding(){return!!this._showPadding}set showPadding(d){this._showPadding!==d&&(this._showPadding=d,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(d){this._showCollisionBoxes!==d&&(this._showCollisionBoxes=d,d?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(d){this._showOverdrawInspector!==d&&(this._showOverdrawInspector=d,this._update())}get repaint(){return!!this._repaint}set repaint(d){this._repaint!==d&&(this._repaint=d,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(d){this._vertices=d,this._update()}get showTileAABBs(){return!!this._showTileAABBs}set showTileAABBs(d){this._showTileAABBs!==d&&(this._showTileAABBs=d,d&&this._update())}_setCacheLimits(d,o){s.setCacheLimits(d,o)}get version(){return s.version}},NavigationControl:class{constructor(d){this.options=s.extend({},r_,d),this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",o=>o.preventDefault()),this.options.showZoom&&(s.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",o=>{this._map&&this._map.zoomIn({},{originalEvent:o})}),oe("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",o=>{this._map&&this._map.zoomOut({},{originalEvent:o})}),oe("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(s.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",o=>{const c=this._map;c&&(this.options.visualizePitch?c.resetNorthPitch({},{originalEvent:o}):c.resetNorth({},{originalEvent:o}))}),this._compassIcon=oe("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}_updateZoomButtons(){const d=this._map;if(!d)return;const o=d.getZoom(),c=o===d.getMaxZoom(),f=o===d.getMinZoom();this._zoomInButton.disabled=c,this._zoomOutButton.disabled=f,this._zoomInButton.setAttribute("aria-disabled",c.toString()),this._zoomOutButton.setAttribute("aria-disabled",f.toString())}_rotateCompassArrow(){const d=this._map;if(!d)return;const o=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(d.transform.pitch*(Math.PI/180)),.5)}) rotateX(${d.transform.pitch}deg) rotateZ(${d.transform.angle*(180/Math.PI)}deg)`:`rotate(${d.transform.angle*(180/Math.PI)}deg)`;d._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=o)})}onAdd(d){return this._map=d,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),d.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&d.on("pitch",this._rotateCompassArrow),d.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new o_(d,this._compass,this.options.visualizePitch)),this._container}onRemove(){const d=this._map;d&&(this._container.remove(),this.options.showZoom&&d.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&d.off("pitch",this._rotateCompassArrow),d.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0)}_createButton(d,o){const c=oe("button",d,this._container);return c.type="button",c.addEventListener("click",o),c}_setButtonTitle(d,o){if(!this._map)return;const c=this._map._getUIString(`NavigationControl.${o}`);d.setAttribute("aria-label",c),d.firstElementChild&&d.firstElementChild.setAttribute("title",c)}},GeolocateControl:class extends s.Evented{constructor(d){super(),this.options=s.extend({geolocation:s.window.navigator.geolocation},Lh,d),s.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=ra(this._updateMarkerRotation,20),this._numberOfWatches=0}onAdd(d){return this._map=d,this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){this._geolocationWatchID!==void 0&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1}_checkGeolocationSupport(d){const o=(c=!!this.options.geolocation)=>{this._supportsGeolocation=c,d(c)};this._supportsGeolocation!==void 0?d(this._supportsGeolocation):s.window.navigator.permissions!==void 0?s.window.navigator.permissions.query({name:"geolocation"}).then(c=>o(c.state!=="denied")).catch(()=>o()):o()}_isOutOfMapMaxBounds(d){const o=this._map.getMaxBounds(),c=d.coords;return!!o&&(c.longitudeo.getEast()||c.latitudeo.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}}_onSuccess(d){if(this._map){if(this._isOutOfMapMaxBounds(d))return this._setErrorState(),this.fire(new s.Event("outofmaxbounds",d)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=d,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(d),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(d),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new s.Event("geolocate",d)),this._finish()}}_updateCamera(d){const o=new s.LngLat(d.coords.longitude,d.coords.latitude),c=d.coords.accuracy,f=this._map.getBearing(),_=s.extend({bearing:f},this.options.fitBoundsOptions);this._map.fitBounds(o.toBounds(c),_,{geolocateSource:!0})}_updateMarker(d){if(d){const o=new s.LngLat(d.coords.longitude,d.coords.latitude);this._accuracyCircleMarker.setLngLat(o).addTo(this._map),this._userLocationDotMarker.setLngLat(o).addTo(this._map),this._accuracy=d.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){const d=this._map.transform,o=s.mercatorZfromAltitude(1,d._center.lat)*d.worldSize,c=Math.ceil(2*this._accuracy*o);this._circleElement.style.width=`${c}px`,this._circleElement.style.height=`${c}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&typeof this._heading=="number"?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(d){if(this._map){if(this.options.trackUserLocation)if(d.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const o=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(d.code===3&&this._noTimeout)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new s.Event("error",d)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(d){if(this._map!==void 0){if(this._container.addEventListener("contextmenu",o=>o.preventDefault()),this._geolocateButton=oe("button","mapboxgl-ctrl-geolocate",this._container),oe("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",d===!1){s.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const o=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}else{const o=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=oe("div","mapboxgl-user-location"),this._dotElement.appendChild(oe("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(oe("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new st({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=oe("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new st({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",o=>{o.geolocateSource||this._watchState!=="ACTIVE_LOCK"||o.originalEvent&&o.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new s.Event("trackuserlocationend")))})}}_onDeviceOrientation(d){this._userLocationDotMarker&&(d.webkitCompassHeading?this._heading=d.webkitCompassHeading:d.absolute===!0&&(this._heading=-1*d.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return s.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new s.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new s.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let d;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(d={maximumAge:6e5,timeout:0},this._noTimeout=!0):(d=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,d),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){const d=()=>{s.window.addEventListener("ondeviceorientationabsolute"in s.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientation)};s.window.DeviceMotionEvent!==void 0&&typeof s.window.DeviceMotionEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(o=>{o==="granted"&&d()}).catch(console.error):d()}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),s.window.removeEventListener("deviceorientation",this._onDeviceOrientation),s.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},AttributionControl:ht,ScaleControl:class{constructor(d){this.options=s.extend({},Rh,d),this._isNumberFormatSupported=function(){try{return new Intl.NumberFormat("en",{style:"unit",unitDisplay:"short",unit:"meter"}),!0}catch{return!1}}(),s.bindAll(["_update","_setScale","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_update(){const d=this.options.maxWidth||100,o=this._map,c=o._containerHeight/2,f=o._containerWidth/2-d/2,_=o.unproject([f,c]),v=o.unproject([f+d,c]),E=_.distanceTo(v);if(this.options.unit==="imperial"){const S=3.2808*E;S>5280?this._setScale(d,S/5280,"mile"):this._setScale(d,S,"foot")}else this.options.unit==="nautical"?this._setScale(d,E/1852,"nautical-mile"):E>=1e3?this._setScale(d,E/1e3,"kilometer"):this._setScale(d,E,"meter")}_setScale(d,o,c){this._map._requestDomTask(()=>{const f=function(v){const E=Math.pow(10,`${Math.floor(v)}`.length-1);let S=v/E;return S=S>=10?10:S>=5?5:S>=3?3:S>=2?2:S>=1?1:function(C){const z=Math.pow(10,Math.ceil(-Math.log(C)/Math.LN10));return Math.round(C*z)/z}(S),E*S}(o),_=f/o;this._container.innerHTML=this._isNumberFormatSupported&&c!=="nautical-mile"?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"short",unit:c}).format(f):`${f} ${Dh[c]}`,this._container.style.width=d*_+"px"})}onAdd(d){return this._map=d,this._language=d.getLanguage(),this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-scale",d.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0}_setLanguage(d){this._language=d,this._update()}setUnit(d){this.options.unit=d,this._update()}},FullscreenControl:class{constructor(d){this._fullscreen=!1,d&&d.container&&(d.container instanceof s.window.HTMLElement?this._container=d.container:s.warnOnce("Full screen control 'container' must be a DOM element.")),s.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in s.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in s.window.document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(d){return this._map=d,this._container||(this._container=this._map.getContainer()),this._controlContainer=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",s.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,s.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!s.window.document.fullscreenEnabled&&!s.window.document.webkitFullscreenEnabled)}_setupUI(){const d=this._fullscreenButton=oe("button","mapboxgl-ctrl-fullscreen",this._controlContainer);oe("span","mapboxgl-ctrl-icon",d).setAttribute("aria-hidden","true"),d.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),s.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){const d=this._getTitle();this._fullscreenButton.setAttribute("aria-label",d),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",d)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(s.window.document.fullscreenElement||s.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())}_onClickFullscreen(){this._isFullscreen()?s.window.document.exitFullscreen?s.window.document.exitFullscreen():s.window.document.webkitCancelFullScreen&&s.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends s.Evented{constructor(d){super(),this.options=s.extend(Object.create(Ph),d),s.bindAll(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(d&&d.className?d.className.trim().split(/\s+/):[])}addTo(d){return this._map&&this.remove(),this._map=d,this.options.closeOnClick&&d.on("preclick",this._onClose),this.options.closeOnMove&&d.on("move",this._onClose),d.on("remove",this.remove),this._update(),d._addPopup(this),this._focusFirstElement(),this._trackPointer?(d.on("mousemove",this._onMouseEvent),d.on("mouseup",this._onMouseEvent),d._canvasContainer.classList.add("mapboxgl-track-pointer")):d.on("move",this._update),this.fire(new s.Event("open")),this}isOpen(){return!!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const d=this._map;return d&&(d.off("move",this._update),d.off("move",this._onClose),d.off("preclick",this._onClose),d.off("click",this._onClose),d.off("remove",this.remove),d.off("mousemove",this._onMouseEvent),d.off("mouseup",this._onMouseEvent),d.off("drag",this._onMouseEvent),d._canvasContainer&&d._canvasContainer.classList.remove("mapboxgl-track-pointer"),d._removePopup(this),this._map=void 0),this.fire(new s.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(d){this._lngLat=s.LngLat.convert(d),this._pos=null,this._trackPointer=!1,this._update();const o=this._map;return o&&(o.on("move",this._update),o.off("mousemove",this._onMouseEvent),o._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const d=this._map;return d&&(d.off("move",this._update),d.on("mousemove",this._onMouseEvent),d.on("drag",this._onMouseEvent),d._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(d){return this.setDOMContent(s.window.document.createTextNode(d))}setHTML(d){const o=s.window.document.createDocumentFragment(),c=s.window.document.createElement("body");let f;for(c.innerHTML=d;f=c.firstChild,f;)o.appendChild(f);return this.setDOMContent(o)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(d){return this.options.maxWidth=d,this._update(),this}setDOMContent(d){let o=this._content;if(o)for(;o.hasChildNodes();)o.firstChild&&o.removeChild(o.firstChild);else o=this._content=oe("div","mapboxgl-popup-content",this._container||void 0);if(o.appendChild(d),this.options.closeButton){const c=this._closeButton=oe("button","mapboxgl-popup-close-button",o);c.type="button",c.setAttribute("aria-label","Close popup"),c.setAttribute("aria-hidden","true"),c.innerHTML="×",c.addEventListener("click",this._onClose)}return this._update(),this._focusFirstElement(),this}addClassName(d){return this._classList.add(d),this._updateClassList(),this}removeClassName(d){return this._classList.delete(d),this._updateClassList(),this}setOffset(d){return this.options.offset=d,this._update(),this}toggleClassName(d){let o;return this._classList.delete(d)?o=!1:(this._classList.add(d),o=!0),this._updateClassList(),o}_onMouseEvent(d){this._update(d.point)}_getAnchor(d){if(this.options.anchor)return this.options.anchor;const o=this._map,c=this._container,f=this._pos;if(!o||!c||!f)return"bottom";const _=c.offsetWidth,v=c.offsetHeight,E=f.x<_/2,S=f.x>o.transform.width-_/2;if(f.y+do.transform.height-v){if(E)return"bottom-left";if(S)return"bottom-right"}return E?"left":S?"right":"bottom"}_updateClassList(){const d=this._container;if(!d)return;const o=[...this._classList];o.push("mapboxgl-popup"),this._anchor&&o.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&o.push("mapboxgl-popup-track-pointer"),d.className=o.join(" ")}_update(d){const o=this._map,c=this._content;if(!o||!this._lngLat&&!this._trackPointer||!c)return;let f=this._container;if(f||(f=this._container=oe("div","mapboxgl-popup",o.getContainer()),this._tip=oe("div","mapboxgl-popup-tip",f),f.appendChild(c)),this.options.maxWidth&&f.style.maxWidth!==this.options.maxWidth&&(f.style.maxWidth=this.options.maxWidth),o.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=aa(this._lngLat,this._pos,o.transform)),!this._trackPointer||d){const _=this._pos=this._trackPointer&&d?d:o.project(this._lngLat),v=tf(this.options.offset),E=this._anchor=this._getAnchor(v.y),S=tf(this.options.offset,E),C=_.add(S).round();o._requestDomTask(()=>{this._container&&E&&(this._container.style.transform=`${_s[E]} translate(${C.x}px,${C.y}px)`)})}if(!this._marker&&o._showingGlobe()){const _=s.isLngLatBehindGlobe(o.transform,this._lngLat)?0:1;this._setOpacity(_)}this._updateClassList()}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const d=this._container.querySelector(i_);d&&d.focus()}_onClose(){this.remove()}_setOpacity(d){this._container&&(this._container.style.opacity=`${d}`),this._content&&(this._content.style.pointerEvents=d?"auto":"none")}},Marker:st,Style:jr,LngLat:s.LngLat,LngLatBounds:s.LngLatBounds,Point:s.Point,MercatorCoordinate:s.MercatorCoordinate,FreeCameraOptions:Up,Evented:s.Evented,config:s.config,prewarm:function(){$s().acquire(Fr)},clearPrewarmedResources:function(){const d=Ci;d&&(d.isPreloaded()&&d.numActive()===1?(d.release(Fr),Ci=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return s.config.ACCESS_TOKEN},set accessToken(d){s.config.ACCESS_TOKEN=d},get baseApiUrl(){return s.config.API_URL},set baseApiUrl(d){s.config.API_URL=d},get workerCount(){return ii.workerCount},set workerCount(d){ii.workerCount=d},get maxParallelImageRequests(){return s.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(d){s.config.MAX_PARALLEL_IMAGE_REQUESTS=d},clearStorage(d){s.clearTileCache(d)},workerUrl:"",workerClass:null,setNow:s.exported.setNow,restoreNow:s.exported.restoreNow};return la});var T=g;return T})})(KA);var wx=KA.exports;const b4=sv(wx),E4=AM({__proto__:null,default:b4},[wx]);const e0="pk.eyJ1IjoicnVyYWxpbm5vIiwiYSI6ImNqeHl0cW0xODBlMm0zY2x0dXltYzRuazUifQ.zZBovoCHzLIW0wCZveEKzA",p2="/examples/cori.data.rin/rin_service_areas.geojson";function T4(){var x;const t=ft.useContext(_A),i=ft.useRef(null),l=ft.useMemo(()=>(T,s,M,F)=>{console.log("Set popup: ",i.current);const q=new wx.Popup;return F.hasOwnProperty(M)?(q.setLngLat([T,s]),q.setText(F[M])):q.setText("Hello world!"),q},[]);let h=!1;function g(T,s,M,F,q,X,oe){return ft.createElement(yA,{ref:T,longitude:s,latitude:M,color:F,popup:q(s,M,X,oe),key:oe[X]+"-marker"})}return ft.useEffect(()=>{if(t&&!t.data.hasOwnProperty("placeData")&&!h){console.log("Initial place data fetch..."),console.log(p2),h=!0;const T=window.document.getElementById("info-wrapper");T!==null&&(T.style.opacity="1.0",T.style.position="absolute",T.style.background=`rgba(46, 60, 67, 0.5) url('${t.baseURL}/images/loading.gif') no-repeat fixed center`,T.style.backgroundSize="20px"),t.setData({...(t==null?void 0:t.data)||{},placeData:null}),t==null||t.apiClient.get(p2).then(s=>{s&&s.hasOwnProperty("data")&&(console.log("Data result:",s.data.features),t.setData({...t.data,placeData:s.data.features}),h=!1,T!==null&&(T.style.opacity="0.0",T.style.pointerEvents="none",setTimeout(()=>{T.style.background="transparent"},533)))}).catch(s=>{console.error("Error fetching data:",s),h=!1,T!==null&&(T.style.opacity="0.0",T.style.pointerEvents="none",setTimeout(()=>{T.style.background="transparent"},533))})}},[t==null?void 0:t.data]),ft.createElement(ft.Fragment,null,ft.createElement("div",{className:"slippy-map"},ft.createElement(Z3,{mapboxAccessToken:e0,initialViewState:{latitude:40,longitude:-100,pitch:45,zoom:4},style:{width:600,height:400},mapStyle:`https://api.mapbox.com/styles/v1/ruralinno/cl010e7b7001p15pe3l0306hv?access_token=${e0}`},!!(t!=null&&t.data)&&!!((x=t==null?void 0:t.data)!=null&&x.placeData)&&t.data.placeData.length>0&&!!i&&typeof i!==void 0&&t.data.placeData.map(T=>{console.log(T);const s=typeof T.geometry.coordinates[0]=="number"?T.geometry.coordinates[0]:0,M=typeof T.geometry.coordinates[1]=="number"?T.geometry.coordinates[1]:0;return g(i,s,M,"#247dc9",l,"rin_community",T.properties)}),ft.createElement(i4,{mapboxAccessToken:e0,position:"top-right"}),ft.createElement(H3,{position:"top-right"}),ft.createElement(W3,{position:"top-right"}),ft.createElement(X3,{position:"bottom-left",unit:"imperial"}))),ft.createElement("div",{id:"info-wrapper",style:{pointerEvents:"none",position:"absolute",top:0,minWidth:"100vw",minHeight:"100vh",transition:"opacity 5.05s ease-in-out 0.025s",opacity:"initial",background:"transparent",backgroundSize:"20px",zIndex:100}}))}const S4="https://cori-risi-apps.s3.amazonaws.com";function A4(t){TS(t).render(ft.createElement(ft.StrictMode,null,ft.createElement(m3,{baseURL:S4},ft.createElement(T4,null))))}A4(document.getElementById("app")); diff --git a/assets/index-c844f23b.js b/assets/index-c844f23b.js new file mode 100644 index 0000000..b82986c --- /dev/null +++ b/assets/index-c844f23b.js @@ -0,0 +1,1388 @@ +function AM(t,i){for(var l=0;lh[g]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const g of document.querySelectorAll('link[rel="modulepreload"]'))h(g);new MutationObserver(g=>{for(const x of g)if(x.type==="childList")for(const T of x.addedNodes)T.tagName==="LINK"&&T.rel==="modulepreload"&&h(T)}).observe(document,{childList:!0,subtree:!0});function l(g){const x={};return g.integrity&&(x.integrity=g.integrity),g.referrerPolicy&&(x.referrerPolicy=g.referrerPolicy),g.crossOrigin==="use-credentials"?x.credentials="include":g.crossOrigin==="anonymous"?x.credentials="omit":x.credentials="same-origin",x}function h(g){if(g.ep)return;g.ep=!0;const x=l(g);fetch(g.href,x)}})();var Co=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function sv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var f2={exports:{}},Yt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var up=Symbol.for("react.element"),CM=Symbol.for("react.portal"),IM=Symbol.for("react.fragment"),MM=Symbol.for("react.strict_mode"),kM=Symbol.for("react.profiler"),PM=Symbol.for("react.provider"),zM=Symbol.for("react.context"),LM=Symbol.for("react.forward_ref"),RM=Symbol.for("react.suspense"),DM=Symbol.for("react.memo"),OM=Symbol.for("react.lazy"),Jw=Symbol.iterator;function BM(t){return t===null||typeof t!="object"?null:(t=Jw&&t[Jw]||t["@@iterator"],typeof t=="function"?t:null)}var m2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g2=Object.assign,_2={};function Lu(t,i,l){this.props=t,this.context=i,this.refs=_2,this.updater=l||m2}Lu.prototype.isReactComponent={};Lu.prototype.setState=function(t,i){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,i,"setState")};Lu.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function y2(){}y2.prototype=Lu.prototype;function av(t,i,l){this.props=t,this.context=i,this.refs=_2,this.updater=l||m2}var lv=av.prototype=new y2;lv.constructor=av;g2(lv,Lu.prototype);lv.isPureReactComponent=!0;var Qw=Array.isArray,v2=Object.prototype.hasOwnProperty,cv={current:null},x2={key:!0,ref:!0,__self:!0,__source:!0};function w2(t,i,l){var h,g={},x=null,T=null;if(i!=null)for(h in i.ref!==void 0&&(T=i.ref),i.key!==void 0&&(x=""+i.key),i)v2.call(i,h)&&!x2.hasOwnProperty(h)&&(g[h]=i[h]);var s=arguments.length-2;if(s===1)g.children=l;else if(1>>1,dn=Ke[Bt];if(0>>1;Bt<_n;){var ei=2*(Bt+1)-1,Wi=Ke[ei],ti=ei+1,pi=Ke[ti];if(0>g(Wi,xt))tig(pi,Wi)?(Ke[Bt]=pi,Ke[ti]=xt,Bt=ti):(Ke[Bt]=Wi,Ke[ei]=xt,Bt=ei);else if(tig(pi,xt))Ke[Bt]=pi,Ke[ti]=xt,Bt=ti;else break e}}return Tt}function g(Ke,Tt){var xt=Ke.sortIndex-Tt.sortIndex;return xt!==0?xt:Ke.id-Tt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var x=performance;t.unstable_now=function(){return x.now()}}else{var T=Date,s=T.now();t.unstable_now=function(){return T.now()-s}}var M=[],F=[],q=1,X=null,oe=3,Ae=!1,fe=!1,ke=!1,ze=typeof setTimeout=="function"?setTimeout:null,ue=typeof clearTimeout=="function"?clearTimeout:null,re=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function le(Ke){for(var Tt=l(F);Tt!==null;){if(Tt.callback===null)h(F);else if(Tt.startTime<=Ke)h(F),Tt.sortIndex=Tt.expirationTime,i(M,Tt);else break;Tt=l(F)}}function De(Ke){if(ke=!1,le(Ke),!fe)if(l(M)!==null)fe=!0,wr(je);else{var Tt=l(F);Tt!==null&&Or(De,Tt.startTime-Ke)}}function je(Ke,Tt){fe=!1,ke&&(ke=!1,ue(ut),ut=-1),Ae=!0;var xt=oe;try{for(le(Tt),X=l(M);X!==null&&(!(X.expirationTime>Tt)||Ke&&!di());){var Bt=X.callback;if(typeof Bt=="function"){X.callback=null,oe=X.priorityLevel;var dn=Bt(X.expirationTime<=Tt);Tt=t.unstable_now(),typeof dn=="function"?X.callback=dn:X===l(M)&&h(M),le(Tt)}else h(M);X=l(M)}if(X!==null)var _n=!0;else{var ei=l(F);ei!==null&&Or(De,ei.startTime-Tt),_n=!1}return _n}finally{X=null,oe=xt,Ae=!1}}var tt=!1,lt=null,ut=-1,Ve=5,jt=-1;function di(){return!(t.unstable_now()-jtKe||125Bt?(Ke.sortIndex=xt,i(F,Ke),l(M)===null&&Ke===l(F)&&(ke?(ue(ut),ut=-1):ke=!0,Or(De,xt-Bt))):(Ke.sortIndex=dn,i(M,Ke),fe||Ae||(fe=!0,wr(je))),Ke},t.unstable_shouldYield=di,t.unstable_wrapCallback=function(Ke){var Tt=oe;return function(){var xt=oe;oe=Tt;try{return Ke.apply(this,arguments)}finally{oe=xt}}}})(S2);T2.exports=S2;var VM=T2.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var GM=ft,Lr=VM;function it(t){for(var i="https://reactjs.org/docs/error-decoder.html?invariant="+t,l=1;l"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),t0=Object.prototype.hasOwnProperty,$M=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,tb={},nb={};function qM(t){return t0.call(nb,t)?!0:t0.call(tb,t)?!1:$M.test(t)?nb[t]=!0:(tb[t]=!0,!1)}function ZM(t,i,l,h){if(l!==null&&l.type===0)return!1;switch(typeof i){case"function":case"symbol":return!0;case"boolean":return h?!1:l!==null?!l.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function WM(t,i,l,h){if(i===null||typeof i>"u"||ZM(t,i,l,h))return!0;if(h)return!1;if(l!==null)switch(l.type){case 3:return!i;case 4:return i===!1;case 5:return isNaN(i);case 6:return isNaN(i)||1>i}return!1}function tr(t,i,l,h,g,x,T){this.acceptsBooleans=i===2||i===3||i===4,this.attributeName=h,this.attributeNamespace=g,this.mustUseProperty=l,this.propertyName=t,this.type=i,this.sanitizeURL=x,this.removeEmptyString=T}var Pi={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Pi[t]=new tr(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var i=t[0];Pi[i]=new tr(i,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Pi[t]=new tr(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Pi[t]=new tr(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Pi[t]=new tr(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Pi[t]=new tr(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Pi[t]=new tr(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Pi[t]=new tr(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Pi[t]=new tr(t,5,!1,t.toLowerCase(),null,!1,!1)});var hv=/[\-:]([a-z])/g;function dv(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var i=t.replace(hv,dv);Pi[i]=new tr(i,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Pi[t]=new tr(t,1,!1,t.toLowerCase(),null,!1,!1)});Pi.xlinkHref=new tr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Pi[t]=new tr(t,1,!1,t.toLowerCase(),null,!0,!0)});function pv(t,i,l,h){var g=Pi.hasOwnProperty(i)?Pi[i]:null;(g!==null?g.type!==0:h||!(2s||g[T]!==x[s]){var M=` +`+g[T].replace(" at new "," at ");return t.displayName&&M.includes("")&&(M=M.replace("",t.displayName)),M}while(1<=T&&0<=s);break}}}finally{vy=!1,Error.prepareStackTrace=l}return(t=t?t.displayName||t.name:"")?Id(t):""}function HM(t){switch(t.tag){case 5:return Id(t.type);case 16:return Id("Lazy");case 13:return Id("Suspense");case 19:return Id("SuspenseList");case 0:case 2:case 15:return t=xy(t.type,!1),t;case 11:return t=xy(t.type.render,!1),t;case 1:return t=xy(t.type,!0),t;default:return""}}function o0(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case ru:return"Fragment";case iu:return"Portal";case n0:return"Profiler";case fv:return"StrictMode";case i0:return"Suspense";case r0:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case I2:return(t.displayName||"Context")+".Consumer";case C2:return(t._context.displayName||"Context")+".Provider";case mv:var i=t.render;return t=t.displayName,t||(t=i.displayName||i.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case gv:return i=t.displayName||null,i!==null?i:o0(t.type)||"Memo";case Ea:i=t._payload,t=t._init;try{return o0(t(i))}catch{}}return null}function XM(t){var i=t.type;switch(t.tag){case 24:return"Cache";case 9:return(i.displayName||"Context")+".Consumer";case 10:return(i._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=i.render,t=t.displayName||t.name||"",i.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return o0(i);case 8:return i===fv?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i}return null}function Fa(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function k2(t){var i=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function KM(t){var i=k2(t)?"checked":"value",l=Object.getOwnPropertyDescriptor(t.constructor.prototype,i),h=""+t[i];if(!t.hasOwnProperty(i)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var g=l.get,x=l.set;return Object.defineProperty(t,i,{configurable:!0,get:function(){return g.call(this)},set:function(T){h=""+T,x.call(this,T)}}),Object.defineProperty(t,i,{enumerable:l.enumerable}),{getValue:function(){return h},setValue:function(T){h=""+T},stopTracking:function(){t._valueTracker=null,delete t[i]}}}}function qf(t){t._valueTracker||(t._valueTracker=KM(t))}function P2(t){if(!t)return!1;var i=t._valueTracker;if(!i)return!0;var l=i.getValue(),h="";return t&&(h=k2(t)?t.checked?"true":"false":t.value),t=h,t!==l?(i.setValue(t),!0):!1}function Pm(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function s0(t,i){var l=i.checked;return Xn({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:l??t._wrapperState.initialChecked})}function rb(t,i){var l=i.defaultValue==null?"":i.defaultValue,h=i.checked!=null?i.checked:i.defaultChecked;l=Fa(i.value!=null?i.value:l),t._wrapperState={initialChecked:h,initialValue:l,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function z2(t,i){i=i.checked,i!=null&&pv(t,"checked",i,!1)}function a0(t,i){z2(t,i);var l=Fa(i.value),h=i.type;if(l!=null)h==="number"?(l===0&&t.value===""||t.value!=l)&&(t.value=""+l):t.value!==""+l&&(t.value=""+l);else if(h==="submit"||h==="reset"){t.removeAttribute("value");return}i.hasOwnProperty("value")?l0(t,i.type,l):i.hasOwnProperty("defaultValue")&&l0(t,i.type,Fa(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(t.defaultChecked=!!i.defaultChecked)}function ob(t,i,l){if(i.hasOwnProperty("value")||i.hasOwnProperty("defaultValue")){var h=i.type;if(!(h!=="submit"&&h!=="reset"||i.value!==void 0&&i.value!==null))return;i=""+t._wrapperState.initialValue,l||i===t.value||(t.value=i),t.defaultValue=i}l=t.name,l!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,l!==""&&(t.name=l)}function l0(t,i,l){(i!=="number"||Pm(t.ownerDocument)!==t)&&(l==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+l&&(t.defaultValue=""+l))}var Md=Array.isArray;function gu(t,i,l,h){if(t=t.options,i){i={};for(var g=0;g"+i.valueOf().toString()+"",i=Zf.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;i.firstChild;)t.appendChild(i.firstChild)}});function Gd(t,i){if(i){var l=t.firstChild;if(l&&l===t.lastChild&&l.nodeType===3){l.nodeValue=i;return}}t.textContent=i}var zd={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},YM=["Webkit","ms","Moz","O"];Object.keys(zd).forEach(function(t){YM.forEach(function(i){i=i+t.charAt(0).toUpperCase()+t.substring(1),zd[i]=zd[t]})});function O2(t,i,l){return i==null||typeof i=="boolean"||i===""?"":l||typeof i!="number"||i===0||zd.hasOwnProperty(t)&&zd[t]?(""+i).trim():i+"px"}function B2(t,i){t=t.style;for(var l in i)if(i.hasOwnProperty(l)){var h=l.indexOf("--")===0,g=O2(l,i[l],h);l==="float"&&(l="cssFloat"),h?t.setProperty(l,g):t[l]=g}}var JM=Xn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function h0(t,i){if(i){if(JM[t]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(it(137,t));if(i.dangerouslySetInnerHTML!=null){if(i.children!=null)throw Error(it(60));if(typeof i.dangerouslySetInnerHTML!="object"||!("__html"in i.dangerouslySetInnerHTML))throw Error(it(61))}if(i.style!=null&&typeof i.style!="object")throw Error(it(62))}}function d0(t,i){if(t.indexOf("-")===-1)return typeof i.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var p0=null;function _v(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var f0=null,_u=null,yu=null;function lb(t){if(t=pp(t)){if(typeof f0!="function")throw Error(it(280));var i=t.stateNode;i&&(i=fg(i),f0(t.stateNode,t.type,i))}}function F2(t){_u?yu?yu.push(t):yu=[t]:_u=t}function N2(){if(_u){var t=_u,i=yu;if(yu=_u=null,lb(t),i)for(t=0;t>>=0,t===0?32:31-(ck(t)/uk|0)|0}var Wf=64,Hf=4194304;function kd(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Dm(t,i){var l=t.pendingLanes;if(l===0)return 0;var h=0,g=t.suspendedLanes,x=t.pingedLanes,T=l&268435455;if(T!==0){var s=T&~g;s!==0?h=kd(s):(x&=T,x!==0&&(h=kd(x)))}else T=l&~g,T!==0?h=kd(T):x!==0&&(h=kd(x));if(h===0)return 0;if(i!==0&&i!==h&&!(i&g)&&(g=h&-h,x=i&-i,g>=x||g===16&&(x&4194240)!==0))return i;if(h&4&&(h|=l&16),i=t.entangledLanes,i!==0)for(t=t.entanglements,i&=h;0l;l++)i.push(t);return i}function hp(t,i,l){t.pendingLanes|=i,i!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,i=31-Io(i),t[i]=l}function fk(t,i){var l=t.pendingLanes&~i;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=i,t.mutableReadLanes&=i,t.entangledLanes&=i,i=t.entanglements;var h=t.eventTimes;for(t=t.expirationTimes;0=Rd),_b=String.fromCharCode(32),yb=!1;function oT(t,i){switch(t){case"keyup":return Vk.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function sT(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ou=!1;function $k(t,i){switch(t){case"compositionend":return sT(i);case"keypress":return i.which!==32?null:(yb=!0,_b);case"textInput":return t=i.data,t===_b&&yb?null:t;default:return null}}function qk(t,i){if(ou)return t==="compositionend"||!Sv&&oT(t,i)?(t=iT(),gm=bv=Ca=null,ou=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:l,offset:i-t};t=h}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=bb(l)}}function uT(t,i){return t&&i?t===i?!0:t&&t.nodeType===3?!1:i&&i.nodeType===3?uT(t,i.parentNode):"contains"in t?t.contains(i):t.compareDocumentPosition?!!(t.compareDocumentPosition(i)&16):!1:!1}function hT(){for(var t=window,i=Pm();i instanceof t.HTMLIFrameElement;){try{var l=typeof i.contentWindow.location.href=="string"}catch{l=!1}if(l)t=i.contentWindow;else break;i=Pm(t.document)}return i}function Av(t){var i=t&&t.nodeName&&t.nodeName.toLowerCase();return i&&(i==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||i==="textarea"||t.contentEditable==="true")}function eP(t){var i=hT(),l=t.focusedElem,h=t.selectionRange;if(i!==l&&l&&l.ownerDocument&&uT(l.ownerDocument.documentElement,l)){if(h!==null&&Av(l)){if(i=h.start,t=h.end,t===void 0&&(t=i),"selectionStart"in l)l.selectionStart=i,l.selectionEnd=Math.min(t,l.value.length);else if(t=(i=l.ownerDocument||document)&&i.defaultView||window,t.getSelection){t=t.getSelection();var g=l.textContent.length,x=Math.min(h.start,g);h=h.end===void 0?x:Math.min(h.end,g),!t.extend&&x>h&&(g=h,h=x,x=g),g=Eb(l,x);var T=Eb(l,h);g&&T&&(t.rangeCount!==1||t.anchorNode!==g.node||t.anchorOffset!==g.offset||t.focusNode!==T.node||t.focusOffset!==T.offset)&&(i=i.createRange(),i.setStart(g.node,g.offset),t.removeAllRanges(),x>h?(t.addRange(i),t.extend(T.node,T.offset)):(i.setEnd(T.node,T.offset),t.addRange(i)))}}for(i=[],t=l;t=t.parentNode;)t.nodeType===1&&i.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,su=null,x0=null,Od=null,w0=!1;function Tb(t,i,l){var h=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;w0||su==null||su!==Pm(h)||(h=su,"selectionStart"in h&&Av(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),Od&&Xd(Od,h)||(Od=h,h=Fm(x0,"onSelect"),0cu||(t.current=C0[cu],C0[cu]=null,cu--)}function Mn(t,i){cu++,C0[cu]=t.current,t.current=i}var Na={},qi=Ga(Na),gr=Ga(!1),Zl=Na;function Su(t,i){var l=t.type.contextTypes;if(!l)return Na;var h=t.stateNode;if(h&&h.__reactInternalMemoizedUnmaskedChildContext===i)return h.__reactInternalMemoizedMaskedChildContext;var g={},x;for(x in l)g[x]=i[x];return h&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=i,t.__reactInternalMemoizedMaskedChildContext=g),g}function _r(t){return t=t.childContextTypes,t!=null}function Um(){Rn(gr),Rn(qi)}function Pb(t,i,l){if(qi.current!==Na)throw Error(it(168));Mn(qi,i),Mn(gr,l)}function xT(t,i,l){var h=t.stateNode;if(i=i.childContextTypes,typeof h.getChildContext!="function")return l;h=h.getChildContext();for(var g in h)if(!(g in i))throw Error(it(108,XM(t)||"Unknown",g));return Xn({},l,h)}function jm(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Na,Zl=qi.current,Mn(qi,t),Mn(gr,gr.current),!0}function zb(t,i,l){var h=t.stateNode;if(!h)throw Error(it(169));l?(t=xT(t,i,Zl),h.__reactInternalMemoizedMergedChildContext=t,Rn(gr),Rn(qi),Mn(qi,t)):Rn(gr),Mn(gr,l)}var Ms=null,mg=!1,Ry=!1;function wT(t){Ms===null?Ms=[t]:Ms.push(t)}function dP(t){mg=!0,wT(t)}function $a(){if(!Ry&&Ms!==null){Ry=!0;var t=0,i=bn;try{var l=Ms;for(bn=1;t>=T,g-=T,zs=1<<32-Io(i)+g|l<ut?(Ve=lt,lt=null):Ve=lt.sibling;var jt=oe(ue,lt,le[ut],De);if(jt===null){lt===null&&(lt=Ve);break}t&<&&jt.alternate===null&&i(ue,lt),re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt,lt=Ve}if(ut===le.length)return l(ue,lt),Bn&&Bl(ue,ut),je;if(lt===null){for(;utut?(Ve=lt,lt=null):Ve=lt.sibling;var di=oe(ue,lt,jt.value,De);if(di===null){lt===null&&(lt=Ve);break}t&<&&di.alternate===null&&i(ue,lt),re=x(di,re,ut),tt===null?je=di:tt.sibling=di,tt=di,lt=Ve}if(jt.done)return l(ue,lt),Bn&&Bl(ue,ut),je;if(lt===null){for(;!jt.done;ut++,jt=le.next())jt=X(ue,jt.value,De),jt!==null&&(re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt);return Bn&&Bl(ue,ut),je}for(lt=h(ue,lt);!jt.done;ut++,jt=le.next())jt=Ae(lt,ue,ut,jt.value,De),jt!==null&&(t&&jt.alternate!==null&<.delete(jt.key===null?ut:jt.key),re=x(jt,re,ut),tt===null?je=jt:tt.sibling=jt,tt=jt);return t&<.forEach(function(St){return i(ue,St)}),Bn&&Bl(ue,ut),je}function ze(ue,re,le,De){if(typeof le=="object"&&le!==null&&le.type===ru&&le.key===null&&(le=le.props.children),typeof le=="object"&&le!==null){switch(le.$$typeof){case $f:e:{for(var je=le.key,tt=re;tt!==null;){if(tt.key===je){if(je=le.type,je===ru){if(tt.tag===7){l(ue,tt.sibling),re=g(tt,le.props.children),re.return=ue,ue=re;break e}}else if(tt.elementType===je||typeof je=="object"&&je!==null&&je.$$typeof===Ea&&Db(je)===tt.type){l(ue,tt.sibling),re=g(tt,le.props),re.ref=Ed(ue,tt,le),re.return=ue,ue=re;break e}l(ue,tt);break}else i(ue,tt);tt=tt.sibling}le.type===ru?(re=ql(le.props.children,ue.mode,De,le.key),re.return=ue,ue=re):(De=Tm(le.type,le.key,le.props,null,ue.mode,De),De.ref=Ed(ue,re,le),De.return=ue,ue=De)}return T(ue);case iu:e:{for(tt=le.key;re!==null;){if(re.key===tt)if(re.tag===4&&re.stateNode.containerInfo===le.containerInfo&&re.stateNode.implementation===le.implementation){l(ue,re.sibling),re=g(re,le.children||[]),re.return=ue,ue=re;break e}else{l(ue,re);break}else i(ue,re);re=re.sibling}re=Vy(le,ue.mode,De),re.return=ue,ue=re}return T(ue);case Ea:return tt=le._init,ze(ue,re,tt(le._payload),De)}if(Md(le))return fe(ue,re,le,De);if(yd(le))return ke(ue,re,le,De);tm(ue,le)}return typeof le=="string"&&le!==""||typeof le=="number"?(le=""+le,re!==null&&re.tag===6?(l(ue,re.sibling),re=g(re,le),re.return=ue,ue=re):(l(ue,re),re=jy(le,ue.mode,De),re.return=ue,ue=re),T(ue)):l(ue,re)}return ze}var Cu=ST(!0),AT=ST(!1),$m=Ga(null),qm=null,du=null,kv=null;function Pv(){kv=du=qm=null}function zv(t){var i=$m.current;Rn($m),t._currentValue=i}function k0(t,i,l){for(;t!==null;){var h=t.alternate;if((t.childLanes&i)!==i?(t.childLanes|=i,h!==null&&(h.childLanes|=i)):h!==null&&(h.childLanes&i)!==i&&(h.childLanes|=i),t===l)break;t=t.return}}function xu(t,i){qm=t,kv=du=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&i&&(mr=!0),t.firstContext=null)}function Qr(t){var i=t._currentValue;if(kv!==t)if(t={context:t,memoizedValue:i,next:null},du===null){if(qm===null)throw Error(it(308));du=t,qm.dependencies={lanes:0,firstContext:t}}else du=du.next=t;return i}var jl=null;function Lv(t){jl===null?jl=[t]:jl.push(t)}function CT(t,i,l,h){var g=i.interleaved;return g===null?(l.next=l,Lv(i)):(l.next=g.next,g.next=l),i.interleaved=l,Bs(t,h)}function Bs(t,i){t.lanes|=i;var l=t.alternate;for(l!==null&&(l.lanes|=i),l=t,t=t.return;t!==null;)t.childLanes|=i,l=t.alternate,l!==null&&(l.childLanes|=i),l=t,t=t.return;return l.tag===3?l.stateNode:null}var Ta=!1;function Rv(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function IT(t,i){t=t.updateQueue,i.updateQueue===t&&(i.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Rs(t,i){return{eventTime:t,lane:i,tag:0,payload:null,callback:null,next:null}}function La(t,i,l){var h=t.updateQueue;if(h===null)return null;if(h=h.shared,nn&2){var g=h.pending;return g===null?i.next=i:(i.next=g.next,g.next=i),h.pending=i,Bs(t,l)}return g=h.interleaved,g===null?(i.next=i,Lv(h)):(i.next=g.next,g.next=i),h.interleaved=i,Bs(t,l)}function ym(t,i,l){if(i=i.updateQueue,i!==null&&(i=i.shared,(l&4194240)!==0)){var h=i.lanes;h&=t.pendingLanes,l|=h,i.lanes=l,vv(t,l)}}function Ob(t,i){var l=t.updateQueue,h=t.alternate;if(h!==null&&(h=h.updateQueue,l===h)){var g=null,x=null;if(l=l.firstBaseUpdate,l!==null){do{var T={eventTime:l.eventTime,lane:l.lane,tag:l.tag,payload:l.payload,callback:l.callback,next:null};x===null?g=x=T:x=x.next=T,l=l.next}while(l!==null);x===null?g=x=i:x=x.next=i}else g=x=i;l={baseState:h.baseState,firstBaseUpdate:g,lastBaseUpdate:x,shared:h.shared,effects:h.effects},t.updateQueue=l;return}t=l.lastBaseUpdate,t===null?l.firstBaseUpdate=i:t.next=i,l.lastBaseUpdate=i}function Zm(t,i,l,h){var g=t.updateQueue;Ta=!1;var x=g.firstBaseUpdate,T=g.lastBaseUpdate,s=g.shared.pending;if(s!==null){g.shared.pending=null;var M=s,F=M.next;M.next=null,T===null?x=F:T.next=F,T=M;var q=t.alternate;q!==null&&(q=q.updateQueue,s=q.lastBaseUpdate,s!==T&&(s===null?q.firstBaseUpdate=F:s.next=F,q.lastBaseUpdate=M))}if(x!==null){var X=g.baseState;T=0,q=F=M=null,s=x;do{var oe=s.lane,Ae=s.eventTime;if((h&oe)===oe){q!==null&&(q=q.next={eventTime:Ae,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var fe=t,ke=s;switch(oe=i,Ae=l,ke.tag){case 1:if(fe=ke.payload,typeof fe=="function"){X=fe.call(Ae,X,oe);break e}X=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=ke.payload,oe=typeof fe=="function"?fe.call(Ae,X,oe):fe,oe==null)break e;X=Xn({},X,oe);break e;case 2:Ta=!0}}s.callback!==null&&s.lane!==0&&(t.flags|=64,oe=g.effects,oe===null?g.effects=[s]:oe.push(s))}else Ae={eventTime:Ae,lane:oe,tag:s.tag,payload:s.payload,callback:s.callback,next:null},q===null?(F=q=Ae,M=X):q=q.next=Ae,T|=oe;if(s=s.next,s===null){if(s=g.shared.pending,s===null)break;oe=s,s=oe.next,oe.next=null,g.lastBaseUpdate=oe,g.shared.pending=null}}while(1);if(q===null&&(M=X),g.baseState=M,g.firstBaseUpdate=F,g.lastBaseUpdate=q,i=g.shared.interleaved,i!==null){g=i;do T|=g.lane,g=g.next;while(g!==i)}else x===null&&(g.shared.lanes=0);Xl|=T,t.lanes=T,t.memoizedState=X}}function Bb(t,i,l){if(t=i.effects,i.effects=null,t!==null)for(i=0;il?l:4,t(!0);var h=Oy.transition;Oy.transition={};try{t(!1),i()}finally{bn=l,Oy.transition=h}}function qT(){return eo().memoizedState}function gP(t,i,l){var h=Da(t);if(l={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null},ZT(t))WT(i,l);else if(l=CT(t,i,l,h),l!==null){var g=Qi();Mo(l,t,h,g),HT(l,i,h)}}function _P(t,i,l){var h=Da(t),g={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null};if(ZT(t))WT(i,g);else{var x=t.alternate;if(t.lanes===0&&(x===null||x.lanes===0)&&(x=i.lastRenderedReducer,x!==null))try{var T=i.lastRenderedState,s=x(T,l);if(g.hasEagerState=!0,g.eagerState=s,zo(s,T)){var M=i.interleaved;M===null?(g.next=g,Lv(i)):(g.next=M.next,M.next=g),i.interleaved=g;return}}catch{}finally{}l=CT(t,i,g,h),l!==null&&(g=Qi(),Mo(l,t,h,g),HT(l,i,h))}}function ZT(t){var i=t.alternate;return t===Hn||i!==null&&i===Hn}function WT(t,i){Bd=Hm=!0;var l=t.pending;l===null?i.next=i:(i.next=l.next,l.next=i),t.pending=i}function HT(t,i,l){if(l&4194240){var h=i.lanes;h&=t.pendingLanes,l|=h,i.lanes=l,vv(t,l)}}var Xm={readContext:Qr,useCallback:Vi,useContext:Vi,useEffect:Vi,useImperativeHandle:Vi,useInsertionEffect:Vi,useLayoutEffect:Vi,useMemo:Vi,useReducer:Vi,useRef:Vi,useState:Vi,useDebugValue:Vi,useDeferredValue:Vi,useTransition:Vi,useMutableSource:Vi,useSyncExternalStore:Vi,useId:Vi,unstable_isNewReconciler:!1},yP={readContext:Qr,useCallback:function(t,i){return Qo().memoizedState=[t,i===void 0?null:i],t},useContext:Qr,useEffect:Nb,useImperativeHandle:function(t,i,l){return l=l!=null?l.concat([t]):null,xm(4194308,4,UT.bind(null,i,t),l)},useLayoutEffect:function(t,i){return xm(4194308,4,t,i)},useInsertionEffect:function(t,i){return xm(4,2,t,i)},useMemo:function(t,i){var l=Qo();return i=i===void 0?null:i,t=t(),l.memoizedState=[t,i],t},useReducer:function(t,i,l){var h=Qo();return i=l!==void 0?l(i):i,h.memoizedState=h.baseState=i,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},h.queue=t,t=t.dispatch=gP.bind(null,Hn,t),[h.memoizedState,t]},useRef:function(t){var i=Qo();return t={current:t},i.memoizedState=t},useState:Fb,useDebugValue:Vv,useDeferredValue:function(t){return Qo().memoizedState=t},useTransition:function(){var t=Fb(!1),i=t[0];return t=mP.bind(null,t[1]),Qo().memoizedState=t,[i,t]},useMutableSource:function(){},useSyncExternalStore:function(t,i,l){var h=Hn,g=Qo();if(Bn){if(l===void 0)throw Error(it(407));l=l()}else{if(l=i(),Si===null)throw Error(it(349));Hl&30||zT(h,i,l)}g.memoizedState=l;var x={value:l,getSnapshot:i};return g.queue=x,Nb(RT.bind(null,h,x,t),[t]),h.flags|=2048,ip(9,LT.bind(null,h,x,l,i),void 0,null),l},useId:function(){var t=Qo(),i=Si.identifierPrefix;if(Bn){var l=Ls,h=zs;l=(h&~(1<<32-Io(h)-1)).toString(32)+l,i=":"+i+"R"+l,l=tp++,0<\/script>",t=t.removeChild(t.firstChild)):typeof h.is=="string"?t=T.createElement(l,{is:h.is}):(t=T.createElement(l),l==="select"&&(T=t,h.multiple?T.multiple=!0:h.size&&(T.size=h.size))):t=T.createElementNS(t,l),t[es]=i,t[Jd]=h,rS(t,i,!1,!1),i.stateNode=t;e:{switch(T=d0(l,h),l){case"dialog":Ln("cancel",t),Ln("close",t),g=h;break;case"iframe":case"object":case"embed":Ln("load",t),g=h;break;case"video":case"audio":for(g=0;gku&&(i.flags|=128,h=!0,Td(x,!1),i.lanes=4194304)}else{if(!h)if(t=Wm(T),t!==null){if(i.flags|=128,h=!0,l=t.updateQueue,l!==null&&(i.updateQueue=l,i.flags|=4),Td(x,!0),x.tail===null&&x.tailMode==="hidden"&&!T.alternate&&!Bn)return Gi(i),null}else 2*ni()-x.renderingStartTime>ku&&l!==1073741824&&(i.flags|=128,h=!0,Td(x,!1),i.lanes=4194304);x.isBackwards?(T.sibling=i.child,i.child=T):(l=x.last,l!==null?l.sibling=T:i.child=T,x.last=T)}return x.tail!==null?(i=x.tail,x.rendering=i,x.tail=i.sibling,x.renderingStartTime=ni(),i.sibling=null,l=Wn.current,Mn(Wn,h?l&1|2:l&1),i):(Gi(i),null);case 22:case 23:return Hv(),h=i.memoizedState!==null,t!==null&&t.memoizedState!==null!==h&&(i.flags|=8192),h&&i.mode&1?Mr&1073741824&&(Gi(i),i.subtreeFlags&6&&(i.flags|=8192)):Gi(i),null;case 24:return null;case 25:return null}throw Error(it(156,i.tag))}function AP(t,i){switch(Iv(i),i.tag){case 1:return _r(i.type)&&Um(),t=i.flags,t&65536?(i.flags=t&-65537|128,i):null;case 3:return Iu(),Rn(gr),Rn(qi),Bv(),t=i.flags,t&65536&&!(t&128)?(i.flags=t&-65537|128,i):null;case 5:return Ov(i),null;case 13:if(Rn(Wn),t=i.memoizedState,t!==null&&t.dehydrated!==null){if(i.alternate===null)throw Error(it(340));Au()}return t=i.flags,t&65536?(i.flags=t&-65537|128,i):null;case 19:return Rn(Wn),null;case 4:return Iu(),null;case 10:return zv(i.type._context),null;case 22:case 23:return Hv(),null;case 24:return null;default:return null}}var im=!1,$i=!1,CP=typeof WeakSet=="function"?WeakSet:Set,yt=null;function pu(t,i){var l=t.ref;if(l!==null)if(typeof l=="function")try{l(null)}catch(h){Qn(t,i,h)}else l.current=null}function N0(t,i,l){try{l()}catch(h){Qn(t,i,h)}}var Kb=!1;function IP(t,i){if(b0=Om,t=hT(),Av(t)){if("selectionStart"in t)var l={start:t.selectionStart,end:t.selectionEnd};else e:{l=(l=t.ownerDocument)&&l.defaultView||window;var h=l.getSelection&&l.getSelection();if(h&&h.rangeCount!==0){l=h.anchorNode;var g=h.anchorOffset,x=h.focusNode;h=h.focusOffset;try{l.nodeType,x.nodeType}catch{l=null;break e}var T=0,s=-1,M=-1,F=0,q=0,X=t,oe=null;t:for(;;){for(var Ae;X!==l||g!==0&&X.nodeType!==3||(s=T+g),X!==x||h!==0&&X.nodeType!==3||(M=T+h),X.nodeType===3&&(T+=X.nodeValue.length),(Ae=X.firstChild)!==null;)oe=X,X=Ae;for(;;){if(X===t)break t;if(oe===l&&++F===g&&(s=T),oe===x&&++q===h&&(M=T),(Ae=X.nextSibling)!==null)break;X=oe,oe=X.parentNode}X=Ae}l=s===-1||M===-1?null:{start:s,end:M}}else l=null}l=l||{start:0,end:0}}else l=null;for(E0={focusedElem:t,selectionRange:l},Om=!1,yt=i;yt!==null;)if(i=yt,t=i.child,(i.subtreeFlags&1028)!==0&&t!==null)t.return=i,yt=t;else for(;yt!==null;){i=yt;try{var fe=i.alternate;if(i.flags&1024)switch(i.tag){case 0:case 11:case 15:break;case 1:if(fe!==null){var ke=fe.memoizedProps,ze=fe.memoizedState,ue=i.stateNode,re=ue.getSnapshotBeforeUpdate(i.elementType===i.type?ke:To(i.type,ke),ze);ue.__reactInternalSnapshotBeforeUpdate=re}break;case 3:var le=i.stateNode.containerInfo;le.nodeType===1?le.textContent="":le.nodeType===9&&le.documentElement&&le.removeChild(le.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(it(163))}}catch(De){Qn(i,i.return,De)}if(t=i.sibling,t!==null){t.return=i.return,yt=t;break}yt=i.return}return fe=Kb,Kb=!1,fe}function Fd(t,i,l){var h=i.updateQueue;if(h=h!==null?h.lastEffect:null,h!==null){var g=h=h.next;do{if((g.tag&t)===t){var x=g.destroy;g.destroy=void 0,x!==void 0&&N0(i,l,x)}g=g.next}while(g!==h)}}function yg(t,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var l=i=i.next;do{if((l.tag&t)===t){var h=l.create;l.destroy=h()}l=l.next}while(l!==i)}}function U0(t){var i=t.ref;if(i!==null){var l=t.stateNode;switch(t.tag){case 5:t=l;break;default:t=l}typeof i=="function"?i(t):i.current=t}}function aS(t){var i=t.alternate;i!==null&&(t.alternate=null,aS(i)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(i=t.stateNode,i!==null&&(delete i[es],delete i[Jd],delete i[A0],delete i[uP],delete i[hP])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function lS(t){return t.tag===5||t.tag===3||t.tag===4}function Yb(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||lS(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function j0(t,i,l){var h=t.tag;if(h===5||h===6)t=t.stateNode,i?l.nodeType===8?l.parentNode.insertBefore(t,i):l.insertBefore(t,i):(l.nodeType===8?(i=l.parentNode,i.insertBefore(t,l)):(i=l,i.appendChild(t)),l=l._reactRootContainer,l!=null||i.onclick!==null||(i.onclick=Nm));else if(h!==4&&(t=t.child,t!==null))for(j0(t,i,l),t=t.sibling;t!==null;)j0(t,i,l),t=t.sibling}function V0(t,i,l){var h=t.tag;if(h===5||h===6)t=t.stateNode,i?l.insertBefore(t,i):l.appendChild(t);else if(h!==4&&(t=t.child,t!==null))for(V0(t,i,l),t=t.sibling;t!==null;)V0(t,i,l),t=t.sibling}var Mi=null,So=!1;function xa(t,i,l){for(l=l.child;l!==null;)cS(t,i,l),l=l.sibling}function cS(t,i,l){if(ts&&typeof ts.onCommitFiberUnmount=="function")try{ts.onCommitFiberUnmount(ug,l)}catch{}switch(l.tag){case 5:$i||pu(l,i);case 6:var h=Mi,g=So;Mi=null,xa(t,i,l),Mi=h,So=g,Mi!==null&&(So?(t=Mi,l=l.stateNode,t.nodeType===8?t.parentNode.removeChild(l):t.removeChild(l)):Mi.removeChild(l.stateNode));break;case 18:Mi!==null&&(So?(t=Mi,l=l.stateNode,t.nodeType===8?Ly(t.parentNode,l):t.nodeType===1&&Ly(t,l),Wd(t)):Ly(Mi,l.stateNode));break;case 4:h=Mi,g=So,Mi=l.stateNode.containerInfo,So=!0,xa(t,i,l),Mi=h,So=g;break;case 0:case 11:case 14:case 15:if(!$i&&(h=l.updateQueue,h!==null&&(h=h.lastEffect,h!==null))){g=h=h.next;do{var x=g,T=x.destroy;x=x.tag,T!==void 0&&(x&2||x&4)&&N0(l,i,T),g=g.next}while(g!==h)}xa(t,i,l);break;case 1:if(!$i&&(pu(l,i),h=l.stateNode,typeof h.componentWillUnmount=="function"))try{h.props=l.memoizedProps,h.state=l.memoizedState,h.componentWillUnmount()}catch(s){Qn(l,i,s)}xa(t,i,l);break;case 21:xa(t,i,l);break;case 22:l.mode&1?($i=(h=$i)||l.memoizedState!==null,xa(t,i,l),$i=h):xa(t,i,l);break;default:xa(t,i,l)}}function Jb(t){var i=t.updateQueue;if(i!==null){t.updateQueue=null;var l=t.stateNode;l===null&&(l=t.stateNode=new CP),i.forEach(function(h){var g=BP.bind(null,t,h);l.has(h)||(l.add(h),h.then(g,g))})}}function Eo(t,i){var l=i.deletions;if(l!==null)for(var h=0;hg&&(g=T),h&=~x}if(h=g,h=ni()-h,h=(120>h?120:480>h?480:1080>h?1080:1920>h?1920:3e3>h?3e3:4320>h?4320:1960*kP(h/1960))-h,10t?16:t,Ia===null)var h=!1;else{if(t=Ia,Ia=null,Jm=0,nn&6)throw Error(it(331));var g=nn;for(nn|=4,yt=t.current;yt!==null;){var x=yt,T=x.child;if(yt.flags&16){var s=x.deletions;if(s!==null){for(var M=0;Mni()-Zv?$l(t,0):qv|=l),yr(t,i)}function _S(t,i){i===0&&(t.mode&1?(i=Hf,Hf<<=1,!(Hf&130023424)&&(Hf=4194304)):i=1);var l=Qi();t=Bs(t,i),t!==null&&(hp(t,i,l),yr(t,l))}function OP(t){var i=t.memoizedState,l=0;i!==null&&(l=i.retryLane),_S(t,l)}function BP(t,i){var l=0;switch(t.tag){case 13:var h=t.stateNode,g=t.memoizedState;g!==null&&(l=g.retryLane);break;case 19:h=t.stateNode;break;default:throw Error(it(314))}h!==null&&h.delete(i),_S(t,l)}var yS;yS=function(t,i,l){if(t!==null)if(t.memoizedProps!==i.pendingProps||gr.current)mr=!0;else{if(!(t.lanes&l)&&!(i.flags&128))return mr=!1,TP(t,i,l);mr=!!(t.flags&131072)}else mr=!1,Bn&&i.flags&1048576&&bT(i,Gm,i.index);switch(i.lanes=0,i.tag){case 2:var h=i.type;wm(t,i),t=i.pendingProps;var g=Su(i,qi.current);xu(i,l),g=Nv(null,i,h,t,g,l);var x=Uv();return i.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,_r(h)?(x=!0,jm(i)):x=!1,i.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Rv(i),g.updater=_g,i.stateNode=g,g._reactInternals=i,z0(i,h,t,l),i=D0(null,i,h,!0,x,l)):(i.tag=0,Bn&&x&&Cv(i),Ji(null,i,g,l),i=i.child),i;case 16:h=i.elementType;e:{switch(wm(t,i),t=i.pendingProps,g=h._init,h=g(h._payload),i.type=h,g=i.tag=NP(h),t=To(h,t),g){case 0:i=R0(null,i,h,t,l);break e;case 1:i=Wb(null,i,h,t,l);break e;case 11:i=qb(null,i,h,t,l);break e;case 14:i=Zb(null,i,h,To(h.type,t),l);break e}throw Error(it(306,h,""))}return i;case 0:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),R0(t,i,h,g,l);case 1:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),Wb(t,i,h,g,l);case 3:e:{if(tS(i),t===null)throw Error(it(387));h=i.pendingProps,x=i.memoizedState,g=x.element,IT(t,i),Zm(i,h,null,l);var T=i.memoizedState;if(h=T.element,x.isDehydrated)if(x={element:h,isDehydrated:!1,cache:T.cache,pendingSuspenseBoundaries:T.pendingSuspenseBoundaries,transitions:T.transitions},i.updateQueue.baseState=x,i.memoizedState=x,i.flags&256){g=Mu(Error(it(423)),i),i=Hb(t,i,h,l,g);break e}else if(h!==g){g=Mu(Error(it(424)),i),i=Hb(t,i,h,l,g);break e}else for(kr=za(i.stateNode.containerInfo.firstChild),Pr=i,Bn=!0,Ao=null,l=AT(i,null,h,l),i.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling;else{if(Au(),h===g){i=Fs(t,i,l);break e}Ji(t,i,h,l)}i=i.child}return i;case 5:return MT(i),t===null&&M0(i),h=i.type,g=i.pendingProps,x=t!==null?t.memoizedProps:null,T=g.children,T0(h,g)?T=null:x!==null&&T0(h,x)&&(i.flags|=32),eS(t,i),Ji(t,i,T,l),i.child;case 6:return t===null&&M0(i),null;case 13:return nS(t,i,l);case 4:return Dv(i,i.stateNode.containerInfo),h=i.pendingProps,t===null?i.child=Cu(i,null,h,l):Ji(t,i,h,l),i.child;case 11:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),qb(t,i,h,g,l);case 7:return Ji(t,i,i.pendingProps,l),i.child;case 8:return Ji(t,i,i.pendingProps.children,l),i.child;case 12:return Ji(t,i,i.pendingProps.children,l),i.child;case 10:e:{if(h=i.type._context,g=i.pendingProps,x=i.memoizedProps,T=g.value,Mn($m,h._currentValue),h._currentValue=T,x!==null)if(zo(x.value,T)){if(x.children===g.children&&!gr.current){i=Fs(t,i,l);break e}}else for(x=i.child,x!==null&&(x.return=i);x!==null;){var s=x.dependencies;if(s!==null){T=x.child;for(var M=s.firstContext;M!==null;){if(M.context===h){if(x.tag===1){M=Rs(-1,l&-l),M.tag=2;var F=x.updateQueue;if(F!==null){F=F.shared;var q=F.pending;q===null?M.next=M:(M.next=q.next,q.next=M),F.pending=M}}x.lanes|=l,M=x.alternate,M!==null&&(M.lanes|=l),k0(x.return,l,i),s.lanes|=l;break}M=M.next}}else if(x.tag===10)T=x.type===i.type?null:x.child;else if(x.tag===18){if(T=x.return,T===null)throw Error(it(341));T.lanes|=l,s=T.alternate,s!==null&&(s.lanes|=l),k0(T,l,i),T=x.sibling}else T=x.child;if(T!==null)T.return=x;else for(T=x;T!==null;){if(T===i){T=null;break}if(x=T.sibling,x!==null){x.return=T.return,T=x;break}T=T.return}x=T}Ji(t,i,g.children,l),i=i.child}return i;case 9:return g=i.type,h=i.pendingProps.children,xu(i,l),g=Qr(g),h=h(g),i.flags|=1,Ji(t,i,h,l),i.child;case 14:return h=i.type,g=To(h,i.pendingProps),g=To(h.type,g),Zb(t,i,h,g,l);case 15:return JT(t,i,i.type,i.pendingProps,l);case 17:return h=i.type,g=i.pendingProps,g=i.elementType===h?g:To(h,g),wm(t,i),i.tag=1,_r(h)?(t=!0,jm(i)):t=!1,xu(i,l),XT(i,h,g),z0(i,h,g,l),D0(null,i,h,!0,t,l);case 19:return iS(t,i,l);case 22:return QT(t,i,l)}throw Error(it(156,i.tag))};function vS(t,i){return Z2(t,i)}function FP(t,i,l,h){this.tag=t,this.key=l,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=h,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yr(t,i,l,h){return new FP(t,i,l,h)}function Kv(t){return t=t.prototype,!(!t||!t.isReactComponent)}function NP(t){if(typeof t=="function")return Kv(t)?1:0;if(t!=null){if(t=t.$$typeof,t===mv)return 11;if(t===gv)return 14}return 2}function Oa(t,i){var l=t.alternate;return l===null?(l=Yr(t.tag,i,t.key,t.mode),l.elementType=t.elementType,l.type=t.type,l.stateNode=t.stateNode,l.alternate=t,t.alternate=l):(l.pendingProps=i,l.type=t.type,l.flags=0,l.subtreeFlags=0,l.deletions=null),l.flags=t.flags&14680064,l.childLanes=t.childLanes,l.lanes=t.lanes,l.child=t.child,l.memoizedProps=t.memoizedProps,l.memoizedState=t.memoizedState,l.updateQueue=t.updateQueue,i=t.dependencies,l.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},l.sibling=t.sibling,l.index=t.index,l.ref=t.ref,l}function Tm(t,i,l,h,g,x){var T=2;if(h=t,typeof t=="function")Kv(t)&&(T=1);else if(typeof t=="string")T=5;else e:switch(t){case ru:return ql(l.children,g,x,i);case fv:T=8,g|=8;break;case n0:return t=Yr(12,l,i,g|2),t.elementType=n0,t.lanes=x,t;case i0:return t=Yr(13,l,i,g),t.elementType=i0,t.lanes=x,t;case r0:return t=Yr(19,l,i,g),t.elementType=r0,t.lanes=x,t;case M2:return xg(l,g,x,i);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case C2:T=10;break e;case I2:T=9;break e;case mv:T=11;break e;case gv:T=14;break e;case Ea:T=16,h=null;break e}throw Error(it(130,t==null?t:typeof t,""))}return i=Yr(T,l,i,g),i.elementType=t,i.type=h,i.lanes=x,i}function ql(t,i,l,h){return t=Yr(7,t,h,i),t.lanes=l,t}function xg(t,i,l,h){return t=Yr(22,t,h,i),t.elementType=M2,t.lanes=l,t.stateNode={isHidden:!1},t}function jy(t,i,l){return t=Yr(6,t,null,i),t.lanes=l,t}function Vy(t,i,l){return i=Yr(4,t.children!==null?t.children:[],t.key,i),i.lanes=l,i.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},i}function UP(t,i,l,h,g){this.tag=i,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=by(0),this.expirationTimes=by(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=by(0),this.identifierPrefix=h,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Yv(t,i,l,h,g,x,T,s,M){return t=new UP(t,i,l,s,M),i===1?(i=1,x===!0&&(i|=8)):i=0,x=Yr(3,null,null,i),t.current=x,x.stateNode=t,x.memoizedState={element:h,isDehydrated:l,cache:null,transitions:null,pendingSuspenseBoundaries:null},Rv(x),t}function jP(t,i,l){var h=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(ES)}catch(t){console.error(t)}}ES(),E2.exports=Rr;var tx=E2.exports,TS,sE=tx;TS=sE.createRoot,sE.hydrateRoot;const ZP="Logging",WP="NoHubcallbackProvidedException";var Ir;(function(t){t.DEBUG="DEBUG",t.ERROR="ERROR",t.INFO="INFO",t.WARN="WARN",t.VERBOSE="VERBOSE",t.NONE="NONE"})(Ir||(Ir={}));const aE={VERBOSE:1,DEBUG:2,INFO:3,WARN:4,ERROR:5,NONE:6};class ko{constructor(i,l=Ir.WARN){this.name=i,this.level=l,this._pluggables=[]}_padding(i){return i<10?"0"+i:""+i}_ts(){const i=new Date;return[this._padding(i.getMinutes()),this._padding(i.getSeconds())].join(":")+"."+i.getMilliseconds()}configure(i){return i?(this._config=i,this._config):this._config}_log(i,...l){let h=this.level;ko.LOG_LEVEL&&(h=ko.LOG_LEVEL),typeof window<"u"&&window.LOG_LEVEL&&(h=window.LOG_LEVEL);const g=aE[h];if(!(aE[i]>=g))return;let T=console.log.bind(console);i===Ir.ERROR&&console.error&&(T=console.error.bind(console)),i===Ir.WARN&&console.warn&&(T=console.warn.bind(console)),ko.BIND_ALL_LOG_LEVELS&&(i===Ir.INFO&&console.info&&(T=console.info.bind(console)),i===Ir.DEBUG&&console.debug&&(T=console.debug.bind(console)));const s=`[${i}] ${this._ts()} ${this.name}`;let M="";if(l.length===1&&typeof l[0]=="string")M=`${s} - ${l[0]}`,T(M);else if(l.length===1)M=`${s} ${l[0]}`,T(s,l[0]);else if(typeof l[0]=="string"){let F=l.slice(1);F.length===1&&(F=F[0]),M=`${s} - ${l[0]} ${F}`,T(`${s} - ${l[0]}`,F)}else M=`${s} ${l}`,T(s,l);for(const F of this._pluggables){const q={message:M,timestamp:Date.now()};F.pushLogs([q])}}log(...i){this._log(Ir.INFO,...i)}info(...i){this._log(Ir.INFO,...i)}warn(...i){this._log(Ir.WARN,...i)}error(...i){this._log(Ir.ERROR,...i)}debug(...i){this._log(Ir.DEBUG,...i)}verbose(...i){this._log(Ir.VERBOSE,...i)}addPluggable(i){i&&i.getCategoryName()===ZP&&(this._pluggables.push(i),i.configure(this._config))}listPluggables(){return this._pluggables}}ko.LOG_LEVEL=null;ko.BIND_ALL_LOG_LEVELS=!1;class is extends Error{constructor({message:i,name:l,recoverySuggestion:h,underlyingError:g}){super(i),this.name=l,this.underlyingError=g,this.recoverySuggestion=h,this.constructor=is,Object.setPrototypeOf(this,is.prototype)}}var op;(function(t){t.NoEndpointId="NoEndpointId",t.PlatformNotSupported="PlatformNotSupported",t.Unknown="Unknown",t.NetworkError="NetworkError"})(op||(op={}));const SS=(t,i=is)=>(l,h,g)=>{const{message:x,recoverySuggestion:T}=t[h];if(!l)throw new i({name:h,message:g?`${x} ${g}`:x,recoverySuggestion:T})},tg=typeof Symbol<"u"?Symbol("amplify_default"):"@@amplify_default",Ad=new ko("Hub");class HP{constructor(i){this.listeners=new Map,this.protectedChannels=["core","auth","api","analytics","interactions","pubsub","storage","ui","xr"],this.name=i}_remove(i,l){const h=this.listeners.get(i);if(!h){Ad.warn(`No listeners for ${i}`);return}this.listeners.set(i,[...h.filter(({callback:g})=>g!==l)])}dispatch(i,l,h,g){typeof i=="string"&&this.protectedChannels.indexOf(i)>-1&&(g===tg||Ad.warn(`WARNING: ${i} is protected and dispatching on it can have unintended consequences`));const x={channel:i,payload:{...l},source:h,patternInfo:[]};try{this._toListeners(x)}catch(T){Ad.error(T)}}listen(i,l,h="noname"){let g;if(typeof l!="function")throw new is({name:WP,message:"No callback supplied to Hub"});g=l;let x=this.listeners.get(i);return x||(x=[],this.listeners.set(i,x)),x.push({name:h,callback:g}),()=>{this._remove(i,g)}}_toListeners(i){const{channel:l,payload:h}=i,g=this.listeners.get(l);g&&g.forEach(x=>{Ad.debug(`Dispatching to ${l} with `,h);try{x.callback(i)}catch(T){Ad.error(T)}})}}const W0=new HP("__default__"),XP=()=>{if(typeof window<"u"&&typeof window.atob=="function")return window.atob;if(typeof atob=="function")return atob;throw new is({name:"Base64EncoderError",message:"Cannot resolve the `atob` function from the environment."})},KP={convert(t){return XP()(t)}};var ks;(function(t){t.AuthTokenConfigException="AuthTokenConfigException",t.AuthUserPoolAndIdentityPoolException="AuthUserPoolAndIdentityPoolException",t.AuthUserPoolException="AuthUserPoolException",t.InvalidIdentityPoolIdException="InvalidIdentityPoolIdException",t.OAuthNotConfigureException="OAuthNotConfigureException"})(ks||(ks={}));const YP={[ks.AuthTokenConfigException]:{message:"Auth Token Provider not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app."},[ks.AuthUserPoolAndIdentityPoolException]:{message:"Auth UserPool or IdentityPool not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app with UserPoolId and IdentityPoolId."},[ks.AuthUserPoolException]:{message:"Auth UserPool not configured.",recoverySuggestion:"Make sure to call Amplify.configure in your app with userPoolId and userPoolClientId."},[ks.InvalidIdentityPoolIdException]:{message:"Invalid identity pool id provided.",recoverySuggestion:"Make sure a valid identityPoolId is given in the config."},[ks.OAuthNotConfigureException]:{message:"oauth param not configured.",recoverySuggestion:"Make sure to call Amplify.configure with oauth parameter in your app."}},AS=SS(YP);function pr(t){let i=!0;t?i=!!t.userPoolId&&!!t.userPoolClientId:i=!1,AS(i,ks.AuthUserPoolException)}function Sm(t){const i=!!(t!=null&&t.identityPoolId);AS(i,ks.InvalidIdentityPoolIdException)}function sp(t){const i=t.split(".");if(i.length!==3)throw new Error("Invalid token");try{const h=i[1].replace(/-/g,"+").replace(/_/g,"/"),g=decodeURIComponent(KP.convert(h).split("").map(T=>`%${`00${T.charCodeAt(0).toString(16)}`.slice(-2)}`).join("")),x=JSON.parse(g);return{toString:()=>t,payload:x}}catch{throw new Error("Invalid token payload")}}const CS=t=>{const i=Reflect.ownKeys(t);for(const l of i){const h=t[l];(h&&typeof h=="object"||typeof h=="function")&&CS(h)}return Object.freeze(t)},JP=new ko("parseAWSExports"),QP={API_KEY:"apiKey",AWS_IAM:"iam",AMAZON_COGNITO_USER_POOLS:"userPool",OPENID_CONNECT:"oidc",NONE:"none",AWS_LAMBDA:"lambda",LAMBDA:"lambda"},ez=(t={})=>{var ei,Wi,ti,pi,rs,Br;if(!Object.prototype.hasOwnProperty.call(t,"aws_project_region"))throw new is({name:"InvalidParameterException",message:"Invalid config parameter.",recoverySuggestion:"Ensure passing the config object imported from `amplifyconfiguration.json`."});const{aws_appsync_apiKey:i,aws_appsync_authenticationType:l,aws_appsync_graphqlEndpoint:h,aws_appsync_region:g,aws_bots_config:x,aws_cognito_identity_pool_id:T,aws_cognito_sign_up_verification_method:s,aws_cognito_mfa_configuration:M,aws_cognito_mfa_types:F,aws_cognito_password_protection_settings:q,aws_cognito_verification_mechanisms:X,aws_cognito_signup_attributes:oe,aws_cognito_social_providers:Ae,aws_cognito_username_attributes:fe,aws_mandatory_sign_in:ke,aws_mobile_analytics_app_id:ze,aws_mobile_analytics_app_region:ue,aws_user_files_s3_bucket:re,aws_user_files_s3_bucket_region:le,aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing:De,aws_user_pools_id:je,aws_user_pools_web_client_id:tt,geo:lt,oauth:ut,predictions:Ve,aws_cloud_logic_custom:jt,Notifications:di,modelIntrospection:St}=t,Vt={};ze&&(Vt.Analytics={Pinpoint:{appId:ze,region:ue}});const{InAppMessaging:zi,Push:Li}=di??{};if(zi!=null&&zi.AWSPinpoint||Li!=null&&Li.AWSPinpoint){if(zi!=null&&zi.AWSPinpoint){const{appId:yn,region:Mt}=zi.AWSPinpoint;Vt.Notifications={InAppMessaging:{Pinpoint:{appId:yn,region:Mt}}}}if(Li!=null&&Li.AWSPinpoint){const{appId:yn,region:Mt}=Li.AWSPinpoint;Vt.Notifications={...Vt.Notifications,PushNotification:{Pinpoint:{appId:yn,region:Mt}}}}}if(Array.isArray(x)&&(Vt.Interactions={LexV1:Object.fromEntries(x.map(yn=>[yn.name,yn]))}),h){const yn=QP[l];yn||JP.debug(`Invalid authentication type ${l}. Falling back to IAM.`),Vt.API={GraphQL:{endpoint:h,apiKey:i,region:g,defaultAuthMode:yn??"iam"}},St&&(Vt.API.GraphQL.modelIntrospection=St)}const wr=M?{status:M&&M.toLowerCase(),totpEnabled:(F==null?void 0:F.includes("TOTP"))??!1,smsEnabled:(F==null?void 0:F.includes("SMS"))??!1}:void 0,Or=q?{minLength:q.passwordPolicyMinLength,requireLowercase:((ei=q.passwordPolicyCharacters)==null?void 0:ei.includes("REQUIRES_LOWERCASE"))??!1,requireUppercase:((Wi=q.passwordPolicyCharacters)==null?void 0:Wi.includes("REQUIRES_UPPERCASE"))??!1,requireNumbers:((ti=q.passwordPolicyCharacters)==null?void 0:ti.includes("REQUIRES_NUMBERS"))??!1,requireSpecialCharacters:((pi=q.passwordPolicyCharacters)==null?void 0:pi.includes("REQUIRES_SYMBOLS"))??!1}:void 0,Tt=Array.from(new Set([...X??[],...oe??[]])).reduce((yn,Mt)=>({...yn,[Mt.toLowerCase()]:{required:!0}}),{}),xt=(fe==null?void 0:fe.includes("EMAIL"))??!1,Bt=(fe==null?void 0:fe.includes("PHONE_NUMBER"))??!1;(T||je)&&(Vt.Auth={Cognito:{identityPoolId:T,allowGuestAccess:ke!=="enable",signUpVerificationMethod:s,userAttributes:Tt,userPoolClientId:tt,userPoolId:je,mfa:wr,passwordFormat:Or,loginWith:{username:!(xt||Bt),email:xt,phone:Bt}}});const dn=ut?Object.keys(ut).length>0:!1,_n=Ae?Ae.length>0:!1;if(Vt.Auth&&dn&&(Vt.Auth.Cognito.loginWith={...Vt.Auth.Cognito.loginWith,oauth:{...tz(ut),..._n&&{providers:nz(Ae)}}}),re&&(Vt.Storage={S3:{bucket:re,region:le,dangerouslyConnectToHttpEndpointForTesting:De}}),lt){const{amazon_location_service:yn}=lt;Vt.Geo={LocationService:{maps:yn.maps,geofenceCollections:yn.geofenceCollections,searchIndices:yn.search_indices,region:yn.region}}}if(jt&&(Vt.API={...Vt.API,REST:jt.reduce((yn,Mt)=>{const{name:Ro,endpoint:Ai,region:Do,service:vn}=Mt;return{...yn,[Ro]:{endpoint:Ai,...vn?{service:vn}:void 0,...Do?{region:Do}:void 0}}},{})}),Ve){const{VoiceId:yn}=((Br=(rs=Ve==null?void 0:Ve.convert)==null?void 0:rs.speechGenerator)==null?void 0:Br.defaults)??{};Vt.Predictions=yn?{...Ve,convert:{...Ve.convert,speechGenerator:{...Ve.convert.speechGenerator,defaults:{voiceId:yn}}}}:Ve}return Vt},lE=t=>(t==null?void 0:t.split(","))??[],tz=({domain:t,scope:i,redirectSignIn:l,redirectSignOut:h,responseType:g})=>({domain:t,scopes:i,redirectSignIn:lE(l),redirectSignOut:lE(h),responseType:g}),nz=t=>t.map(i=>{const l=i.toLowerCase();return l.charAt(0).toUpperCase()+l.slice(1)}),iz=Symbol("oauth-listener");function rz(t){const{version:i}=t;return i?i.startsWith("1"):!1}function oz(t){if(!t)return;const{bucket_name:i,aws_region:l,buckets:h}=t;return{S3:{bucket:i,region:l,buckets:h&&gz(h)}}}function sz(t){if(!t)return;const{user_pool_id:i,user_pool_client_id:l,identity_pool_id:h,password_policy:g,mfa_configuration:x,mfa_methods:T,unauthenticated_identities_enabled:s,oauth:M,username_attributes:F,standard_required_attributes:q}=t,X={Cognito:{userPoolId:i,userPoolClientId:l}};return h&&(X.Cognito={...X.Cognito,identityPoolId:h}),g&&(X.Cognito.passwordFormat={requireLowercase:g.require_lowercase,requireNumbers:g.require_numbers,requireUppercase:g.require_uppercase,requireSpecialCharacters:g.require_symbols,minLength:g.min_length??6}),x&&(X.Cognito.mfa={status:mz(x),smsEnabled:T==null?void 0:T.includes("SMS"),totpEnabled:T==null?void 0:T.includes("TOTP")}),s&&(X.Cognito.allowGuestAccess=s),M&&(X.Cognito.loginWith={oauth:{domain:M.domain,redirectSignIn:M.redirect_sign_in_uri,redirectSignOut:M.redirect_sign_out_uri,responseType:M.response_type==="token"?"token":"code",scopes:M.scopes,providers:fz(M.identity_providers)}}),F&&(X.Cognito.loginWith={...X.Cognito.loginWith,email:F.includes("email"),phone:F.includes("phone_number"),username:F.includes("username")}),q&&(X.Cognito.userAttributes=q.reduce((oe,Ae)=>({...oe,[Ae]:{required:!0}}),{})),X}function az(t){if(!(t!=null&&t.amazon_pinpoint))return;const{amazon_pinpoint:i}=t;return{Pinpoint:{appId:i.app_id,region:i.aws_region}}}function lz(t){if(!t)return;const{aws_region:i,geofence_collections:l,maps:h,search_indices:g}=t;return{LocationService:{region:i,searchIndices:g,geofenceCollections:l,maps:h}}}function cz(t){if(!t)return;const{aws_region:i,default_authorization_type:l,url:h,api_key:g,model_introspection:x}=t;return{GraphQL:{endpoint:h,defaultAuthMode:pz(l),region:i,apiKey:g,modelIntrospection:x}}}function uz(t){if(!t)return;const{aws_region:i,channels:l,amazon_pinpoint_app_id:h}=t,g=l.includes("IN_APP_MESSAGING"),x=l.includes("APNS")||l.includes("FCM");if(!(g||x))return;const T={};return g&&(T.InAppMessaging={Pinpoint:{appId:h,region:i}}),x&&(T.PushNotification={Pinpoint:{appId:h,region:i}}),T}function hz(t){const i={};return t.storage&&(i.Storage=oz(t.storage)),t.auth&&(i.Auth=sz(t.auth)),t.analytics&&(i.Analytics=az(t.analytics)),t.geo&&(i.Geo=lz(t.geo)),t.data&&(i.API=cz(t.data)),t.notifications&&(i.Notifications=uz(t.notifications)),i}const dz={AMAZON_COGNITO_USER_POOLS:"userPool",API_KEY:"apiKey",AWS_IAM:"iam",AWS_LAMBDA:"lambda",OPENID_CONNECT:"oidc"};function pz(t){return dz[t]}const cE={GOOGLE:"Google",LOGIN_WITH_AMAZON:"Amazon",FACEBOOK:"Facebook",SIGN_IN_WITH_APPLE:"Apple"};function fz(t=[]){return t.reduce((i,l)=>(cE[l]!==void 0&&i.push(cE[l]),i),[])}function mz(t){return t==="OPTIONAL"?"optional":t==="REQUIRED"?"on":"off"}function gz(t){const i={};return t.forEach(({name:l,bucket_name:h,aws_region:g})=>{if(l in i)throw new Error(`Duplicate friendly name found: ${l}. Name must be unique.`);i[l]={bucketName:h,region:g}}),i}const IS=t=>Object.keys(t).some(i=>i.startsWith("aws_"))?ez(t):rz(t)?hz(t):t;function uE({expiresAt:t,clockDrift:i}){return Date.now()+i>t}class _z{configure(i,l){this.authConfig=i,this.authOptions=l}async fetchAuthSession(i={}){var x,T,s,M,F,q;let l,h;const g=await this.getTokens(i);return g?(h=(T=(x=g.accessToken)==null?void 0:x.payload)==null?void 0:T.sub,l=await((M=(s=this.authOptions)==null?void 0:s.credentialsProvider)==null?void 0:M.getCredentialsAndIdentityId({authConfig:this.authConfig,tokens:g,authenticated:!0,forceRefresh:i.forceRefresh}))):l=await((q=(F=this.authOptions)==null?void 0:F.credentialsProvider)==null?void 0:q.getCredentialsAndIdentityId({authConfig:this.authConfig,authenticated:!1,forceRefresh:i.forceRefresh})),{tokens:g,credentials:l==null?void 0:l.credentials,identityId:l==null?void 0:l.identityId,userSub:h}}async clearCredentials(){var i,l;await((l=(i=this.authOptions)==null?void 0:i.credentialsProvider)==null?void 0:l.clearCredentialsAndIdentityId())}async getTokens(i){var l,h;return await((h=(l=this.authOptions)==null?void 0:l.tokenProvider)==null?void 0:h.getTokens(i))??void 0}}const yz=t=>new TextEncoder().encode(t);typeof Buffer<"u"&&Buffer.from;for(let t=0;t<256;t++){let i=t.toString(16).toLowerCase();i.length===1&&(i=`0${i}`)}var ci;(function(t){t.WebUnknown="0",t.React="1",t.NextJs="2",t.Angular="3",t.VueJs="4",t.Nuxt="5",t.Svelte="6",t.ServerSideUnknown="100",t.ReactSSR="101",t.NextJsSSR="102",t.AngularSSR="103",t.VueJsSSR="104",t.NuxtSSR="105",t.SvelteSSR="106",t.ReactNative="201",t.Expo="202"})(ci||(ci={}));var hE;(function(t){t.API="api",t.Auth="auth",t.Analytics="analytics",t.DataStore="datastore",t.Geo="geo",t.InAppMessaging="inappmessaging",t.Interactions="interactions",t.Predictions="predictions",t.PubSub="pubsub",t.PushNotification="pushnotification",t.Storage="storage"})(hE||(hE={}));var dE;(function(t){t.Record="1",t.IdentifyUser="2"})(dE||(dE={}));var pE;(function(t){t.GraphQl="1",t.Get="2",t.Post="3",t.Put="4",t.Patch="5",t.Del="6",t.Head="7"})(pE||(pE={}));var fE;(function(t){t.SignUp="1",t.ConfirmSignUp="2",t.ResendSignUpCode="3",t.SignIn="4",t.FetchMFAPreference="6",t.UpdateMFAPreference="7",t.SetUpTOTP="10",t.VerifyTOTPSetup="11",t.ConfirmSignIn="12",t.DeleteUserAttributes="15",t.DeleteUser="16",t.UpdateUserAttributes="17",t.FetchUserAttributes="18",t.ConfirmUserAttribute="22",t.SignOut="26",t.UpdatePassword="27",t.ResetPassword="28",t.ConfirmResetPassword="29",t.FederatedSignIn="30",t.RememberDevice="32",t.ForgetDevice="33",t.FetchDevices="34",t.SendUserAttributeVerificationCode="35",t.SignInWithRedirect="36"})(fE||(fE={}));var mE;(function(t){t.Subscribe="1",t.GraphQl="2"})(mE||(mE={}));var gE;(function(t){t.SearchByText="0",t.SearchByCoordinates="1",t.SearchForSuggestions="2",t.SearchByPlaceId="3",t.SaveGeofences="4",t.GetGeofence="5",t.ListGeofences="6",t.DeleteGeofences="7"})(gE||(gE={}));var _E;(function(t){t.SyncMessages="1",t.IdentifyUser="2",t.NotifyMessageInteraction="3"})(_E||(_E={}));var yE;(function(t){t.None="0"})(yE||(yE={}));var vE;(function(t){t.Convert="1",t.Identify="2",t.Interpret="3"})(vE||(vE={}));var xE;(function(t){t.Subscribe="1"})(xE||(xE={}));var wE;(function(t){t.InitializePushNotifications="1",t.IdentifyUser="2"})(wE||(wE={}));var bE;(function(t){t.UploadData="1",t.DownloadData="2",t.List="3",t.Copy="4",t.Remove="5",t.GetProperties="6",t.GetUrl="7"})(bE||(bE={}));const Sg=()=>typeof global<"u",Ou=()=>typeof window<"u",MS=()=>typeof document<"u",nx=()=>typeof process<"u",ap=(t,i)=>!!Object.keys(t).find(l=>l.startsWith(i));function vz(){const t=h=>h.startsWith("_react")||h.startsWith("__react"),i=h=>Object.keys(h).find(t),l=()=>Array.from(document.querySelectorAll("[id]"));return MS()&&l().some(i)}function xz(){return nx()&&typeof process.env<"u"&&!!Object.keys(process.env).find(t=>t.includes("react"))}function wz(){return Ou()&&ap(window,"__VUE")}function bz(){return Sg()&&ap(global,"__VUE")}function Ez(){return Ou()&&ap(window,"__SVELTE")}function Tz(){return nx()&&typeof process.env<"u"&&!!Object.keys(process.env).find(t=>t.includes("svelte"))}function Sz(){return Ou()&&window.next&&typeof window.next=="object"}function Az(){return Sg()&&(ap(global,"__next")||ap(global,"__NEXT"))}function Cz(){return Ou()&&(window.__NUXT__!==void 0||window.$nuxt!==void 0)}function Iz(){return Sg()&&typeof global.__NUXT_PATHS__<"u"}function Mz(){const t=!!(MS()&&document.querySelector("[ng-version]")),i=!!(Ou()&&typeof window.ng<"u");return t||i}function kz(){var t;return nx()&&typeof process.env=="object"&&((t={}.npm_lifecycle_script)==null?void 0:t.startsWith("ng "))||!1}function Pz(){return typeof navigator<"u"&&typeof navigator.product<"u"&&navigator.product==="ReactNative"}function zz(){return Sg()&&typeof global.expo<"u"}function Lz(){return Ou()}const Rz=[{platform:ci.Expo,detectionMethod:zz},{platform:ci.ReactNative,detectionMethod:Pz},{platform:ci.NextJs,detectionMethod:Sz},{platform:ci.Nuxt,detectionMethod:Cz},{platform:ci.Angular,detectionMethod:Mz},{platform:ci.React,detectionMethod:vz},{platform:ci.VueJs,detectionMethod:wz},{platform:ci.Svelte,detectionMethod:Ez},{platform:ci.WebUnknown,detectionMethod:Lz},{platform:ci.NextJsSSR,detectionMethod:Az},{platform:ci.NuxtSSR,detectionMethod:Iz},{platform:ci.ReactSSR,detectionMethod:xz},{platform:ci.VueJsSSR,detectionMethod:bz},{platform:ci.AngularSSR,detectionMethod:kz},{platform:ci.SvelteSSR,detectionMethod:Tz}];function Dz(){var t;return((t=Rz.find(i=>i.detectionMethod()))==null?void 0:t.platform)||ci.ServerSideUnknown}const Oz=()=>typeof window<"u"&&typeof window.document<"u";class Bz{constructor(){this.oAuthListener=void 0,this.resourcesConfig={},this.libraryOptions={},this.Auth=new _z}configure(i,l){const h=IS(i);this.resourcesConfig=h,l&&(this.libraryOptions=l),this.resourcesConfig=CS(this.resourcesConfig),this.Auth.configure(this.resourcesConfig.Auth,this.libraryOptions.Auth),W0.dispatch("core",{event:"configure",data:this.resourcesConfig},"Configure",tg),this.notifyOAuthListener()}getConfig(){return this.resourcesConfig}[iz](i){var l,h,g;(h=(l=this.resourcesConfig.Auth)==null?void 0:l.Cognito.loginWith)!=null&&h.oauth?i((g=this.resourcesConfig.Auth)==null?void 0:g.Cognito):this.oAuthListener=i}notifyOAuthListener(){var i,l,h;!((l=(i=this.resourcesConfig.Auth)==null?void 0:i.Cognito.loginWith)!=null&&l.oauth)||!this.oAuthListener||(this.oAuthListener((h=this.resourcesConfig.Auth)==null?void 0:h.Cognito),this.oAuthListener=void 0)}}const Cs=new Bz,Ag=t=>{const{headers:i,statusCode:l}=t;return{...Fz(t)?t.$metadata:{},httpStatusCode:l,requestId:i["x-amzn-requestid"]??i["x-amzn-request-id"]??i["x-amz-request-id"],extendedRequestId:i["x-amz-id-2"],cfId:i["x-amz-cf-id"]}},Fz=t=>typeof(t==null?void 0:t.$metadata)=="object",mp=async t=>{if(!t||t.statusCode<300)return;const i=await Cg(t),h=(T=>{const[s]=T.toString().split(/[,:]+/);return s.includes("#")?s.split("#")[1]:s})(t.headers["x-amzn-errortype"]??i.code??i.__type??"UnknownError"),g=i.message??i.Message??"Unknown error",x=new Error(g);return Object.assign(x,{name:h,$metadata:Ag(t)})},Cg=async t=>{if(!t.body)throw new Error("Missing response payload");const i=await t.body.json();return Object.assign(i,{$metadata:Ag(t)})},ix=(t,i,l,h)=>async(g,x)=>{const T={...h,...g},s=await T.endpointResolver(T,x),M=await i(x,s),F=await t(M,{...T});return l(F)},kS={id:"aws",outputs:{dnsSuffix:"amazonaws.com"},regionRegex:"^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$",regions:["aws-global"]},Nz={partitions:[kS,{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn"},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:["aws-cn-global"]}]},PS=t=>{const{partitions:i}=Nz;for(const{regions:l,outputs:h,regionRegex:g}of i){const x=new RegExp(g);if(l.includes(t)||x.test(t))return h.dnsSuffix}return kS.outputs.dnsSuffix},Uz=3,jz=({maxAttempts:t=Uz,retryDecider:i,computeDelay:l,abortSignal:h})=>{if(t<1)throw new Error("maxAttempts must be greater than 0");return(g,x)=>async function(s){let M,F=x.attemptsCount??0,q;const X=()=>{if(q)return EE(q,F),q;throw EE(M,F),M};for(;!(h!=null&&h.aborted)&&FF?x.attemptsCount??0:F+1,x.attemptsCount=F,await i(q,M)){if(!(h!=null&&h.aborted)&&F{if(i!=null&&i.aborted)return Promise.resolve();let l,h;const g=new Promise(x=>{h=x,l=setTimeout(x,t)});return i==null||i.addEventListener("abort",function x(T){clearTimeout(l),i==null||i.removeEventListener("abort",x),h()}),g},EE=(t,i)=>{Object.prototype.toString.call(t)==="[object Object]"&&(t.$metadata={...t.$metadata??{},attempts:i})},Gz=({userAgentHeader:t="x-amz-user-agent",userAgentValue:i=""})=>l=>async function(g){if(i.trim().length===0)return await l(g);{const x=t.toLowerCase();return g.headers[x]=g.headers[x]?`${g.headers[x]} ${i}`:i,await l(g)}},rx=(t,i)=>(l,h)=>{const g={};let x=T=>t(T,h);for(let T=i.length-1;T>=0;T--){const s=i[T];x=s(h)(x,g)}return x(l)},Gy=t=>{let i;return()=>(i||(i=t()),i)},$z=t=>!["HEAD","GET","DELETE"].includes(t.toUpperCase()),qz=async({url:t,method:i,headers:l,body:h},{abortSignal:g,cache:x,withCrossDomainCredentials:T})=>{var X;let s;try{s=await fetch(t,{method:i,headers:l,body:$z(i)?h:void 0,signal:g,cache:x,credentials:T?"include":"same-origin"})}catch(oe){throw oe instanceof TypeError?new is({name:op.NetworkError,message:"A network error has occurred.",underlyingError:oe}):oe}const M={};(X=s.headers)==null||X.forEach((oe,Ae)=>{M[Ae.toLowerCase()]=oe});const F={statusCode:s.status,headers:M,body:null},q=Object.assign(s.body??{},{text:Gy(()=>s.text()),blob:Gy(()=>s.blob()),json:Gy(()=>s.json())});return{...F,body:q}},zS=rx(qz,[Gz,jz]),Zz=5*60*1e3;function Wz(t=Zz){return h=>{const g=2**h*100+100*Math.random();return g>t?!1:g}}const TE=5*60*1e3,LS=t=>{const l=Wz(TE)(t);return l===!1?TE:l},Hz=["AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch","BadRequestException"],Xz=t=>!!t&&Hz.includes(t),RS=t=>async(i,l)=>{const h=l??await t(i)??void 0,g=(h==null?void 0:h.code)||(h==null?void 0:h.name),x=i==null?void 0:i.statusCode;return Qz(l)||Jz(x,g)||Xz(g)||eL(x,g)},Kz=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException"],Yz=["TimeoutError","RequestTimeout","RequestTimeoutException"],Jz=(t,i)=>t===429||!!i&&Kz.includes(i),Qz=t=>(t==null?void 0:t.name)==="Network error",eL=(t,i)=>!!t&&[500,502,503,504].includes(t)||!!i&&Yz.includes(i),H0=URL,tL="6.6.0";let jd;const Am=[];let ng=!1;const nL=10,iL=10,rL=1e3,DS=()=>{var t;if(!jd){if(jd=Dz(),ng)for(;Am.length;)(t=Am.pop())==null||t();else Am.forEach(i=>{i()});SE(ci.ServerSideUnknown,nL),SE(ci.WebUnknown,iL)}return jd},oL=t=>{ng||Am.push(t)};function sL(){jd=void 0}function SE(t,i){jd===t&&!ng&&setTimeout(()=>{sL(),ng=!0,setTimeout(DS,rL)},i)}const aL={},lL=(t,i)=>{var l,h;return(h=(l=aL[t])==null?void 0:l[i])==null?void 0:h.additionalDetails},cL="aws-amplify",uL=({category:t,action:i}={})=>{const l=[[cL,tL]];if(t&&l.push([t,i]),l.push(["framework",DS()]),t&&i){const h=lL(t,i);h&&h.forEach(g=>{l.push(g)})}return l},ox=t=>uL(t).map(([h,g])=>h&&g?`${h}/${g}`:h).join(" "),hL="cognito-identity",dL=({region:t})=>({url:new H0(`https://cognito-identity.${t}.${PS(t)}`)}),pL=()=>t=>async function(l){return l.headers["cache-control"]="no-store",t(l)},OS=rx(zS,[pL]),sx={service:hL,endpointResolver:dL,retryDecider:RS(mp),computeDelay:LS,userAgentValue:ox(),cache:"no-store"};oL(()=>{sx.userAgentValue=ox()});const BS=t=>({"content-type":"application/x-amz-json-1.1","x-amz-target":`AWSCognitoIdentityService.${t}`}),FS=({url:t},i,l)=>({headers:i,url:t,body:l,method:"POST"}),fL=(t,i)=>{const l=BS("GetId"),h=JSON.stringify(t);return FS(i,l,h)},mL=async t=>{if(t.statusCode>=300)throw await mp(t);return{IdentityId:(await Cg(t)).IdentityId,$metadata:Ag(t)}},gL=ix(OS,fL,mL,sx),_L=(t,i)=>{const l=BS("GetCredentialsForIdentity"),h=JSON.stringify(t);return FS(i,l,h)},yL=async t=>{if(t.statusCode>=300)throw await mp(t);{const i=await Cg(t);return{IdentityId:i.IdentityId,Credentials:vL(i.Credentials),$metadata:Ag(t)}}},vL=({AccessKeyId:t,SecretKey:i,SessionToken:l,Expiration:h}={})=>({AccessKeyId:t,SecretKey:i,SessionToken:l,Expiration:h&&new Date(h*1e3)}),AE=ix(OS,_L,yL,sx);class sm extends is{constructor(){super({name:op.PlatformNotSupported,message:"Function not supported on current platform"})}}class NS{constructor(i){this.storage=i}async setItem(i,l){if(!this.storage)throw new sm;this.storage.setItem(i,l)}async getItem(i){if(!this.storage)throw new sm;return this.storage.getItem(i)}async removeItem(i){if(!this.storage)throw new sm;this.storage.removeItem(i)}async clear(){if(!this.storage)throw new sm;this.storage.clear()}}class US{constructor(){this.storage=new Map}get length(){return this.storage.size}key(i){return i>this.length-1?null:Array.from(this.storage.keys())[i]}setItem(i,l){this.storage.set(i,l)}getItem(i){return this.storage.get(i)??null}removeItem(i){this.storage.delete(i)}clear(){this.storage.clear()}}const xL=()=>typeof window<"u"&&window.localStorage?window.localStorage:new US,wL=()=>typeof window<"u"&&window.sessionStorage?window.sessionStorage:new US;class bL extends NS{constructor(){super(xL())}}class EL extends NS{constructor(){super(wL())}}/*! js-cookie v3.0.5 | MIT */function am(t){for(var i=1;i"u")){T=am({},i,T),typeof T.expires=="number"&&(T.expires=new Date(Date.now()+T.expires*864e5)),T.expires&&(T.expires=T.expires.toUTCString()),g=encodeURIComponent(g).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var s="";for(var M in T)T[M]&&(s+="; "+M,T[M]!==!0&&(s+="="+T[M].split(";")[0]));return document.cookie=g+"="+t.write(x,g)+s}}function h(g){if(!(typeof document>"u"||arguments.length&&!g)){for(var x=document.cookie?document.cookie.split("; "):[],T={},s=0;sthis.removeItem(h));await Promise.all(l)}getData(){return{path:this.path,expires:this.expires,domain:this.domain,secure:this.secure,...this.sameSite&&{sameSite:this.sameSite}}}}const lp=new bL;new EL;const SL=t=>{let i;return async(...l)=>i||(i=new Promise((h,g)=>{t(...l).then(x=>{h(x)}).catch(x=>{g(x)}).finally(()=>{i=void 0})}),i)};class Kn extends is{constructor(i){super(i),this.constructor=Kn,Object.setPrototypeOf(this,Kn.prototype)}}function jS(t){if(!t||t.name==="Error"||t instanceof TypeError)throw new Kn({name:op.Unknown,message:"An unknown error has occurred.",underlyingError:t})}const VS="cognito-idp",AL=({region:t})=>{var g;const i=(g=Cs.getConfig().Auth)==null?void 0:g.Cognito,l=i==null?void 0:i.userPoolEndpoint,h=new H0(`https://${VS}.${t}.${PS(t)}`);return{url:l?new H0(l):h}},CL=()=>(t,i)=>async function(h){return h.headers["cache-control"]="no-store",t(h)},IL=rx(zS,[CL]),ML={service:VS,endpointResolver:AL,retryDecider:RS(mp),computeDelay:LS,userAgentValue:ox(),cache:"no-store"},kL=t=>({"content-type":"application/x-amz-json-1.1","x-amz-target":`AWSCognitoIdentityProviderService.${t}`}),PL=({url:t},i,l)=>({headers:i,url:t,body:l,method:"POST"}),zL=t=>(i,l)=>{const h=kL(t),g=JSON.stringify(i);return PL(l,h,g)},LL=()=>async t=>{if(t.statusCode>=300){const i=await mp(t);throw jS(i),new Kn({name:i.name,message:i.message})}else return await Cg(t)},RL=ix(IL,zL("InitiateAuth"),LL(),ML);function DL(t){const i=t==null?void 0:t.split("_")[0];if(!t||t.indexOf("_")<0||!i||typeof i!="string")throw new Kn({name:"InvalidUserPoolId",message:"Invalid user pool id provided."});return i}function K0(t){if(!t||!t.includes(":"))throw new Kn({name:"InvalidIdentityPoolIdException",message:"Invalid identity pool id provided.",recoverySuggestion:"Make sure a valid identityPoolId is given in the config."});return t.split(":")[0]}const GS="UserUnAuthenticatedException",OL="InvalidRedirectException",BL="InvalidAppSchemeException",FL="InvalidPreferredRedirectUrlException";new Kn({name:OL,message:"signInRedirect or signOutRedirect had an invalid format or was not found.",recoverySuggestion:"Please make sure the signIn/Out redirect in your oauth config is valid."});new Kn({name:BL,message:"A valid non-http app scheme was not found in the config.",recoverySuggestion:"Please make sure a valid custom app scheme is present in the config."});new Kn({name:FL,message:"The given preferredRedirectUrl does not match any items in the redirectSignOutUrls array from the config.",recoverySuggestion:"Please make sure a matching preferredRedirectUrl is provided."});const NL="InvalidOriginException";new Kn({name:NL,message:"redirect is coming from a different origin. The oauth flow needs to be initiated from the same origin",recoverySuggestion:"Please call signInWithRedirect from the same origin."});const UL="TokenRefreshException";function jL(t){if(!t||!t.idToken)throw new Kn({name:GS,message:"User needs to be authenticated to call this API.",recoverySuggestion:"Sign in before calling this API again."})}const VL=new Kn({name:UL,message:`Token refresh is not supported when authenticated with the 'implicit grant' (token) oauth flow. + Please change your oauth configuration to use 'code grant' flow.`,recoverySuggestion:`Please logout and change your Amplify configuration to use "code grant" flow. + E.g { responseType: 'code' }`}),GL=new Kn({name:GS,message:"User needs to be authenticated to call this API.",recoverySuggestion:"Sign in before calling this API again."});function $L(t){if(WL(t))throw VL;if(!ZL(t))throw GL}const qL={inflightOAuth:"inflightOAuth",oauthSignIn:"oauthSignIn",oauthPKCE:"oauthPKCE",oauthState:"oauthState"};function $S(t){return(t==null?void 0:t.accessToken)||(t==null?void 0:t.idToken)}function ZL(t){return $S(t)&&(t==null?void 0:t.refreshToken)}function WL(t){return $S(t)&&!(t!=null&&t.refreshToken)}function HL({username:t,userPoolId:i,userPoolClientId:l}){if(typeof window>"u")return;const h=window.AmazonCognitoAdvancedSecurityData;if(typeof h>"u")return;const g=h.getData(t,i,l);return g?{EncodedData:g}:{}}const XL=async({tokens:t,authConfig:i,username:l})=>{var oe,Ae;pr(i==null?void 0:i.Cognito);const h=DL(i.Cognito.userPoolId);$L(t);const g=t.refreshToken,x={REFRESH_TOKEN:g};(oe=t.deviceMetadata)!=null&&oe.deviceKey&&(x.DEVICE_KEY=t.deviceMetadata.deviceKey);const T=HL({username:l,userPoolId:i.Cognito.userPoolId,userPoolClientId:i.Cognito.userPoolClientId}),{AuthenticationResult:s}=await RL({region:h},{ClientId:(Ae=i==null?void 0:i.Cognito)==null?void 0:Ae.userPoolClientId,AuthFlow:"REFRESH_TOKEN_AUTH",AuthParameters:x,UserContextData:T}),M=sp((s==null?void 0:s.AccessToken)??""),F=s!=null&&s.IdToken?sp(s.IdToken):void 0,{iat:q}=M.payload;if(!q)throw new Kn({name:"iatNotFoundException",message:"iat not found in access token"});const X=q*1e3-new Date().getTime();return{accessToken:M,idToken:F,clockDrift:X,refreshToken:g,username:l}},KL=SL(XL),YL={accessToken:"accessToken",idToken:"idToken",oidcProvider:"oidcProvider",clockDrift:"clockDrift",refreshToken:"refreshToken",deviceKey:"deviceKey",randomPasswordKey:"randomPasswordKey",deviceGroupKey:"deviceGroupKey",signInDetails:"signInDetails",oauthMetadata:"oauthMetadata"};var ig;(function(t){t.InvalidAuthTokens="InvalidAuthTokens"})(ig||(ig={}));const JL={[ig.InvalidAuthTokens]:{message:"Invalid tokens.",recoverySuggestion:"Make sure the tokens are valid."}},QL=SS(JL);class eR{constructor(){this.name="CognitoIdentityServiceProvider"}getKeyValueStorage(){if(!this.keyValueStorage)throw new Kn({name:"KeyValueStorageNotFoundException",message:"KeyValueStorage was not found in TokenStore"});return this.keyValueStorage}setKeyValueStorage(i){this.keyValueStorage=i}setAuthConfig(i){this.authConfig=i}async loadTokens(){try{const i=await this.getAuthKeys(),l=await this.getKeyValueStorage().getItem(i.accessToken);if(!l)throw new Kn({name:"NoSessionFoundException",message:"Auth session was not found. Make sure to call signIn."});const h=sp(l),g=await this.getKeyValueStorage().getItem(i.idToken),x=g?sp(g):void 0,T=await this.getKeyValueStorage().getItem(i.refreshToken)??void 0,s=await this.getKeyValueStorage().getItem(i.clockDrift)??"0",M=Number.parseInt(s),F=await this.getKeyValueStorage().getItem(i.signInDetails),q={accessToken:h,idToken:x,refreshToken:T,deviceMetadata:await this.getDeviceMetadata()??void 0,clockDrift:M,username:await this.getLastAuthUser()};return F&&(q.signInDetails=JSON.parse(F)),q}catch{return null}}async storeTokens(i){QL(i!==void 0,ig.InvalidAuthTokens),await this.clearTokens();const l=i.username;await this.getKeyValueStorage().setItem(this.getLastAuthUserKey(),l);const h=await this.getAuthKeys();await this.getKeyValueStorage().setItem(h.accessToken,i.accessToken.toString()),i.idToken&&await this.getKeyValueStorage().setItem(h.idToken,i.idToken.toString()),i.refreshToken&&await this.getKeyValueStorage().setItem(h.refreshToken,i.refreshToken),i.deviceMetadata&&(i.deviceMetadata.deviceKey&&await this.getKeyValueStorage().setItem(h.deviceKey,i.deviceMetadata.deviceKey),i.deviceMetadata.deviceGroupKey&&await this.getKeyValueStorage().setItem(h.deviceGroupKey,i.deviceMetadata.deviceGroupKey),await this.getKeyValueStorage().setItem(h.randomPasswordKey,i.deviceMetadata.randomPassword)),i.signInDetails&&await this.getKeyValueStorage().setItem(h.signInDetails,JSON.stringify(i.signInDetails)),await this.getKeyValueStorage().setItem(h.clockDrift,`${i.clockDrift}`)}async clearTokens(){const i=await this.getAuthKeys();await Promise.all([this.getKeyValueStorage().removeItem(i.accessToken),this.getKeyValueStorage().removeItem(i.idToken),this.getKeyValueStorage().removeItem(i.clockDrift),this.getKeyValueStorage().removeItem(i.refreshToken),this.getKeyValueStorage().removeItem(i.signInDetails),this.getKeyValueStorage().removeItem(this.getLastAuthUserKey()),this.getKeyValueStorage().removeItem(i.oauthMetadata)])}async getDeviceMetadata(i){const l=await this.getAuthKeys(i),h=await this.getKeyValueStorage().getItem(l.deviceKey),g=await this.getKeyValueStorage().getItem(l.deviceGroupKey),x=await this.getKeyValueStorage().getItem(l.randomPasswordKey);return x&&g&&h?{deviceKey:h,deviceGroupKey:g,randomPassword:x}:null}async clearDeviceMetadata(i){const l=await this.getAuthKeys(i);await Promise.all([this.getKeyValueStorage().removeItem(l.deviceKey),this.getKeyValueStorage().removeItem(l.deviceGroupKey),this.getKeyValueStorage().removeItem(l.randomPasswordKey)])}async getAuthKeys(i){var h;pr((h=this.authConfig)==null?void 0:h.Cognito);const l=i??await this.getLastAuthUser();return tR(this.name,`${this.authConfig.Cognito.userPoolClientId}.${l}`)}getLastAuthUserKey(){var l;pr((l=this.authConfig)==null?void 0:l.Cognito);const i=this.authConfig.Cognito.userPoolClientId;return`${this.name}.${i}.LastAuthUser`}async getLastAuthUser(){return await this.getKeyValueStorage().getItem(this.getLastAuthUserKey())??"username"}async setOAuthMetadata(i){const{oauthMetadata:l}=await this.getAuthKeys();await this.getKeyValueStorage().setItem(l,JSON.stringify(i))}async getOAuthMetadata(){const{oauthMetadata:i}=await this.getAuthKeys(),l=await this.getKeyValueStorage().getItem(i);return l&&JSON.parse(l)}}const tR=(t,i)=>ax(YL)(`${t}`,i);function ax(t){const i=Object.values({...t});return(l,h)=>i.reduce((g,x)=>({...g,[x]:`${l}.${h}.${x}`}),{})}const IE="amplify-signin-with-hostedUI",Yo="CognitoIdentityServiceProvider";class nR{constructor(i){this.keyValueStorage=i}async clearOAuthInflightData(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);await Promise.all([this.keyValueStorage.removeItem(i.inflightOAuth),this.keyValueStorage.removeItem(i.oauthPKCE),this.keyValueStorage.removeItem(i.oauthState)])}async clearOAuthData(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return await this.clearOAuthInflightData(),await this.keyValueStorage.removeItem(IE),this.keyValueStorage.removeItem(i.oauthSignIn)}loadOAuthState(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.getItem(i.oauthState)}storeOAuthState(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.setItem(l.oauthState,i)}loadPKCE(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.getItem(i.oauthPKCE)}storePKCE(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);return this.keyValueStorage.setItem(l.oauthPKCE,i)}setAuthConfig(i){this.cognitoConfig=i}async loadOAuthInFlight(){pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId);return await this.keyValueStorage.getItem(i.inflightOAuth)==="true"}async storeOAuthInFlight(i){pr(this.cognitoConfig);const l=Jo(Yo,this.cognitoConfig.userPoolClientId);await this.keyValueStorage.setItem(l.inflightOAuth,`${i}`)}async loadOAuthSignIn(){var x;pr(this.cognitoConfig);const i=Jo(Yo,this.cognitoConfig.userPoolClientId),l=await this.keyValueStorage.getItem(IE),[h,g]=((x=await this.keyValueStorage.getItem(i.oauthSignIn))==null?void 0:x.split(","))??[];return{isOAuthSignIn:h==="true"||l==="true",preferPrivateSession:g==="true"}}async storeOAuthSignIn(i,l=!1){pr(this.cognitoConfig);const h=Jo(Yo,this.cognitoConfig.userPoolClientId);await this.keyValueStorage.setItem(h.oauthSignIn,`${i},${l}`)}}const Jo=(t,i)=>ax(qL)(t,i),ME=new nR(lp),iR=[],rR=t=>{iR.push(t)};class oR{constructor(){this.waitForInflightOAuth=Oz()?async()=>{if(await ME.loadOAuthInFlight())return this.inflightPromise?this.inflightPromise:(this.inflightPromise=new Promise((i,l)=>{rR(i)}),this.inflightPromise)}:async()=>{}}setAuthConfig(i){ME.setAuthConfig(i.Cognito),this.authConfig=i}setTokenRefresher(i){this.tokenRefresher=i}setAuthTokenStore(i){this.tokenStore=i}getTokenStore(){if(!this.tokenStore)throw new Kn({name:"EmptyTokenStoreException",message:"TokenStore not set"});return this.tokenStore}getTokenRefresher(){if(!this.tokenRefresher)throw new Kn({name:"EmptyTokenRefresherException",message:"TokenRefresher not set"});return this.tokenRefresher}async getTokens(i){var T,s,M,F,q;let l;try{pr((T=this.authConfig)==null?void 0:T.Cognito)}catch{return null}await this.waitForInflightOAuth(),this.inflightPromise=void 0,l=await this.getTokenStore().loadTokens();const h=await this.getTokenStore().getLastAuthUser();if(l===null)return null;const g=!!(l!=null&&l.idToken)&&uE({expiresAt:(((M=(s=l.idToken)==null?void 0:s.payload)==null?void 0:M.exp)??0)*1e3,clockDrift:l.clockDrift??0}),x=uE({expiresAt:(((q=(F=l.accessToken)==null?void 0:F.payload)==null?void 0:q.exp)??0)*1e3,clockDrift:l.clockDrift??0});return(i!=null&&i.forceRefresh||g||x)&&(l=await this.refreshTokens({tokens:l,username:h}),l===null)?null:{accessToken:l==null?void 0:l.accessToken,idToken:l==null?void 0:l.idToken,signInDetails:l==null?void 0:l.signInDetails}}async refreshTokens({tokens:i,username:l}){try{const{signInDetails:h}=i,g=await this.getTokenRefresher()({tokens:i,authConfig:this.authConfig,username:l});return g.signInDetails=h,await this.setTokens({tokens:g}),W0.dispatch("auth",{event:"tokenRefresh"},"Auth",tg),g}catch(h){return this.handleErrors(h)}}handleErrors(i){if(jS(i),i.message!=="Network error"&&this.clearTokens(),W0.dispatch("auth",{event:"tokenRefresh_failure",data:{error:i}},"Auth",tg),i.name.startsWith("NotAuthorizedException"))return null;throw i}async setTokens({tokens:i}){return this.getTokenStore().storeTokens(i)}async clearTokens(){return this.getTokenStore().clearTokens()}getDeviceMetadata(i){return this.getTokenStore().getDeviceMetadata(i)}clearDeviceMetadata(i){return this.getTokenStore().clearDeviceMetadata(i)}setOAuthMetadata(i){return this.getTokenStore().setOAuthMetadata(i)}getOAuthMetadata(){return this.getTokenStore().getOAuthMetadata()}}class sR{constructor(){this.authTokenStore=new eR,this.authTokenStore.setKeyValueStorage(lp),this.tokenOrchestrator=new oR,this.tokenOrchestrator.setAuthTokenStore(this.authTokenStore),this.tokenOrchestrator.setTokenRefresher(KL)}getTokens({forceRefresh:i}={forceRefresh:!1}){return this.tokenOrchestrator.getTokens({forceRefresh:i})}setKeyValueStorage(i){this.authTokenStore.setKeyValueStorage(i)}setAuthConfig(i){this.authTokenStore.setAuthConfig(i),this.tokenOrchestrator.setAuthConfig(i)}}const cm=new sR,aR={identityId:"identityId"},lR=new ko("DefaultIdentityIdStore");class cR{setAuthConfig(i){Sm(i.Cognito),this.authConfig=i,this._authKeys=uR("Cognito",i.Cognito.identityPoolId)}constructor(i){this._authKeys={},this.keyValueStorage=i}async loadIdentityId(){var i;Sm((i=this.authConfig)==null?void 0:i.Cognito);try{if(this._primaryIdentityId)return{id:this._primaryIdentityId,type:"primary"};{const l=await this.keyValueStorage.getItem(this._authKeys.identityId);return l?{id:l,type:"guest"}:null}}catch(l){return lR.log("Error getting stored IdentityId.",l),null}}async storeIdentityId(i){var l;Sm((l=this.authConfig)==null?void 0:l.Cognito),i.type==="guest"?(this.keyValueStorage.setItem(this._authKeys.identityId,i.id),this._primaryIdentityId=void 0):(this._primaryIdentityId=i.id,this.keyValueStorage.removeItem(this._authKeys.identityId))}async clearIdentityId(){this._primaryIdentityId=void 0,await this.keyValueStorage.removeItem(this._authKeys.identityId)}}const uR=(t,i)=>ax(aR)(`com.amplify.${t}`,i);function qS(t){const i=sp(t).payload.iss,l={};if(!i)throw new Kn({name:"InvalidIdTokenException",message:"Invalid Idtoken."});const h=i.replace(/(^\w+:|^)\/\//,"");return l[h]=t,l}const hR=new ko("CognitoIdentityIdProvider");async function dR({tokens:t,authConfig:i,identityIdStore:l}){l.setAuthConfig({Cognito:i});let h=await l.loadIdentityId();if(t){if(h&&h.type==="primary")return h.id;{const g=t.idToken?qS(t.idToken.toString()):{},x=await kE(g,i);h&&h.id===x&&hR.debug(`The guest identity ${h.id} has become the primary identity.`),h={id:x,type:"primary"}}}else{if(h&&h.type==="guest")return h.id;h={id:await kE({},i),type:"guest"}}return l.storeIdentityId(h),h.id}async function kE(t,i){const l=i==null?void 0:i.identityPoolId,h=K0(l),g=(await gL({region:h},{IdentityPoolId:l,Logins:t})).IdentityId;if(!g)throw new Kn({name:"GetIdResponseException",message:"Received undefined response from getId operation",recoverySuggestion:"Make sure to pass a valid identityPoolId in the configuration."});return g}const um=new ko("CognitoCredentialsProvider"),PE=50*60*1e3;class pR{constructor(i){this._nextCredentialsRefresh=0,this._identityIdStore=i}async clearCredentialsAndIdentityId(){um.debug("Clearing out credentials and identityId"),this._credentialsAndIdentityId=void 0,await this._identityIdStore.clearIdentityId()}async clearCredentials(){um.debug("Clearing out in-memory credentials"),this._credentialsAndIdentityId=void 0}async getCredentialsAndIdentityId(i){const l=i.authenticated,{tokens:h}=i,{authConfig:g}=i;try{Sm(g==null?void 0:g.Cognito)}catch{return}if(!l&&!g.Cognito.allowGuestAccess)return;const{forceRefresh:x}=i,T=this.hasTokenChanged(h),s=await dR({tokens:h,authConfig:g.Cognito,identityIdStore:this._identityIdStore});return(x||T)&&this.clearCredentials(),l?(jL(h),this.credsForOIDCTokens(g.Cognito,h,s)):this.getGuestCredentials(s,g.Cognito)}async getGuestCredentials(i,l){if(this._credentialsAndIdentityId&&!this.isPastTTL()&&this._credentialsAndIdentityId.isAuthenticatedCreds===!1)return um.info("returning stored credentials as they neither past TTL nor expired."),this._credentialsAndIdentityId;this.clearCredentials();const h=K0(l.identityPoolId),g=await AE({region:h},{IdentityId:i});if(g.Credentials&&g.Credentials.AccessKeyId&&g.Credentials.SecretKey){this._nextCredentialsRefresh=new Date().getTime()+PE;const x={credentials:{accessKeyId:g.Credentials.AccessKeyId,secretAccessKey:g.Credentials.SecretKey,sessionToken:g.Credentials.SessionToken,expiration:g.Credentials.Expiration},identityId:i},T=g.IdentityId;return T&&(x.identityId=T,this._identityIdStore.storeIdentityId({id:T,type:"guest"})),this._credentialsAndIdentityId={...x,isAuthenticatedCreds:!1},x}else throw new Kn({name:"CredentialsNotFoundException",message:"Cognito did not respond with either Credentials, AccessKeyId or SecretKey."})}async credsForOIDCTokens(i,l,h){var s;if(this._credentialsAndIdentityId&&!this.isPastTTL()&&this._credentialsAndIdentityId.isAuthenticatedCreds===!0)return um.debug("returning stored credentials as they neither past TTL nor expired."),this._credentialsAndIdentityId;this.clearCredentials();const g=l.idToken?qS(l.idToken.toString()):{},x=K0(i.identityPoolId),T=await AE({region:x},{IdentityId:h,Logins:g});if(T.Credentials&&T.Credentials.AccessKeyId&&T.Credentials.SecretKey){const M={credentials:{accessKeyId:T.Credentials.AccessKeyId,secretAccessKey:T.Credentials.SecretKey,sessionToken:T.Credentials.SessionToken,expiration:T.Credentials.Expiration},identityId:h};this._credentialsAndIdentityId={...M,isAuthenticatedCreds:!0,associatedIdToken:(s=l.idToken)==null?void 0:s.toString()},this._nextCredentialsRefresh=new Date().getTime()+PE;const F=T.IdentityId;return F&&(M.identityId=F,this._identityIdStore.storeIdentityId({id:F,type:"primary"})),M}else throw new Kn({name:"CredentialsException",message:"Cognito did not respond with either Credentials, AccessKeyId or SecretKey."})}isPastTTL(){return this._nextCredentialsRefresh===void 0?!0:this._nextCredentialsRefresh<=Date.now()}hasTokenChanged(i){var l,h;return!!i&&!!((l=this._credentialsAndIdentityId)!=null&&l.associatedIdToken)&&((h=i.idToken)==null?void 0:h.toString())!==this._credentialsAndIdentityId.associatedIdToken}}const fR=new pR(new cR(lp)),mR={configure(t,i){const l=IS(t);if(!l.Auth){Cs.configure(l,i);return}if(i!=null&&i.Auth){Cs.configure(l,i);return}if(!Cs.libraryOptions.Auth){cm.setAuthConfig(l.Auth),cm.setKeyValueStorage(i!=null&&i.ssr?new CE({sameSite:"lax"}):lp),Cs.configure(l,{...i,Auth:{tokenProvider:cm,credentialsProvider:fR}});return}if(i){i.ssr!==void 0&&cm.setKeyValueStorage(i.ssr?new CE({sameSite:"lax"}):lp),Cs.configure(l,{Auth:Cs.libraryOptions.Auth,...i});return}Cs.configure(l)},getConfig(){return Cs.getConfig()}};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */var gR={oauth:{domain:"authcori.auth.us-east-1.amazoncognito.com"}},_R="us-east-1",yR="us-east-1_QeA4600FA",vR="5eusi16g0o2q1g1rr5ehgudodm",xR="authcori.auth.us-east-1.amazoncognito.com",wR="us-east-1",bR="us-east-1:2194a76a-fa3d-4c33-999e-e3c4b2b049ee",ER=["EMAIL"],TR=["EMAIL","OPENID"],SR=["EMAIL","OPENID"],AR={passwordPolicyMinLength:8,passwordPolicyCharacters:["REQUIRES_NUMBERS","REQUIRES_LOWERCASE","REQUIRES_UPPERCASE","REQUIRES_SYMBOLS"]},CR="https://bdkxhfgus5dztobic7gvn5ymue.appsync-api.us-east-1.amazonaws.com/graphql",IR="us-east-1",MR="da2-yexc3mow25fc3amaendi4vscuq",kR="API_KEY",PR="AMAZON_COGNITO_USER_POOLS,AWS_IAM",zR={version:1,models:{Todo:{name:"Todo",fields:{id:{name:"id",isArray:!1,type:"ID",isRequired:!0,attributes:[]},content:{name:"content",isArray:!1,type:"String",isRequired:!1,attributes:[]},owner:{name:"owner",isArray:!1,type:"String",isRequired:!1,attributes:[]},createdAt:{name:"createdAt",isArray:!1,type:"AWSDateTime",isRequired:!0,attributes:[]},updatedAt:{name:"updatedAt",isArray:!1,type:"AWSDateTime",isRequired:!0,attributes:[]}},syncable:!0,pluralName:"Todos",attributes:[{type:"model",properties:{}},{type:"key",properties:{fields:["id"]}},{type:"auth",properties:{rules:[{provider:"userPools",ownerField:"owner",allow:"owner",identityClaim:"cognito:username",operations:["create","update","delete","read"]},{allow:"public",operations:["read"]}]}}],primaryKeyInfo:{isCustomPrimaryKey:!1,primaryKeyFieldName:"id",sortKeyFieldNames:[]}}},enums:{},nonModels:{}},LR={Auth:gR,aws_project_region:_R,aws_user_pools_id:yR,aws_user_pools_web_client_id:vR,aws_cognito_domain:xR,aws_cognito_region:wR,aws_cognito_identity_pool_id:bR,aws_cognito_signup_attributes:ER,aws_cognito_username_attributes:TR,aws_cognito_verification_mechanisms:SR,aws_cognito_password_protection_settings:AR,aws_appsync_graphqlEndpoint:CR,aws_appsync_region:IR,aws_appsync_apiKey:MR,aws_appsync_authenticationType:kR,aws_appsync_additionalAuthenticationTypes:PR,modelIntrospection:zR};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */mR.configure(LR);const RR={domain:void 0,region:void 0,identityPoolId:void 0,userPoolId:void 0,userPoolClientId:void 0};ft.createContext(RR);function ZS(t,i){return function(){return t.apply(i,arguments)}}const{toString:DR}=Object.prototype,{getPrototypeOf:lx}=Object,Ig=(t=>i=>{const l=DR.call(i);return t[l]||(t[l]=l.slice(8,-1).toLowerCase())})(Object.create(null)),Lo=t=>(t=t.toLowerCase(),i=>Ig(i)===t),Mg=t=>i=>typeof i===t,{isArray:Bu}=Array,cp=Mg("undefined");function OR(t){return t!==null&&!cp(t)&&t.constructor!==null&&!cp(t.constructor)&&zr(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const WS=Lo("ArrayBuffer");function BR(t){let i;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?i=ArrayBuffer.isView(t):i=t&&t.buffer&&WS(t.buffer),i}const FR=Mg("string"),zr=Mg("function"),HS=Mg("number"),kg=t=>t!==null&&typeof t=="object",NR=t=>t===!0||t===!1,Cm=t=>{if(Ig(t)!=="object")return!1;const i=lx(t);return(i===null||i===Object.prototype||Object.getPrototypeOf(i)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},UR=Lo("Date"),jR=Lo("File"),VR=Lo("Blob"),GR=Lo("FileList"),$R=t=>kg(t)&&zr(t.pipe),qR=t=>{let i;return t&&(typeof FormData=="function"&&t instanceof FormData||zr(t.append)&&((i=Ig(t))==="formdata"||i==="object"&&zr(t.toString)&&t.toString()==="[object FormData]"))},ZR=Lo("URLSearchParams"),[WR,HR,XR,KR]=["ReadableStream","Request","Response","Headers"].map(Lo),YR=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function gp(t,i,{allOwnKeys:l=!1}={}){if(t===null||typeof t>"u")return;let h,g;if(typeof t!="object"&&(t=[t]),Bu(t))for(h=0,g=t.length;h0;)if(g=l[h],i===g.toLowerCase())return g;return null}const Gl=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),KS=t=>!cp(t)&&t!==Gl;function Y0(){const{caseless:t}=KS(this)&&this||{},i={},l=(h,g)=>{const x=t&&XS(i,g)||g;Cm(i[x])&&Cm(h)?i[x]=Y0(i[x],h):Cm(h)?i[x]=Y0({},h):Bu(h)?i[x]=h.slice():i[x]=h};for(let h=0,g=arguments.length;h(gp(i,(g,x)=>{l&&zr(g)?t[x]=ZS(g,l):t[x]=g},{allOwnKeys:h}),t),QR=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),eD=(t,i,l,h)=>{t.prototype=Object.create(i.prototype,h),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:i.prototype}),l&&Object.assign(t.prototype,l)},tD=(t,i,l,h)=>{let g,x,T;const s={};if(i=i||{},t==null)return i;do{for(g=Object.getOwnPropertyNames(t),x=g.length;x-- >0;)T=g[x],(!h||h(T,t,i))&&!s[T]&&(i[T]=t[T],s[T]=!0);t=l!==!1&&lx(t)}while(t&&(!l||l(t,i))&&t!==Object.prototype);return i},nD=(t,i,l)=>{t=String(t),(l===void 0||l>t.length)&&(l=t.length),l-=i.length;const h=t.indexOf(i,l);return h!==-1&&h===l},iD=t=>{if(!t)return null;if(Bu(t))return t;let i=t.length;if(!HS(i))return null;const l=new Array(i);for(;i-- >0;)l[i]=t[i];return l},rD=(t=>i=>t&&i instanceof t)(typeof Uint8Array<"u"&&lx(Uint8Array)),oD=(t,i)=>{const h=(t&&t[Symbol.iterator]).call(t);let g;for(;(g=h.next())&&!g.done;){const x=g.value;i.call(t,x[0],x[1])}},sD=(t,i)=>{let l;const h=[];for(;(l=t.exec(i))!==null;)h.push(l);return h},aD=Lo("HTMLFormElement"),lD=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(l,h,g){return h.toUpperCase()+g}),zE=(({hasOwnProperty:t})=>(i,l)=>t.call(i,l))(Object.prototype),cD=Lo("RegExp"),YS=(t,i)=>{const l=Object.getOwnPropertyDescriptors(t),h={};gp(l,(g,x)=>{let T;(T=i(g,x,t))!==!1&&(h[x]=T||g)}),Object.defineProperties(t,h)},uD=t=>{YS(t,(i,l)=>{if(zr(t)&&["arguments","caller","callee"].indexOf(l)!==-1)return!1;const h=t[l];if(zr(h)){if(i.enumerable=!1,"writable"in i){i.writable=!1;return}i.set||(i.set=()=>{throw Error("Can not rewrite read-only method '"+l+"'")})}})},hD=(t,i)=>{const l={},h=g=>{g.forEach(x=>{l[x]=!0})};return Bu(t)?h(t):h(String(t).split(i)),l},dD=()=>{},pD=(t,i)=>t!=null&&Number.isFinite(t=+t)?t:i,$y="abcdefghijklmnopqrstuvwxyz",LE="0123456789",JS={DIGIT:LE,ALPHA:$y,ALPHA_DIGIT:$y+$y.toUpperCase()+LE},fD=(t=16,i=JS.ALPHA_DIGIT)=>{let l="";const{length:h}=i;for(;t--;)l+=i[Math.random()*h|0];return l};function mD(t){return!!(t&&zr(t.append)&&t[Symbol.toStringTag]==="FormData"&&t[Symbol.iterator])}const gD=t=>{const i=new Array(10),l=(h,g)=>{if(kg(h)){if(i.indexOf(h)>=0)return;if(!("toJSON"in h)){i[g]=h;const x=Bu(h)?[]:{};return gp(h,(T,s)=>{const M=l(T,g+1);!cp(M)&&(x[s]=M)}),i[g]=void 0,x}}return h};return l(t,0)},_D=Lo("AsyncFunction"),yD=t=>t&&(kg(t)||zr(t))&&zr(t.then)&&zr(t.catch),QS=((t,i)=>t?setImmediate:i?((l,h)=>(Gl.addEventListener("message",({source:g,data:x})=>{g===Gl&&x===l&&h.length&&h.shift()()},!1),g=>{h.push(g),Gl.postMessage(l,"*")}))(`axios@${Math.random()}`,[]):l=>setTimeout(l))(typeof setImmediate=="function",zr(Gl.postMessage)),vD=typeof queueMicrotask<"u"?queueMicrotask.bind(Gl):typeof process<"u"&&process.nextTick||QS,Fe={isArray:Bu,isArrayBuffer:WS,isBuffer:OR,isFormData:qR,isArrayBufferView:BR,isString:FR,isNumber:HS,isBoolean:NR,isObject:kg,isPlainObject:Cm,isReadableStream:WR,isRequest:HR,isResponse:XR,isHeaders:KR,isUndefined:cp,isDate:UR,isFile:jR,isBlob:VR,isRegExp:cD,isFunction:zr,isStream:$R,isURLSearchParams:ZR,isTypedArray:rD,isFileList:GR,forEach:gp,merge:Y0,extend:JR,trim:YR,stripBOM:QR,inherits:eD,toFlatObject:tD,kindOf:Ig,kindOfTest:Lo,endsWith:nD,toArray:iD,forEachEntry:oD,matchAll:sD,isHTMLForm:aD,hasOwnProperty:zE,hasOwnProp:zE,reduceDescriptors:YS,freezeMethods:uD,toObjectSet:hD,toCamelCase:lD,noop:dD,toFiniteNumber:pD,findKey:XS,global:Gl,isContextDefined:KS,ALPHABET:JS,generateString:fD,isSpecCompliantForm:mD,toJSONObject:gD,isAsyncFn:_D,isThenable:yD,setImmediate:QS,asap:vD};function qt(t,i,l,h,g){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",i&&(this.code=i),l&&(this.config=l),h&&(this.request=h),g&&(this.response=g,this.status=g.status?g.status:null)}Fe.inherits(qt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Fe.toJSONObject(this.config),code:this.code,status:this.status}}});const eA=qt.prototype,tA={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{tA[t]={value:t}});Object.defineProperties(qt,tA);Object.defineProperty(eA,"isAxiosError",{value:!0});qt.from=(t,i,l,h,g,x)=>{const T=Object.create(eA);return Fe.toFlatObject(t,T,function(M){return M!==Error.prototype},s=>s!=="isAxiosError"),qt.call(T,t.message,i,l,h,g),T.cause=t,T.name=t.name,x&&Object.assign(T,x),T};const xD=null;function J0(t){return Fe.isPlainObject(t)||Fe.isArray(t)}function nA(t){return Fe.endsWith(t,"[]")?t.slice(0,-2):t}function RE(t,i,l){return t?t.concat(i).map(function(g,x){return g=nA(g),!l&&x?"["+g+"]":g}).join(l?".":""):i}function wD(t){return Fe.isArray(t)&&!t.some(J0)}const bD=Fe.toFlatObject(Fe,{},null,function(i){return/^is[A-Z]/.test(i)});function Pg(t,i,l){if(!Fe.isObject(t))throw new TypeError("target must be an object");i=i||new FormData,l=Fe.toFlatObject(l,{metaTokens:!0,dots:!1,indexes:!1},!1,function(ke,ze){return!Fe.isUndefined(ze[ke])});const h=l.metaTokens,g=l.visitor||q,x=l.dots,T=l.indexes,M=(l.Blob||typeof Blob<"u"&&Blob)&&Fe.isSpecCompliantForm(i);if(!Fe.isFunction(g))throw new TypeError("visitor must be a function");function F(fe){if(fe===null)return"";if(Fe.isDate(fe))return fe.toISOString();if(!M&&Fe.isBlob(fe))throw new qt("Blob is not supported. Use a Buffer instead.");return Fe.isArrayBuffer(fe)||Fe.isTypedArray(fe)?M&&typeof Blob=="function"?new Blob([fe]):Buffer.from(fe):fe}function q(fe,ke,ze){let ue=fe;if(fe&&!ze&&typeof fe=="object"){if(Fe.endsWith(ke,"{}"))ke=h?ke:ke.slice(0,-2),fe=JSON.stringify(fe);else if(Fe.isArray(fe)&&wD(fe)||(Fe.isFileList(fe)||Fe.endsWith(ke,"[]"))&&(ue=Fe.toArray(fe)))return ke=nA(ke),ue.forEach(function(le,De){!(Fe.isUndefined(le)||le===null)&&i.append(T===!0?RE([ke],De,x):T===null?ke:ke+"[]",F(le))}),!1}return J0(fe)?!0:(i.append(RE(ze,ke,x),F(fe)),!1)}const X=[],oe=Object.assign(bD,{defaultVisitor:q,convertValue:F,isVisitable:J0});function Ae(fe,ke){if(!Fe.isUndefined(fe)){if(X.indexOf(fe)!==-1)throw Error("Circular reference detected in "+ke.join("."));X.push(fe),Fe.forEach(fe,function(ue,re){(!(Fe.isUndefined(ue)||ue===null)&&g.call(i,ue,Fe.isString(re)?re.trim():re,ke,oe))===!0&&Ae(ue,ke?ke.concat(re):[re])}),X.pop()}}if(!Fe.isObject(t))throw new TypeError("data must be an object");return Ae(t),i}function DE(t){const i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(h){return i[h]})}function cx(t,i){this._pairs=[],t&&Pg(t,this,i)}const iA=cx.prototype;iA.append=function(i,l){this._pairs.push([i,l])};iA.toString=function(i){const l=i?function(h){return i.call(this,h,DE)}:DE;return this._pairs.map(function(g){return l(g[0])+"="+l(g[1])},"").join("&")};function ED(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function rA(t,i,l){if(!i)return t;const h=l&&l.encode||ED,g=l&&l.serialize;let x;if(g?x=g(i,l):x=Fe.isURLSearchParams(i)?i.toString():new cx(i,l).toString(h),x){const T=t.indexOf("#");T!==-1&&(t=t.slice(0,T)),t+=(t.indexOf("?")===-1?"?":"&")+x}return t}class TD{constructor(){this.handlers=[]}use(i,l,h){return this.handlers.push({fulfilled:i,rejected:l,synchronous:h?h.synchronous:!1,runWhen:h?h.runWhen:null}),this.handlers.length-1}eject(i){this.handlers[i]&&(this.handlers[i]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(i){Fe.forEach(this.handlers,function(h){h!==null&&i(h)})}}const OE=TD,oA={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},SD=typeof URLSearchParams<"u"?URLSearchParams:cx,AD=typeof FormData<"u"?FormData:null,CD=typeof Blob<"u"?Blob:null,ID={isBrowser:!0,classes:{URLSearchParams:SD,FormData:AD,Blob:CD},protocols:["http","https","file","blob","url","data"]},ux=typeof window<"u"&&typeof document<"u",Q0=typeof navigator=="object"&&navigator||void 0,MD=ux&&(!Q0||["ReactNative","NativeScript","NS"].indexOf(Q0.product)<0),kD=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),PD=ux&&window.location.href||"http://localhost",zD=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ux,hasStandardBrowserEnv:MD,hasStandardBrowserWebWorkerEnv:kD,navigator:Q0,origin:PD},Symbol.toStringTag,{value:"Module"})),vr={...zD,...ID};function LD(t,i){return Pg(t,new vr.classes.URLSearchParams,Object.assign({visitor:function(l,h,g,x){return vr.isNode&&Fe.isBuffer(l)?(this.append(h,l.toString("base64")),!1):x.defaultVisitor.apply(this,arguments)}},i))}function RD(t){return Fe.matchAll(/\w+|\[(\w*)]/g,t).map(i=>i[0]==="[]"?"":i[1]||i[0])}function DD(t){const i={},l=Object.keys(t);let h;const g=l.length;let x;for(h=0;h=l.length;return T=!T&&Fe.isArray(g)?g.length:T,M?(Fe.hasOwnProp(g,T)?g[T]=[g[T],h]:g[T]=h,!s):((!g[T]||!Fe.isObject(g[T]))&&(g[T]=[]),i(l,h,g[T],x)&&Fe.isArray(g[T])&&(g[T]=DD(g[T])),!s)}if(Fe.isFormData(t)&&Fe.isFunction(t.entries)){const l={};return Fe.forEachEntry(t,(h,g)=>{i(RD(h),g,l,0)}),l}return null}function OD(t,i,l){if(Fe.isString(t))try{return(i||JSON.parse)(t),Fe.trim(t)}catch(h){if(h.name!=="SyntaxError")throw h}return(l||JSON.stringify)(t)}const hx={transitional:oA,adapter:["xhr","http","fetch"],transformRequest:[function(i,l){const h=l.getContentType()||"",g=h.indexOf("application/json")>-1,x=Fe.isObject(i);if(x&&Fe.isHTMLForm(i)&&(i=new FormData(i)),Fe.isFormData(i))return g?JSON.stringify(sA(i)):i;if(Fe.isArrayBuffer(i)||Fe.isBuffer(i)||Fe.isStream(i)||Fe.isFile(i)||Fe.isBlob(i)||Fe.isReadableStream(i))return i;if(Fe.isArrayBufferView(i))return i.buffer;if(Fe.isURLSearchParams(i))return l.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),i.toString();let s;if(x){if(h.indexOf("application/x-www-form-urlencoded")>-1)return LD(i,this.formSerializer).toString();if((s=Fe.isFileList(i))||h.indexOf("multipart/form-data")>-1){const M=this.env&&this.env.FormData;return Pg(s?{"files[]":i}:i,M&&new M,this.formSerializer)}}return x||g?(l.setContentType("application/json",!1),OD(i)):i}],transformResponse:[function(i){const l=this.transitional||hx.transitional,h=l&&l.forcedJSONParsing,g=this.responseType==="json";if(Fe.isResponse(i)||Fe.isReadableStream(i))return i;if(i&&Fe.isString(i)&&(h&&!this.responseType||g)){const T=!(l&&l.silentJSONParsing)&&g;try{return JSON.parse(i)}catch(s){if(T)throw s.name==="SyntaxError"?qt.from(s,qt.ERR_BAD_RESPONSE,this,null,this.response):s}}return i}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:vr.classes.FormData,Blob:vr.classes.Blob},validateStatus:function(i){return i>=200&&i<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Fe.forEach(["delete","get","head","post","put","patch"],t=>{hx.headers[t]={}});const dx=hx,BD=Fe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),FD=t=>{const i={};let l,h,g;return t&&t.split(` +`).forEach(function(T){g=T.indexOf(":"),l=T.substring(0,g).trim().toLowerCase(),h=T.substring(g+1).trim(),!(!l||i[l]&&BD[l])&&(l==="set-cookie"?i[l]?i[l].push(h):i[l]=[h]:i[l]=i[l]?i[l]+", "+h:h)}),i},BE=Symbol("internals");function Cd(t){return t&&String(t).trim().toLowerCase()}function Im(t){return t===!1||t==null?t:Fe.isArray(t)?t.map(Im):String(t)}function ND(t){const i=Object.create(null),l=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let h;for(;h=l.exec(t);)i[h[1]]=h[2];return i}const UD=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function qy(t,i,l,h,g){if(Fe.isFunction(h))return h.call(this,i,l);if(g&&(i=l),!!Fe.isString(i)){if(Fe.isString(h))return i.indexOf(h)!==-1;if(Fe.isRegExp(h))return h.test(i)}}function jD(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(i,l,h)=>l.toUpperCase()+h)}function VD(t,i){const l=Fe.toCamelCase(" "+i);["get","set","has"].forEach(h=>{Object.defineProperty(t,h+l,{value:function(g,x,T){return this[h].call(this,i,g,x,T)},configurable:!0})})}class zg{constructor(i){i&&this.set(i)}set(i,l,h){const g=this;function x(s,M,F){const q=Cd(M);if(!q)throw new Error("header name must be a non-empty string");const X=Fe.findKey(g,q);(!X||g[X]===void 0||F===!0||F===void 0&&g[X]!==!1)&&(g[X||M]=Im(s))}const T=(s,M)=>Fe.forEach(s,(F,q)=>x(F,q,M));if(Fe.isPlainObject(i)||i instanceof this.constructor)T(i,l);else if(Fe.isString(i)&&(i=i.trim())&&!UD(i))T(FD(i),l);else if(Fe.isHeaders(i))for(const[s,M]of i.entries())x(M,s,h);else i!=null&&x(l,i,h);return this}get(i,l){if(i=Cd(i),i){const h=Fe.findKey(this,i);if(h){const g=this[h];if(!l)return g;if(l===!0)return ND(g);if(Fe.isFunction(l))return l.call(this,g,h);if(Fe.isRegExp(l))return l.exec(g);throw new TypeError("parser must be boolean|regexp|function")}}}has(i,l){if(i=Cd(i),i){const h=Fe.findKey(this,i);return!!(h&&this[h]!==void 0&&(!l||qy(this,this[h],h,l)))}return!1}delete(i,l){const h=this;let g=!1;function x(T){if(T=Cd(T),T){const s=Fe.findKey(h,T);s&&(!l||qy(h,h[s],s,l))&&(delete h[s],g=!0)}}return Fe.isArray(i)?i.forEach(x):x(i),g}clear(i){const l=Object.keys(this);let h=l.length,g=!1;for(;h--;){const x=l[h];(!i||qy(this,this[x],x,i,!0))&&(delete this[x],g=!0)}return g}normalize(i){const l=this,h={};return Fe.forEach(this,(g,x)=>{const T=Fe.findKey(h,x);if(T){l[T]=Im(g),delete l[x];return}const s=i?jD(x):String(x).trim();s!==x&&delete l[x],l[s]=Im(g),h[s]=!0}),this}concat(...i){return this.constructor.concat(this,...i)}toJSON(i){const l=Object.create(null);return Fe.forEach(this,(h,g)=>{h!=null&&h!==!1&&(l[g]=i&&Fe.isArray(h)?h.join(", "):h)}),l}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([i,l])=>i+": "+l).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(i){return i instanceof this?i:new this(i)}static concat(i,...l){const h=new this(i);return l.forEach(g=>h.set(g)),h}static accessor(i){const h=(this[BE]=this[BE]={accessors:{}}).accessors,g=this.prototype;function x(T){const s=Cd(T);h[s]||(VD(g,T),h[s]=!0)}return Fe.isArray(i)?i.forEach(x):x(i),this}}zg.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Fe.reduceDescriptors(zg.prototype,({value:t},i)=>{let l=i[0].toUpperCase()+i.slice(1);return{get:()=>t,set(h){this[l]=h}}});Fe.freezeMethods(zg);const Po=zg;function Zy(t,i){const l=this||dx,h=i||l,g=Po.from(h.headers);let x=h.data;return Fe.forEach(t,function(s){x=s.call(l,x,g.normalize(),i?i.status:void 0)}),g.normalize(),x}function aA(t){return!!(t&&t.__CANCEL__)}function Fu(t,i,l){qt.call(this,t??"canceled",qt.ERR_CANCELED,i,l),this.name="CanceledError"}Fe.inherits(Fu,qt,{__CANCEL__:!0});function lA(t,i,l){const h=l.config.validateStatus;!l.status||!h||h(l.status)?t(l):i(new qt("Request failed with status code "+l.status,[qt.ERR_BAD_REQUEST,qt.ERR_BAD_RESPONSE][Math.floor(l.status/100)-4],l.config,l.request,l))}function GD(t){const i=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return i&&i[1]||""}function $D(t,i){t=t||10;const l=new Array(t),h=new Array(t);let g=0,x=0,T;return i=i!==void 0?i:1e3,function(M){const F=Date.now(),q=h[x];T||(T=F),l[g]=M,h[g]=F;let X=x,oe=0;for(;X!==g;)oe+=l[X++],X=X%t;if(g=(g+1)%t,g===x&&(x=(x+1)%t),F-T{l=q,g=null,x&&(clearTimeout(x),x=null),t.apply(null,F)};return[(...F)=>{const q=Date.now(),X=q-l;X>=h?T(F,q):(g=F,x||(x=setTimeout(()=>{x=null,T(g)},h-X)))},()=>g&&T(g)]}const rg=(t,i,l=3)=>{let h=0;const g=$D(50,250);return qD(x=>{const T=x.loaded,s=x.lengthComputable?x.total:void 0,M=T-h,F=g(M),q=T<=s;h=T;const X={loaded:T,total:s,progress:s?T/s:void 0,bytes:M,rate:F||void 0,estimated:F&&s&&q?(s-T)/F:void 0,event:x,lengthComputable:s!=null,[i?"download":"upload"]:!0};t(X)},l)},FE=(t,i)=>{const l=t!=null;return[h=>i[0]({lengthComputable:l,total:t,loaded:h}),i[1]]},NE=t=>(...i)=>Fe.asap(()=>t(...i)),ZD=vr.hasStandardBrowserEnv?function(){const i=vr.navigator&&/(msie|trident)/i.test(vr.navigator.userAgent),l=document.createElement("a");let h;function g(x){let T=x;return i&&(l.setAttribute("href",T),T=l.href),l.setAttribute("href",T),{href:l.href,protocol:l.protocol?l.protocol.replace(/:$/,""):"",host:l.host,search:l.search?l.search.replace(/^\?/,""):"",hash:l.hash?l.hash.replace(/^#/,""):"",hostname:l.hostname,port:l.port,pathname:l.pathname.charAt(0)==="/"?l.pathname:"/"+l.pathname}}return h=g(window.location.href),function(T){const s=Fe.isString(T)?g(T):T;return s.protocol===h.protocol&&s.host===h.host}}():function(){return function(){return!0}}(),WD=vr.hasStandardBrowserEnv?{write(t,i,l,h,g,x){const T=[t+"="+encodeURIComponent(i)];Fe.isNumber(l)&&T.push("expires="+new Date(l).toGMTString()),Fe.isString(h)&&T.push("path="+h),Fe.isString(g)&&T.push("domain="+g),x===!0&&T.push("secure"),document.cookie=T.join("; ")},read(t){const i=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return i?decodeURIComponent(i[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function HD(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function XD(t,i){return i?t.replace(/\/?\/$/,"")+"/"+i.replace(/^\/+/,""):t}function cA(t,i){return t&&!HD(i)?XD(t,i):i}const UE=t=>t instanceof Po?{...t}:t;function Yl(t,i){i=i||{};const l={};function h(F,q,X){return Fe.isPlainObject(F)&&Fe.isPlainObject(q)?Fe.merge.call({caseless:X},F,q):Fe.isPlainObject(q)?Fe.merge({},q):Fe.isArray(q)?q.slice():q}function g(F,q,X){if(Fe.isUndefined(q)){if(!Fe.isUndefined(F))return h(void 0,F,X)}else return h(F,q,X)}function x(F,q){if(!Fe.isUndefined(q))return h(void 0,q)}function T(F,q){if(Fe.isUndefined(q)){if(!Fe.isUndefined(F))return h(void 0,F)}else return h(void 0,q)}function s(F,q,X){if(X in i)return h(F,q);if(X in t)return h(void 0,F)}const M={url:x,method:x,data:x,baseURL:T,transformRequest:T,transformResponse:T,paramsSerializer:T,timeout:T,timeoutMessage:T,withCredentials:T,withXSRFToken:T,adapter:T,responseType:T,xsrfCookieName:T,xsrfHeaderName:T,onUploadProgress:T,onDownloadProgress:T,decompress:T,maxContentLength:T,maxBodyLength:T,beforeRedirect:T,transport:T,httpAgent:T,httpsAgent:T,cancelToken:T,socketPath:T,responseEncoding:T,validateStatus:s,headers:(F,q)=>g(UE(F),UE(q),!0)};return Fe.forEach(Object.keys(Object.assign({},t,i)),function(q){const X=M[q]||g,oe=X(t[q],i[q],q);Fe.isUndefined(oe)&&X!==s||(l[q]=oe)}),l}const uA=t=>{const i=Yl({},t);let{data:l,withXSRFToken:h,xsrfHeaderName:g,xsrfCookieName:x,headers:T,auth:s}=i;i.headers=T=Po.from(T),i.url=rA(cA(i.baseURL,i.url),t.params,t.paramsSerializer),s&&T.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let M;if(Fe.isFormData(l)){if(vr.hasStandardBrowserEnv||vr.hasStandardBrowserWebWorkerEnv)T.setContentType(void 0);else if((M=T.getContentType())!==!1){const[F,...q]=M?M.split(";").map(X=>X.trim()).filter(Boolean):[];T.setContentType([F||"multipart/form-data",...q].join("; "))}}if(vr.hasStandardBrowserEnv&&(h&&Fe.isFunction(h)&&(h=h(i)),h||h!==!1&&ZD(i.url))){const F=g&&x&&WD.read(x);F&&T.set(g,F)}return i},KD=typeof XMLHttpRequest<"u",YD=KD&&function(t){return new Promise(function(l,h){const g=uA(t);let x=g.data;const T=Po.from(g.headers).normalize();let{responseType:s,onUploadProgress:M,onDownloadProgress:F}=g,q,X,oe,Ae,fe;function ke(){Ae&&Ae(),fe&&fe(),g.cancelToken&&g.cancelToken.unsubscribe(q),g.signal&&g.signal.removeEventListener("abort",q)}let ze=new XMLHttpRequest;ze.open(g.method.toUpperCase(),g.url,!0),ze.timeout=g.timeout;function ue(){if(!ze)return;const le=Po.from("getAllResponseHeaders"in ze&&ze.getAllResponseHeaders()),je={data:!s||s==="text"||s==="json"?ze.responseText:ze.response,status:ze.status,statusText:ze.statusText,headers:le,config:t,request:ze};lA(function(lt){l(lt),ke()},function(lt){h(lt),ke()},je),ze=null}"onloadend"in ze?ze.onloadend=ue:ze.onreadystatechange=function(){!ze||ze.readyState!==4||ze.status===0&&!(ze.responseURL&&ze.responseURL.indexOf("file:")===0)||setTimeout(ue)},ze.onabort=function(){ze&&(h(new qt("Request aborted",qt.ECONNABORTED,t,ze)),ze=null)},ze.onerror=function(){h(new qt("Network Error",qt.ERR_NETWORK,t,ze)),ze=null},ze.ontimeout=function(){let De=g.timeout?"timeout of "+g.timeout+"ms exceeded":"timeout exceeded";const je=g.transitional||oA;g.timeoutErrorMessage&&(De=g.timeoutErrorMessage),h(new qt(De,je.clarifyTimeoutError?qt.ETIMEDOUT:qt.ECONNABORTED,t,ze)),ze=null},x===void 0&&T.setContentType(null),"setRequestHeader"in ze&&Fe.forEach(T.toJSON(),function(De,je){ze.setRequestHeader(je,De)}),Fe.isUndefined(g.withCredentials)||(ze.withCredentials=!!g.withCredentials),s&&s!=="json"&&(ze.responseType=g.responseType),F&&([oe,fe]=rg(F,!0),ze.addEventListener("progress",oe)),M&&ze.upload&&([X,Ae]=rg(M),ze.upload.addEventListener("progress",X),ze.upload.addEventListener("loadend",Ae)),(g.cancelToken||g.signal)&&(q=le=>{ze&&(h(!le||le.type?new Fu(null,t,ze):le),ze.abort(),ze=null)},g.cancelToken&&g.cancelToken.subscribe(q),g.signal&&(g.signal.aborted?q():g.signal.addEventListener("abort",q)));const re=GD(g.url);if(re&&vr.protocols.indexOf(re)===-1){h(new qt("Unsupported protocol "+re+":",qt.ERR_BAD_REQUEST,t));return}ze.send(x||null)})},JD=(t,i)=>{const{length:l}=t=t?t.filter(Boolean):[];if(i||l){let h=new AbortController,g;const x=function(F){if(!g){g=!0,s();const q=F instanceof Error?F:this.reason;h.abort(q instanceof qt?q:new Fu(q instanceof Error?q.message:q))}};let T=i&&setTimeout(()=>{T=null,x(new qt(`timeout ${i} of ms exceeded`,qt.ETIMEDOUT))},i);const s=()=>{t&&(T&&clearTimeout(T),T=null,t.forEach(F=>{F.unsubscribe?F.unsubscribe(x):F.removeEventListener("abort",x)}),t=null)};t.forEach(F=>F.addEventListener("abort",x));const{signal:M}=h;return M.unsubscribe=()=>Fe.asap(s),M}},QD=JD,e3=function*(t,i){let l=t.byteLength;if(!i||l{const g=t3(t,i);let x=0,T,s=M=>{T||(T=!0,h&&h(M))};return new ReadableStream({async pull(M){try{const{done:F,value:q}=await g.next();if(F){s(),M.close();return}let X=q.byteLength;if(l){let oe=x+=X;l(oe)}M.enqueue(new Uint8Array(q))}catch(F){throw s(F),F}},cancel(M){return s(M),g.return()}},{highWaterMark:2})},Lg=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",hA=Lg&&typeof ReadableStream=="function",i3=Lg&&(typeof TextEncoder=="function"?(t=>i=>t.encode(i))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),dA=(t,...i)=>{try{return!!t(...i)}catch{return!1}},r3=hA&&dA(()=>{let t=!1;const i=new Request(vr.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!i}),VE=64*1024,ev=hA&&dA(()=>Fe.isReadableStream(new Response("").body)),og={stream:ev&&(t=>t.body)};Lg&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(i=>{!og[i]&&(og[i]=Fe.isFunction(t[i])?l=>l[i]():(l,h)=>{throw new qt(`Response type '${i}' is not supported`,qt.ERR_NOT_SUPPORT,h)})})})(new Response);const o3=async t=>{if(t==null)return 0;if(Fe.isBlob(t))return t.size;if(Fe.isSpecCompliantForm(t))return(await new Request(vr.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(Fe.isArrayBufferView(t)||Fe.isArrayBuffer(t))return t.byteLength;if(Fe.isURLSearchParams(t)&&(t=t+""),Fe.isString(t))return(await i3(t)).byteLength},s3=async(t,i)=>{const l=Fe.toFiniteNumber(t.getContentLength());return l??o3(i)},a3=Lg&&(async t=>{let{url:i,method:l,data:h,signal:g,cancelToken:x,timeout:T,onDownloadProgress:s,onUploadProgress:M,responseType:F,headers:q,withCredentials:X="same-origin",fetchOptions:oe}=uA(t);F=F?(F+"").toLowerCase():"text";let Ae=QD([g,x&&x.toAbortSignal()],T),fe;const ke=Ae&&Ae.unsubscribe&&(()=>{Ae.unsubscribe()});let ze;try{if(M&&r3&&l!=="get"&&l!=="head"&&(ze=await s3(q,h))!==0){let je=new Request(i,{method:"POST",body:h,duplex:"half"}),tt;if(Fe.isFormData(h)&&(tt=je.headers.get("content-type"))&&q.setContentType(tt),je.body){const[lt,ut]=FE(ze,rg(NE(M)));h=jE(je.body,VE,lt,ut)}}Fe.isString(X)||(X=X?"include":"omit");const ue="credentials"in Request.prototype;fe=new Request(i,{...oe,signal:Ae,method:l.toUpperCase(),headers:q.normalize().toJSON(),body:h,duplex:"half",credentials:ue?X:void 0});let re=await fetch(fe);const le=ev&&(F==="stream"||F==="response");if(ev&&(s||le&&ke)){const je={};["status","statusText","headers"].forEach(Ve=>{je[Ve]=re[Ve]});const tt=Fe.toFiniteNumber(re.headers.get("content-length")),[lt,ut]=s&&FE(tt,rg(NE(s),!0))||[];re=new Response(jE(re.body,VE,lt,()=>{ut&&ut(),ke&&ke()}),je)}F=F||"text";let De=await og[Fe.findKey(og,F)||"text"](re,t);return!le&&ke&&ke(),await new Promise((je,tt)=>{lA(je,tt,{data:De,headers:Po.from(re.headers),status:re.status,statusText:re.statusText,config:t,request:fe})})}catch(ue){throw ke&&ke(),ue&&ue.name==="TypeError"&&/fetch/i.test(ue.message)?Object.assign(new qt("Network Error",qt.ERR_NETWORK,t,fe),{cause:ue.cause||ue}):qt.from(ue,ue&&ue.code,t,fe)}}),tv={http:xD,xhr:YD,fetch:a3};Fe.forEach(tv,(t,i)=>{if(t){try{Object.defineProperty(t,"name",{value:i})}catch{}Object.defineProperty(t,"adapterName",{value:i})}});const GE=t=>`- ${t}`,l3=t=>Fe.isFunction(t)||t===null||t===!1,pA={getAdapter:t=>{t=Fe.isArray(t)?t:[t];const{length:i}=t;let l,h;const g={};for(let x=0;x`adapter ${s} `+(M===!1?"is not supported by the environment":"is not available in the build"));let T=i?x.length>1?`since : +`+x.map(GE).join(` +`):" "+GE(x[0]):"as no adapter specified";throw new qt("There is no suitable adapter to dispatch the request "+T,"ERR_NOT_SUPPORT")}return h},adapters:tv};function Wy(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Fu(null,t)}function $E(t){return Wy(t),t.headers=Po.from(t.headers),t.data=Zy.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),pA.getAdapter(t.adapter||dx.adapter)(t).then(function(h){return Wy(t),h.data=Zy.call(t,t.transformResponse,h),h.headers=Po.from(h.headers),h},function(h){return aA(h)||(Wy(t),h&&h.response&&(h.response.data=Zy.call(t,t.transformResponse,h.response),h.response.headers=Po.from(h.response.headers))),Promise.reject(h)})}const fA="1.7.7",px={};["object","boolean","number","function","string","symbol"].forEach((t,i)=>{px[t]=function(h){return typeof h===t||"a"+(i<1?"n ":" ")+t}});const qE={};px.transitional=function(i,l,h){function g(x,T){return"[Axios v"+fA+"] Transitional option '"+x+"'"+T+(h?". "+h:"")}return(x,T,s)=>{if(i===!1)throw new qt(g(T," has been removed"+(l?" in "+l:"")),qt.ERR_DEPRECATED);return l&&!qE[T]&&(qE[T]=!0,console.warn(g(T," has been deprecated since v"+l+" and will be removed in the near future"))),i?i(x,T,s):!0}};function c3(t,i,l){if(typeof t!="object")throw new qt("options must be an object",qt.ERR_BAD_OPTION_VALUE);const h=Object.keys(t);let g=h.length;for(;g-- >0;){const x=h[g],T=i[x];if(T){const s=t[x],M=s===void 0||T(s,x,t);if(M!==!0)throw new qt("option "+x+" must be "+M,qt.ERR_BAD_OPTION_VALUE);continue}if(l!==!0)throw new qt("Unknown option "+x,qt.ERR_BAD_OPTION)}}const nv={assertOptions:c3,validators:px},wa=nv.validators;class sg{constructor(i){this.defaults=i,this.interceptors={request:new OE,response:new OE}}async request(i,l){try{return await this._request(i,l)}catch(h){if(h instanceof Error){let g;Error.captureStackTrace?Error.captureStackTrace(g={}):g=new Error;const x=g.stack?g.stack.replace(/^.+\n/,""):"";try{h.stack?x&&!String(h.stack).endsWith(x.replace(/^.+\n.+\n/,""))&&(h.stack+=` +`+x):h.stack=x}catch{}}throw h}}_request(i,l){typeof i=="string"?(l=l||{},l.url=i):l=i||{},l=Yl(this.defaults,l);const{transitional:h,paramsSerializer:g,headers:x}=l;h!==void 0&&nv.assertOptions(h,{silentJSONParsing:wa.transitional(wa.boolean),forcedJSONParsing:wa.transitional(wa.boolean),clarifyTimeoutError:wa.transitional(wa.boolean)},!1),g!=null&&(Fe.isFunction(g)?l.paramsSerializer={serialize:g}:nv.assertOptions(g,{encode:wa.function,serialize:wa.function},!0)),l.method=(l.method||this.defaults.method||"get").toLowerCase();let T=x&&Fe.merge(x.common,x[l.method]);x&&Fe.forEach(["delete","get","head","post","put","patch","common"],fe=>{delete x[fe]}),l.headers=Po.concat(T,x);const s=[];let M=!0;this.interceptors.request.forEach(function(ke){typeof ke.runWhen=="function"&&ke.runWhen(l)===!1||(M=M&&ke.synchronous,s.unshift(ke.fulfilled,ke.rejected))});const F=[];this.interceptors.response.forEach(function(ke){F.push(ke.fulfilled,ke.rejected)});let q,X=0,oe;if(!M){const fe=[$E.bind(this),void 0];for(fe.unshift.apply(fe,s),fe.push.apply(fe,F),oe=fe.length,q=Promise.resolve(l);X{if(!h._listeners)return;let x=h._listeners.length;for(;x-- >0;)h._listeners[x](g);h._listeners=null}),this.promise.then=g=>{let x;const T=new Promise(s=>{h.subscribe(s),x=s}).then(g);return T.cancel=function(){h.unsubscribe(x)},T},i(function(x,T,s){h.reason||(h.reason=new Fu(x,T,s),l(h.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(i){if(this.reason){i(this.reason);return}this._listeners?this._listeners.push(i):this._listeners=[i]}unsubscribe(i){if(!this._listeners)return;const l=this._listeners.indexOf(i);l!==-1&&this._listeners.splice(l,1)}toAbortSignal(){const i=new AbortController,l=h=>{i.abort(h)};return this.subscribe(l),i.signal.unsubscribe=()=>this.unsubscribe(l),i.signal}static source(){let i;return{token:new fx(function(g){i=g}),cancel:i}}}const u3=fx;function h3(t){return function(l){return t.apply(null,l)}}function d3(t){return Fe.isObject(t)&&t.isAxiosError===!0}const iv={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(iv).forEach(([t,i])=>{iv[i]=t});const p3=iv;function mA(t){const i=new Mm(t),l=ZS(Mm.prototype.request,i);return Fe.extend(l,Mm.prototype,i,{allOwnKeys:!0}),Fe.extend(l,i,null,{allOwnKeys:!0}),l.create=function(g){return mA(Yl(t,g))},l}const hi=mA(dx);hi.Axios=Mm;hi.CanceledError=Fu;hi.CancelToken=u3;hi.isCancel=aA;hi.VERSION=fA;hi.toFormData=Pg;hi.AxiosError=qt;hi.Cancel=hi.CanceledError;hi.all=function(i){return Promise.all(i)};hi.spread=h3;hi.isAxiosError=d3;hi.mergeConfig=Yl;hi.AxiosHeaders=Po;hi.formToJSON=t=>sA(Fe.isHTMLForm(t)?new FormData(t):t);hi.getAdapter=pA.getAdapter;hi.HttpStatusCode=p3;hi.default=hi;const f3=hi;/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */const mu="https://cori-data-api.ruralinnovation.us/",rv=f3.create({baseURL:mu,headers:{"Content-Type":"application/json"}}),Hy={},gA={apiClient:rv,authenticated:!1,authenticated_user:null,autoSignOut:null,baseURL:mu,token:null,data:{get:()=>Hy,set:t=>{for(const i in t)t.hasOwnProperty[i]&&(Hy[i]=t)}},setData:t=>{for(const i in t)t.hasOwnProperty[i]&&(Hy[i]=t)}},_A=ft.createContext(gA);let hm=!1,ZE=!1;function m3(t){const[i,l]=ft.useState(Object.assign(Object.assign({},gA),{baseURL:t.baseURL?t.baseURL:mu,setData:h}));function h(g){const x=i;l(Object.assign(Object.assign({},x),{data:Object.assign(Object.assign({},x.data),g),setData:h}))}return t.baseURL&&t.baseURL.length>0&&rv.interceptors.request.use(g=>(g.baseURL=t.baseURL,console.log("API baseURL updated:",g.baseURL),g),g=>Promise.reject(g)),ft.useEffect(()=>{if(l(Object.assign(Object.assign({},i),{autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:g}=t;g(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL?t.baseURL:mu})),t.fetchAuthSession){const{fetchAuthSession:g}=t;g().then(T=>{if(!hm){const s=T.tokens;if(console.log("API tokens:",s),s&&s.hasOwnProperty("idToken")&&(hm=!0,console.log("API Session is authenticated:",hm),console.log("API Session config:",T),console.log("idToken:",s.idToken),rv.interceptors.request.use(M=>{const F=s.idToken;return F&&(M.headers.Authorization=`Bearer ${F}`),t.baseURL&&(M.baseURL=t.baseURL),M},M=>Promise.reject(M)),l(Object.assign(Object.assign({},i),{authenticated:!0,autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:M}=t;M(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL||mu,token:s.idToken})),t.getCurrentUser)){const{getCurrentUser:M}=t;M().then(q=>{ZE||(ZE=!0,console.log("API User is authenticated:",hm),console.log("API User:",q),console.log("API User type:",q.constructor.name),l(Object.assign(Object.assign({},i),{authenticated:!0,authenticated_user:q,autoSignOut:t.signOut&&typeof t.signOut=="function"?()=>{const{signOut:X}=t;X(),window.alert("Please refresh this session by clicking the browser's reload button!"),window.location=window.location.protocol+"//"+window.location.host+window.location.pathname}:null,baseURL:t.baseURL||mu,token:s.idToken})))})}}})}},[]),_y.createElement(_y.Fragment,null,_y.createElement(_A.Provider,{value:i},t.children))}const g3="modulepreload",_3=function(t){return"/"+t},WE={},y3=function(i,l,h){if(!l||l.length===0)return i();const g=document.getElementsByTagName("link");return Promise.all(l.map(x=>{if(x=_3(x),x in WE)return;WE[x]=!0;const T=x.endsWith(".css"),s=T?'[rel="stylesheet"]':"";if(!!h)for(let q=g.length-1;q>=0;q--){const X=g[q];if(X.href===x&&(!T||X.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${x}"]${s}`))return;const F=document.createElement("link");if(F.rel=T?"stylesheet":g3,T||(F.as="script",F.crossOrigin=""),F.href=x,document.head.appendChild(F),T)return new Promise((q,X)=>{F.addEventListener("load",q),F.addEventListener("error",()=>X(new Error(`Unable to preload CSS for ${x}`)))})})).then(()=>i()).catch(x=>{const T=new Event("vite:preloadError",{cancelable:!0});if(T.payload=x,window.dispatchEvent(T),!T.defaultPrevented)throw x})},v3=ft.createContext(null);function x3(t,i){const l=Array.isArray(t)?t[0]:t?t.x:0,h=Array.isArray(t)?t[1]:t?t.y:0,g=Array.isArray(i)?i[0]:i?i.x:0,x=Array.isArray(i)?i[1]:i?i.y:0;return l===g&&h===x}function Ps(t,i){if(t===i)return!0;if(!t||!i)return!1;if(Array.isArray(t)){if(!Array.isArray(i)||t.length!==i.length)return!1;for(let l=0;l{let g=null;"interactive"in h&&(g=Object.assign({},h),delete g.interactive);const x=i[h.ref];if(x){g=g||Object.assign({},h),delete g.ref;for(const T of b3)T in x&&(g[T]=x[T])}return g||h});return{...t,layers:l}}const JE={version:8,sources:{},layers:[]},QE={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},Xy={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},e2={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},E3=["minZoom","maxZoom","minPitch","maxPitch","maxBounds","projection","renderWorldCopies"],T3=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"];class Pu{constructor(i,l,h){this._map=null,this._internalUpdate=!1,this._inRender=!1,this._hoveredFeatures=null,this._deferredEvents={move:!1,zoom:!1,pitch:!1,rotate:!1},this._onEvent=g=>{const x=this.props[e2[g.type]];x?x(g):g.type==="error"&&console.error(g.error)},this._onPointerEvent=g=>{(g.type==="mousemove"||g.type==="mouseout")&&this._updateHover(g);const x=this.props[QE[g.type]];x&&(this.props.interactiveLayerIds&&g.type!=="mouseover"&&g.type!=="mouseout"&&(g.features=this._hoveredFeatures||this._queryRenderedFeatures(g.point)),x(g),delete g.features)},this._onCameraEvent=g=>{if(!this._internalUpdate){const x=this.props[Xy[g.type]];x&&x(g)}g.type in this._deferredEvents&&(this._deferredEvents[g.type]=!1)},this._MapClass=i,this.props=l,this._initialize(h)}get map(){return this._map}get transform(){return this._renderTransform}setProps(i){const l=this.props;this.props=i;const h=this._updateSettings(i,l);h&&this._createShadowTransform(this._map);const g=this._updateSize(i),x=this._updateViewState(i,!0);this._updateStyle(i,l),this._updateStyleComponents(i,l),this._updateHandlers(i,l),(h||g||x&&!this._map.isMoving())&&this.redraw()}static reuse(i,l){const h=Pu.savedMaps.pop();if(!h)return null;const g=h.map,x=g.getContainer();for(l.className=x.className;x.childNodes.length>0;)l.appendChild(x.childNodes[0]);g._container=l;const T=g._resizeObserver;T&&(T.disconnect(),T.observe(l)),h.setProps({...i,styleDiffing:!1}),g.resize();const{initialViewState:s}=i;return s&&(s.bounds?g.fitBounds(s.bounds,{...s.fitBoundsOptions,duration:0}):h._updateViewState(s,!1)),g.isStyleLoaded()?g.fire("load"):g.once("styledata",()=>g.fire("load")),g._update(),h}_initialize(i){const{props:l}=this,{mapStyle:h=JE}=l,g={...l,...l.initialViewState,accessToken:l.mapboxAccessToken||S3()||null,container:i,style:YE(h)},x=g.initialViewState||g.viewState||g;if(Object.assign(g,{center:[x.longitude||0,x.latitude||0],zoom:x.zoom||0,pitch:x.pitch||0,bearing:x.bearing||0}),l.gl){const q=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=q,l.gl)}const T=new this._MapClass(g);x.padding&&T.setPadding(x.padding),l.cursor&&(T.getCanvas().style.cursor=l.cursor),this._createShadowTransform(T);const s=T._render;T._render=q=>{this._inRender=!0,s.call(T,q),this._inRender=!1};const M=T._renderTaskQueue.run;T._renderTaskQueue.run=q=>{M.call(T._renderTaskQueue,q),this._onBeforeRepaint()},T.on("render",()=>this._onAfterRepaint());const F=T.fire;T.fire=this._fireEvent.bind(this,F),T.on("resize",()=>{this._renderTransform.resize(T.transform.width,T.transform.height)}),T.on("styledata",()=>{this._updateStyleComponents(this.props,{}),HE(T.transform,this._renderTransform)}),T.on("sourcedata",()=>this._updateStyleComponents(this.props,{}));for(const q in QE)T.on(q,this._onPointerEvent);for(const q in Xy)T.on(q,this._onCameraEvent);for(const q in e2)T.on(q,this._onEvent);this._map=T}recycle(){const l=this.map.getContainer().querySelector("[mapboxgl-children]");l==null||l.remove(),Pu.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){const i=this._map;!this._inRender&&i.style&&(i._frame&&(i._frame.cancel(),i._frame=null),i._render())}_createShadowTransform(i){const l=w3(i.transform);i.painter.transform=l,this._renderTransform=l}_updateSize(i){const{viewState:l}=i;if(l){const h=this._map;if(l.width!==h.transform.width||l.height!==h.transform.height)return h.resize(),!0}return!1}_updateViewState(i,l){if(this._internalUpdate)return!1;const h=this._map,g=this._renderTransform,{zoom:x,pitch:T,bearing:s}=g,M=h.isMoving();M&&(g.cameraElevationReference="sea");const F=KE(g,{...XE(h.transform),...i});if(M&&(g.cameraElevationReference="ground"),F&&l){const q=this._deferredEvents;q.move=!0,q.zoom||(q.zoom=x!==g.zoom),q.rotate||(q.rotate=s!==g.bearing),q.pitch||(q.pitch=T!==g.pitch)}return M||KE(h.transform,i),F}_updateSettings(i,l){const h=this._map;let g=!1;for(const x of E3)if(x in i&&!Ps(i[x],l[x])){g=!0;const T=h[`set${x[0].toUpperCase()}${x.slice(1)}`];T==null||T.call(h,i[x])}return g}_updateStyle(i,l){if(i.cursor!==l.cursor&&(this._map.getCanvas().style.cursor=i.cursor||""),i.mapStyle!==l.mapStyle){const{mapStyle:h=JE,styleDiffing:g=!0}=i,x={diff:g};return"localIdeographFontFamily"in i&&(x.localIdeographFontFamily=i.localIdeographFontFamily),this._map.setStyle(YE(h),x),!0}return!1}_updateStyleComponents(i,l){const h=this._map;let g=!1;return h.isStyleLoaded()&&("light"in i&&h.setLight&&!Ps(i.light,l.light)&&(g=!0,h.setLight(i.light)),"fog"in i&&h.setFog&&!Ps(i.fog,l.fog)&&(g=!0,h.setFog(i.fog)),"terrain"in i&&h.setTerrain&&!Ps(i.terrain,l.terrain)&&(!i.terrain||h.getSource(i.terrain.source))&&(g=!0,h.setTerrain(i.terrain))),g}_updateHandlers(i,l){var h,g;const x=this._map;let T=!1;for(const s of T3){const M=(h=i[s])!==null&&h!==void 0?h:!0,F=(g=l[s])!==null&&g!==void 0?g:!0;Ps(M,F)||(T=!0,M?x[s].enable(M):x[s].disable())}return T}_queryRenderedFeatures(i){const l=this._map,h=l.transform,{interactiveLayerIds:g=[]}=this.props;try{return l.transform=this._renderTransform,l.queryRenderedFeatures(i,{layers:g.filter(l.getLayer.bind(l))})}catch{return[]}finally{l.transform=h}}_updateHover(i){var l;const{props:h}=this;if(h.interactiveLayerIds&&(h.onMouseMove||h.onMouseEnter||h.onMouseLeave)){const x=i.type,T=((l=this._hoveredFeatures)===null||l===void 0?void 0:l.length)>0,s=this._queryRenderedFeatures(i.point),M=s.length>0;!M&&T&&(i.type="mouseleave",this._onPointerEvent(i)),this._hoveredFeatures=s,M&&!T&&(i.type="mouseenter",this._onPointerEvent(i)),i.type=x}else this._hoveredFeatures=null}_fireEvent(i,l,h){const g=this._map,x=g.transform,T=typeof l=="string"?l:l.type;return T==="move"&&this._updateViewState(this.props,!1),T in Xy&&(typeof l=="object"&&(l.viewState=XE(x)),this._map.isMoving())?(g.transform=this._renderTransform,i.call(g,l,h),g.transform=x,g):(i.call(g,l,h),g)}_onBeforeRepaint(){const i=this._map;this._internalUpdate=!0;for(const h in this._deferredEvents)this._deferredEvents[h]&&i.fire(h);this._internalUpdate=!1;const l=this._map.transform;i.transform=this._renderTransform,this._onAfterRepaint=()=>{HE(this._renderTransform,l),i.transform=l}}}Pu.savedMaps=[];function S3(){let t=null;if(typeof location<"u"){const i=/access_token=([^&\/]*)/.exec(location.search);t=i&&i[1]}try{t=t||void 0}catch{}try{t=t||{}.REACT_APP_MAPBOX_ACCESS_TOKEN}catch{}return t}const A3=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function C3(t){if(!t)return null;const i=t.map,l={getMap:()=>i,getCenter:()=>t.transform.center,getZoom:()=>t.transform.zoom,getBearing:()=>t.transform.bearing,getPitch:()=>t.transform.pitch,getPadding:()=>t.transform.padding,getBounds:()=>t.transform.getBounds(),project:h=>{const g=i.transform;i.transform=t.transform;const x=i.project(h);return i.transform=g,x},unproject:h=>{const g=i.transform;i.transform=t.transform;const x=i.unproject(h);return i.transform=g,x},queryTerrainElevation:(h,g)=>{const x=i.transform;i.transform=t.transform;const T=i.queryTerrainElevation(h,g);return i.transform=x,T},queryRenderedFeatures:(h,g)=>{const x=i.transform;i.transform=t.transform;const T=i.queryRenderedFeatures(h,g);return i.transform=x,T}};for(const h of I3(i))!(h in l)&&!A3.includes(h)&&(l[h]=i[h].bind(i));return l}function I3(t){const i=new Set;let l=t;for(;l;){for(const h of Object.getOwnPropertyNames(l))h[0]!=="_"&&typeof t[h]=="function"&&h!=="fire"&&h!=="setEventedParent"&&i.add(h);l=Object.getPrototypeOf(l)}return Array.from(i)}const M3=typeof document<"u"?ft.useLayoutEffect:ft.useEffect,k3=["baseApiUrl","maxParallelImageRequests","workerClass","workerCount","workerUrl"];function P3(t,i){for(const h of k3)h in i&&(t[h]=i[h]);const{RTLTextPlugin:l="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js"}=i;l&&t.getRTLTextPluginStatus&&t.getRTLTextPluginStatus()==="unavailable"&&t.setRTLTextPlugin(l,h=>{h&&console.error(h)},!0)}const Rg=ft.createContext(null);function z3(t,i,l){const h=ft.useContext(v3),[g,x]=ft.useState(null),T=ft.useRef(),{current:s}=ft.useRef({mapLib:null,map:null});ft.useEffect(()=>{const q=t.mapLib;let X=!0,oe;return Promise.resolve(q||l).then(Ae=>{if(!X)return;if(!Ae)throw new Error("Invalid mapLib");const fe="Map"in Ae?Ae:Ae.default;if(!fe.Map)throw new Error("Invalid mapLib");if(P3(fe,t),!fe.supported||fe.supported(t))t.reuseMaps&&(oe=Pu.reuse(t,T.current)),oe||(oe=new Pu(fe.Map,t,T.current)),s.map=C3(oe),s.mapLib=fe,x(oe),h==null||h.onMapMount(s.map,t.id);else throw new Error("Map is not supported by this browser")}).catch(Ae=>{const{onError:fe}=t;fe?fe({type:"error",target:null,originalEvent:null,error:Ae}):console.error(Ae)}),()=>{X=!1,oe&&(h==null||h.onMapUnmount(t.id),t.reuseMaps?oe.recycle():oe.destroy())}},[]),M3(()=>{g&&g.setProps(t)}),ft.useImperativeHandle(i,()=>s.map,[g]);const M=ft.useMemo(()=>({position:"relative",width:"100%",height:"100%",...t.style}),[t.style]),F={height:"100%"};return ft.createElement("div",{id:t.id,ref:T,style:M},g&&ft.createElement(Rg.Provider,{value:s},ft.createElement("div",{"mapboxgl-children":"",style:F},t.children)))}const L3=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function ec(t,i){if(!t||!i)return;const l=t.style;for(const h in i){const g=i[h];Number.isFinite(g)&&!L3.test(h)?l[h]=`${g}px`:l[h]=g}}function R3(t,i){const{map:l,mapLib:h}=ft.useContext(Rg),g=ft.useRef({props:t});g.current.props=t;const x=ft.useMemo(()=>{let ke=!1;ft.Children.forEach(t.children,re=>{re&&(ke=!0)});const ze={...t,element:ke?document.createElement("div"):null},ue=new h.Marker(ze);return ue.setLngLat([t.longitude,t.latitude]),ue.getElement().addEventListener("click",re=>{var le,De;(De=(le=g.current.props).onClick)===null||De===void 0||De.call(le,{type:"click",target:ue,originalEvent:re})}),ue.on("dragstart",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDragStart)===null||De===void 0||De.call(le,je)}),ue.on("drag",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDrag)===null||De===void 0||De.call(le,je)}),ue.on("dragend",re=>{var le,De;const je=re;je.lngLat=x.getLngLat(),(De=(le=g.current.props).onDragEnd)===null||De===void 0||De.call(le,je)}),ue},[]);ft.useEffect(()=>(x.addTo(l.getMap()),()=>{x.remove()}),[]);const{longitude:T,latitude:s,offset:M,style:F,draggable:q=!1,popup:X=null,rotation:oe=0,rotationAlignment:Ae="auto",pitchAlignment:fe="auto"}=t;return ft.useEffect(()=>{ec(x.getElement(),F)},[F]),ft.useImperativeHandle(i,()=>x,[]),(x.getLngLat().lng!==T||x.getLngLat().lat!==s)&&x.setLngLat([T,s]),M&&!x3(x.getOffset(),M)&&x.setOffset(M),x.isDraggable()!==q&&x.setDraggable(q),x.getRotation()!==oe&&x.setRotation(oe),x.getRotationAlignment()!==Ae&&x.setRotationAlignment(Ae),x.getPitchAlignment()!==fe&&x.setPitchAlignment(fe),x.getPopup()!==X&&x.setPopup(X),tx.createPortal(t.children,x.getElement())}const D3=ft.memo(ft.forwardRef(R3));function t2(t){return new Set(t?t.trim().split(/\s+/):[])}function O3(t,i){const{map:l,mapLib:h}=ft.useContext(Rg),g=ft.useMemo(()=>document.createElement("div"),[]),x=ft.useRef({props:t});x.current.props=t;const T=ft.useMemo(()=>{const s={...t},M=new h.Popup(s);return M.setLngLat([t.longitude,t.latitude]),M.once("open",F=>{var q,X;(X=(q=x.current.props).onOpen)===null||X===void 0||X.call(q,F)}),M},[]);if(ft.useEffect(()=>{const s=M=>{var F,q;(q=(F=x.current.props).onClose)===null||q===void 0||q.call(F,M)};return T.on("close",s),T.setDOMContent(g).addTo(l.getMap()),()=>{T.off("close",s),T.isOpen()&&T.remove()}},[]),ft.useEffect(()=>{ec(T.getElement(),t.style)},[t.style]),ft.useImperativeHandle(i,()=>T,[]),T.isOpen()&&((T.getLngLat().lng!==t.longitude||T.getLngLat().lat!==t.latitude)&&T.setLngLat([t.longitude,t.latitude]),t.offset&&!Ps(T.options.offset,t.offset)&&T.setOffset(t.offset),(T.options.anchor!==t.anchor||T.options.maxWidth!==t.maxWidth)&&(T.options.anchor=t.anchor,T.setMaxWidth(t.maxWidth)),T.options.className!==t.className)){const s=t2(T.options.className),M=t2(t.className);for(const F of s)M.has(F)||T.removeClassName(F);for(const F of M)s.has(F)||T.addClassName(F);T.options.className=t.className}return tx.createPortal(t.children,g)}ft.memo(ft.forwardRef(O3));function Nu(t,i,l,h){const g=ft.useContext(Rg),x=ft.useMemo(()=>t(g),[]);return ft.useEffect(()=>{const T=h||l||i,s=typeof i=="function"&&typeof l=="function"?i:null,M=typeof l=="function"?l:typeof i=="function"?i:null,{map:F}=g;return F.hasControl(x)||(F.addControl(x,T==null?void 0:T.position),s&&s(g)),()=>{M&&M(g),F.hasControl(x)&&F.removeControl(x)}},[]),x}function B3(t){const i=Nu(({mapLib:l})=>new l.AttributionControl(t),{position:t.position});return ft.useEffect(()=>{ec(i._container,t.style)},[t.style]),null}ft.memo(B3);function F3(t){const i=Nu(({mapLib:l})=>new l.FullscreenControl({container:t.containerId&&document.getElementById(t.containerId)}),{position:t.position});return ft.useEffect(()=>{ec(i._controlContainer,t.style)},[t.style]),null}ft.memo(F3);function N3(t,i){const l=ft.useRef({props:t}),h=Nu(({mapLib:g})=>{const x=new g.GeolocateControl(t),T=x._setupUI;return x._setupUI=s=>{x._container.hasChildNodes()||T(s)},x.on("geolocate",s=>{var M,F;(F=(M=l.current.props).onGeolocate)===null||F===void 0||F.call(M,s)}),x.on("error",s=>{var M,F;(F=(M=l.current.props).onError)===null||F===void 0||F.call(M,s)}),x.on("outofmaxbounds",s=>{var M,F;(F=(M=l.current.props).onOutOfMaxBounds)===null||F===void 0||F.call(M,s)}),x.on("trackuserlocationstart",s=>{var M,F;(F=(M=l.current.props).onTrackUserLocationStart)===null||F===void 0||F.call(M,s)}),x.on("trackuserlocationend",s=>{var M,F;(F=(M=l.current.props).onTrackUserLocationEnd)===null||F===void 0||F.call(M,s)}),x},{position:t.position});return l.current.props=t,ft.useImperativeHandle(i,()=>h,[]),ft.useEffect(()=>{ec(h._container,t.style)},[t.style]),null}const U3=ft.memo(ft.forwardRef(N3));function j3(t){const i=Nu(({mapLib:l})=>new l.NavigationControl(t),{position:t.position});return ft.useEffect(()=>{ec(i._container,t.style)},[t.style]),null}const V3=ft.memo(j3);function G3(t){const i=Nu(({mapLib:x})=>new x.ScaleControl(t),{position:t.position}),l=ft.useRef(t),h=l.current;l.current=t;const{style:g}=t;return t.maxWidth!==void 0&&t.maxWidth!==h.maxWidth&&(i.options.maxWidth=t.maxWidth),t.unit!==void 0&&t.unit!==h.unit&&i.setUnit(t.unit),ft.useEffect(()=>{ec(i._container,g)},[g]),null}const $3=ft.memo(G3),q3=y3(()=>Promise.resolve().then(()=>E4),void 0),Z3=(()=>ft.forwardRef(function(i,l){return z3(i,l,q3)}))(),yA=D3,W3=V3,H3=U3,X3=$3;var Uu=Y3,K3=Object.prototype.hasOwnProperty;function Y3(){for(var t={},i=0;i-1};Zi.prototype.value=function(t){if(this.selected=t,this.el.value=this.getItemValue(t),document.createEvent){var i=document.createEvent("HTMLEvents");i.initEvent("change",!0,!1),this.el.dispatchEvent(i)}else this.el.fireEvent("onchange")};Zi.prototype.getCandidates=function(t){var i={pre:"",post:"",extract:(function(h){return this.getItemValue(h)}).bind(this)},l;this.options.filter?(l=t5.filter(this.query,this.data,i),l=l.map((function(h){return{original:h.original,string:this.render(h.original,h.string)}}).bind(this))):l=this.data.map((function(h){var g=this.render(h);return{original:h,string:g}}).bind(this)),t(l)};Zi.prototype.getItemValue=function(t){return t};Zi.prototype.render=function(t,i){if(i)return i;for(var l=t.original?this.getItemValue(t.original):this.getItemValue(t),h=this.normalize(l),g=h.lastIndexOf(this.query);g>-1;){var x=g+this.query.length;l=l.slice(0,g)+""+l.slice(g,x)+""+l.slice(x),g=h.slice(0,g).lastIndexOf(this.query)}return l};Zi.prototype.renderError=function(t){this.list.drawError(t)};var i5=Zi,xA=i5,r5=xA;typeof window<"u"&&(window.Suggestions=xA);var o5="Expected a function",n2=0/0,s5="[object Symbol]",a5=/^\s+|\s+$/g,l5=/^[-+]0x[0-9a-f]+$/i,c5=/^0b[01]+$/i,u5=/^0o[0-7]+$/i,h5=parseInt,d5=typeof Co=="object"&&Co&&Co.Object===Object&&Co,p5=typeof self=="object"&&self&&self.Object===Object&&self,f5=d5||p5||Function("return this")(),m5=Object.prototype,g5=m5.toString,_5=Math.max,y5=Math.min,Ky=function(){return f5.Date.now()};function v5(t,i,l){var h,g,x,T,s,M,F=0,q=!1,X=!1,oe=!0;if(typeof t!="function")throw new TypeError(o5);i=i2(i)||0,ov(l)&&(q=!!l.leading,X="maxWait"in l,x=X?_5(i2(l.maxWait)||0,i):x,oe="trailing"in l?!!l.trailing:oe);function Ae(tt){var lt=h,ut=g;return h=g=void 0,F=tt,T=t.apply(ut,lt),T}function fe(tt){return F=tt,s=setTimeout(ue,i),q?Ae(tt):T}function ke(tt){var lt=tt-M,ut=tt-F,Ve=i-lt;return X?y5(Ve,x-ut):Ve}function ze(tt){var lt=tt-M,ut=tt-F;return M===void 0||lt>=i||lt<0||X&&ut>=x}function ue(){var tt=Ky();if(ze(tt))return re(tt);s=setTimeout(ue,ke(tt))}function re(tt){return s=void 0,oe&&h?Ae(tt):(h=g=void 0,T)}function le(){s!==void 0&&clearTimeout(s),F=0,h=M=g=s=void 0}function De(){return s===void 0?T:re(Ky())}function je(){var tt=Ky(),lt=ze(tt);if(h=arguments,g=this,M=tt,lt){if(s===void 0)return fe(M);if(X)return s=setTimeout(ue,i),Ae(M)}return s===void 0&&(s=setTimeout(ue,i)),T}return je.cancel=le,je.flush=De,je}function ov(t){var i=typeof t;return!!t&&(i=="object"||i=="function")}function x5(t){return!!t&&typeof t=="object"}function w5(t){return typeof t=="symbol"||x5(t)&&g5.call(t)==s5}function i2(t){if(typeof t=="number")return t;if(w5(t))return n2;if(ov(t)){var i=typeof t.valueOf=="function"?t.valueOf():t;t=ov(i)?i+"":i}if(typeof t!="string")return t===0?t:+t;t=t.replace(a5,"");var l=c5.test(t);return l||u5.test(t)?h5(t.slice(2),l?2:8):l5.test(t)?n2:+t}var b5=v5,mx={exports:{}},bu=typeof Reflect=="object"?Reflect:null,r2=bu&&typeof bu.apply=="function"?bu.apply:function(i,l,h){return Function.prototype.apply.call(i,l,h)},km;bu&&typeof bu.ownKeys=="function"?km=bu.ownKeys:Object.getOwnPropertySymbols?km=function(i){return Object.getOwnPropertyNames(i).concat(Object.getOwnPropertySymbols(i))}:km=function(i){return Object.getOwnPropertyNames(i)};function E5(t){console&&console.warn&&console.warn(t)}var wA=Number.isNaN||function(i){return i!==i};function Sn(){Sn.init.call(this)}mx.exports=Sn;mx.exports.once=C5;Sn.EventEmitter=Sn;Sn.prototype._events=void 0;Sn.prototype._eventsCount=0;Sn.prototype._maxListeners=void 0;var o2=10;function Dg(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(Sn,"defaultMaxListeners",{enumerable:!0,get:function(){return o2},set:function(t){if(typeof t!="number"||t<0||wA(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");o2=t}});Sn.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Sn.prototype.setMaxListeners=function(i){if(typeof i!="number"||i<0||wA(i))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+i+".");return this._maxListeners=i,this};function bA(t){return t._maxListeners===void 0?Sn.defaultMaxListeners:t._maxListeners}Sn.prototype.getMaxListeners=function(){return bA(this)};Sn.prototype.emit=function(i){for(var l=[],h=1;h0&&(T=l[0]),T instanceof Error)throw T;var s=new Error("Unhandled error."+(T?" ("+T.message+")":""));throw s.context=T,s}var M=x[i];if(M===void 0)return!1;if(typeof M=="function")r2(M,this,l);else for(var F=M.length,q=CA(M,F),h=0;h0&&T.length>g&&!T.warned){T.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+T.length+" "+String(i)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=i,s.count=T.length,E5(s)}return t}Sn.prototype.addListener=function(i,l){return EA(this,i,l,!1)};Sn.prototype.on=Sn.prototype.addListener;Sn.prototype.prependListener=function(i,l){return EA(this,i,l,!0)};function T5(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function TA(t,i,l){var h={fired:!1,wrapFn:void 0,target:t,type:i,listener:l},g=T5.bind(h);return g.listener=l,h.wrapFn=g,g}Sn.prototype.once=function(i,l){return Dg(l),this.on(i,TA(this,i,l)),this};Sn.prototype.prependOnceListener=function(i,l){return Dg(l),this.prependListener(i,TA(this,i,l)),this};Sn.prototype.removeListener=function(i,l){var h,g,x,T,s;if(Dg(l),g=this._events,g===void 0)return this;if(h=g[i],h===void 0)return this;if(h===l||h.listener===l)--this._eventsCount===0?this._events=Object.create(null):(delete g[i],g.removeListener&&this.emit("removeListener",i,h.listener||l));else if(typeof h!="function"){for(x=-1,T=h.length-1;T>=0;T--)if(h[T]===l||h[T].listener===l){s=h[T].listener,x=T;break}if(x<0)return this;x===0?h.shift():S5(h,x),h.length===1&&(g[i]=h[0]),g.removeListener!==void 0&&this.emit("removeListener",i,s||l)}return this};Sn.prototype.off=Sn.prototype.removeListener;Sn.prototype.removeAllListeners=function(i){var l,h,g;if(h=this._events,h===void 0)return this;if(h.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):h[i]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete h[i]),this;if(arguments.length===0){var x=Object.keys(h),T;for(g=0;g=0;g--)this.removeListener(i,l[g]);return this};function SA(t,i,l){var h=t._events;if(h===void 0)return[];var g=h[i];return g===void 0?[]:typeof g=="function"?l?[g.listener||g]:[g]:l?A5(g):CA(g,g.length)}Sn.prototype.listeners=function(i){return SA(this,i,!0)};Sn.prototype.rawListeners=function(i){return SA(this,i,!1)};Sn.listenerCount=function(t,i){return typeof t.listenerCount=="function"?t.listenerCount(i):AA.call(t,i)};Sn.prototype.listenerCount=AA;function AA(t){var i=this._events;if(i!==void 0){var l=i[t];if(typeof l=="function")return 1;if(l!==void 0)return l.length}return 0}Sn.prototype.eventNames=function(){return this._eventsCount>0?km(this._events):[]};function CA(t,i){for(var l=new Array(i),h=0;h]*)>(.*)/);if(!i)return null;var l=i[1],h=i[2].split(";"),g=null,x=h.reduce(function(T,s){var M=P5(s);return M?M.key==="rel"?(g||(g=M.value),T):(T[M.key]=M.value,T):T},{});return g?{url:l,rel:g,params:x}:null}function L5(t){return t?t.split(/,\s*=400){var T=new a2({request:t,body:i.response,statusCode:i.status});h(T);return}l(i)};var x=t.body;typeof x=="string"?i.send(x):x?i.send(JSON.stringify(x)):g?i.send(g):i.send(),ag[t.id]=i}).then(function(l){return q5(t,l)})}function kA(t,i){var l=t.url(i),h=new window.XMLHttpRequest;return h.open(t.method,l),Object.keys(t.headers).forEach(function(g){h.setRequestHeader(g,t.headers[g])}),h}function Z5(t){return Promise.resolve().then(function(){var i=kA(t,t.client.accessToken);return MA(t,i)})}var W5={browserAbort:$5,sendRequestXhr:MA,browserSend:Z5,createRequestXhr:kA},lg={exports:{}};/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */lg.exports;(function(t,i){(function(l){var h=i,g=t&&t.exports==h&&t,x=typeof Co=="object"&&Co;(x.global===x||x.window===x)&&(l=x);var T=function(fe){this.message=fe};T.prototype=new Error,T.prototype.name="InvalidCharacterError";var s=function(fe){throw new T(fe)},M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",F=/[\t\n\f\r ]/g,q=function(fe){fe=String(fe).replace(F,"");var ke=fe.length;ke%4==0&&(fe=fe.replace(/==?$/,""),ke=fe.length),(ke%4==1||/[^+a-zA-Z0-9/]/.test(fe))&&s("Invalid character: the string to be decoded is not correctly encoded.");for(var ze=0,ue,re,le="",De=-1;++De>(-2*ze&6)));return le},X=function(fe){fe=String(fe),/[^\0-\xFF]/.test(fe)&&s("The string to be encoded contains characters outside of the Latin1 range.");for(var ke=fe.length%3,ze="",ue=-1,re,le,De,je,tt=fe.length-ke;++ue>18&63)+M.charAt(je>>12&63)+M.charAt(je>>6&63)+M.charAt(je&63);return ke==2?(re=fe.charCodeAt(ue)<<8,le=fe.charCodeAt(++ue),je=re+le,ze+=M.charAt(je>>10)+M.charAt(je>>4&63)+M.charAt(je<<2&63)+"="):ke==1&&(je=fe.charCodeAt(ue),ze+=M.charAt(je>>2)+M.charAt(je<<4&63)+"=="),ze},oe={encode:X,decode:q,version:"0.1.0"};if(h&&!h.nodeType)if(g)g.exports=oe;else for(var Ae in oe)oe.hasOwnProperty(Ae)&&(h[Ae]=oe[Ae]);else l.base64=oe})(Co)})(lg,lg.exports);var H5=lg.exports,X5=H5,Jy={};function K5(t){if(Jy[t])return Jy[t];var i=t.split("."),l=i[0],h=i[1];if(!h)throw new Error("Invalid token");var g=Y5(h),x={usage:l,user:g.u};return Ol(g,"a")&&(x.authorization=g.a),Ol(g,"exp")&&(x.expires=g.exp*1e3),Ol(g,"iat")&&(x.created=g.iat*1e3),Ol(g,"scopes")&&(x.scopes=g.scopes),Ol(g,"client")&&(x.client=g.client),Ol(g,"ll")&&(x.lastLogin=g.ll),Ol(g,"iu")&&(x.impersonator=g.iu),Jy[t]=x,x}function Y5(t){try{return JSON.parse(X5.decode(t))}catch{throw new Error("Invalid token")}}function Ol(t,i){return Object.prototype.hasOwnProperty.call(t,i)}var PA=K5,zA={exports:{}};(function(t){var i=Object.prototype.hasOwnProperty,l="~";function h(){}Object.create&&(h.prototype=Object.create(null),new h().__proto__||(l=!1));function g(M,F,q){this.fn=M,this.context=F,this.once=q||!1}function x(M,F,q,X,oe){if(typeof q!="function")throw new TypeError("The listener must be a function");var Ae=new g(q,X||M,oe),fe=l?l+F:F;return M._events[fe]?M._events[fe].fn?M._events[fe]=[M._events[fe],Ae]:M._events[fe].push(Ae):(M._events[fe]=Ae,M._eventsCount++),M}function T(M,F){--M._eventsCount===0?M._events=new h:delete M._events[F]}function s(){this._events=new h,this._eventsCount=0}s.prototype.eventNames=function(){var F=[],q,X;if(this._eventsCount===0)return F;for(X in q=this._events)i.call(q,X)&&F.push(l?X.slice(1):X);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(q)):F},s.prototype.listeners=function(F){var q=l?l+F:F,X=this._events[q];if(!X)return[];if(X.fn)return[X.fn];for(var oe=0,Ae=X.length,fe=new Array(Ae);oex.length?T:x})}};kn.equal=function(i){return function(h){if(h!==i)return JSON.stringify(i)}};kn.oneOf=function(){var i=Array.isArray(arguments[0])?arguments[0]:Array.prototype.slice.call(arguments),l=i.map(function(h){return kn.equal(h)});return kn.oneOfType.apply(this,l)};kn.range=function(i){var l=i[0],h=i[1];return function(x){var T=ja(kn.number,x);if(T||xh)return"number between "+l+" & "+h+" (inclusive)"}};kn.any=function(){};kn.boolean=function(i){if(typeof i!="boolean")return"boolean"};kn.number=function(i){if(typeof i!="number")return"number"};kn.plainArray=function(i){if(!Array.isArray(i))return"array"};kn.plainObject=function(i){if(!gO(i))return"object"};kn.string=function(i){if(typeof i!="string")return"string"};kn.func=function(i){if(typeof i!="function")return"function"};function ja(t,i){if(!(i==null&&!t.hasOwnProperty("__required"))){var l=t(i);if(l)return Array.isArray(l)?l:[l]}}function yx(t,i){var l=t.length,h=t[l-1],g=t.slice(0,l-1);return g.length===0&&(g=[UA]),i=_O(i,{path:g}),typeof h=="function"?h(i):VA(i,vO(h))}function yO(t){return t.length<2?t[0]:t.length===2?t.join(" or "):t.slice(0,-1).join(", ")+", or "+t.slice(-1)}function vO(t){return"must be "+xO(t)+"."}function xO(t){return/^an? /.test(t)?t:/^[aeiou]/i.test(t)?"an "+t:/^[a-z]/i.test(t)?"a "+t:t}function VA(t,i){var l=GA(t.path),h=t.path.join(".")+" "+i,g=l?"Item at position ":"";return g+h}function GA(t){return typeof t[t.length-1]=="number"||typeof t[0]=="number"}function wO(t){return Object.keys(t||{}).map(function(i){return{key:i,value:t[i]}})}kn.validate=ja;kn.processMessage=yx;var bO=kn,EO=Uu,Eu=bO;function TO(t){if(typeof window<"u")return t instanceof Co.Blob||t instanceof Co.ArrayBuffer?void 0:"Blob or ArrayBuffer";if(!(typeof t=="string"||t.pipe!==void 0))return"Filename or Readable stream"}function SO(t,i){return Eu.assert(Eu.strictShape(t),i)}function AO(t){var i="date";if(typeof t=="boolean")return i;try{var l=new Date(t);if(l.getTime&&isNaN(l.getTime()))return i}catch{return i}}function CO(t){return Eu.tuple(Eu.number,Eu.number)(t)}var IO=EO(Eu,{file:TO,date:AO,coordinates:CO,assertShape:SO});function MO(t,i){var l=function(h,g){return i.indexOf(h)!==-1&&g!==void 0};return typeof i=="function"&&(l=i),Object.keys(t).filter(function(h){return l(h,t[h])}).reduce(function(h,g){return h[g]=t[g],h},{})}var kO=MO;function PO(t,i){return Object.keys(t).reduce(function(l,h){return l[h]=i(h,t[h]),l},{})}var zO=PO,LO=zO;function RO(t){return LO(t,function(i,l){return typeof l=="boolean"?JSON.stringify(l):l})}var DO=RO,OO=OA,BO=NA;function FO(t){return function(i){var l;OO.prototype.isPrototypeOf(i)?l=i:l=BO(i);var h=Object.create(t);return h.client=l,h}}var NO=FO,$A=Uu,tn=IO,cg=kO,qA=DO,UO=NO,vx={},ZA=["country","region","postcode","district","place","locality","neighborhood","address","poi","poi.landmark"];vx.forwardGeocode=function(t){tn.assertShape({query:tn.required(tn.string),mode:tn.oneOf("mapbox.places","mapbox.places-permanent"),countries:tn.arrayOf(tn.string),proximity:tn.oneOf(tn.coordinates,"ip"),types:tn.arrayOf(tn.oneOf(ZA)),autocomplete:tn.boolean,bbox:tn.arrayOf(tn.number),limit:tn.number,language:tn.arrayOf(tn.string),routing:tn.boolean,fuzzyMatch:tn.boolean,worldview:tn.string})(t),t.mode=t.mode||"mapbox.places";var i=qA($A({country:t.countries},cg(t,["proximity","types","autocomplete","bbox","limit","language","routing","fuzzyMatch","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:cg(t,["mode","query"]),query:i})};vx.reverseGeocode=function(t){tn.assertShape({query:tn.required(tn.coordinates),mode:tn.oneOf("mapbox.places","mapbox.places-permanent"),countries:tn.arrayOf(tn.string),types:tn.arrayOf(tn.oneOf(ZA)),bbox:tn.arrayOf(tn.number),limit:tn.number,language:tn.arrayOf(tn.string),reverseMode:tn.oneOf("distance","score"),routing:tn.boolean,worldview:tn.string})(t),t.mode=t.mode||"mapbox.places";var i=qA($A({country:t.countries},cg(t,["country","types","bbox","limit","language","reverseMode","routing","worldview"])));return this.client.createRequest({method:"GET",path:"/geocoding/v5/:mode/:query.json",params:cg(t,["mode","query"]),query:i})};var jO=UO(vx),VO=self.crypto||self.msCrypto,xx="-_",Ba=36;for(;Ba--;)xx+=Ba.toString(36);Ba=36;for(;Ba---10;)xx+=Ba.toString(36).toUpperCase();var GO=function(t){var i="",l=VO.getRandomValues(new Uint8Array(t||21));for(Ba=t||21;Ba--;)i+=xx[l[Ba]&63];return i},$O=GO;function WA(t){this.origin=t.origin||"https://api.mapbox.com",this.endpoint="events/v2",this.access_token=t.accessToken,this.version="0.2.0",this.sessionID=this.generateSessionID(),this.userAgent=this.getUserAgent(),this.options=t,this.send=this.send.bind(this),this.countries=t.countries?t.countries.split(","):null,this.types=t.types?t.types.split(","):null,this.bbox=t.bbox?t.bbox:null,this.language=t.language?t.language.split(","):null,this.limit=t.limit?+t.limit:null,this.locale=navigator.language||null,this.enableEventLogging=this.shouldEnableLogging(t),this.eventQueue=new Array,this.flushInterval=t.flushInterval||1e3,this.maxQueueSize=t.maxQueueSize||100,this.timer=this.flushInterval?setTimeout(this.flush.bind(this),this.flushInterval):null,this.lastSentInput="",this.lastSentIndex=0}WA.prototype={select:function(t,i){var l=this.getSelectedIndex(t,i),h=this.getEventPayload("search.select",i);if(h.resultIndex=l,h.resultPlaceName=t.place_name,h.resultId=t.id,!(l===this.lastSentIndex&&h.queryString===this.lastSentInput||l==-1)&&(this.lastSentIndex=l,this.lastSentInput=h.queryString,!!h.queryString))return this.push(h)},start:function(t){var i=this.getEventPayload("search.start",t);if(i.queryString)return this.push(i)},keyevent:function(t,i){if(t.key&&!(t.metaKey||[9,27,37,39,13,38,40].indexOf(t.keyCode)!==-1)){var l=this.getEventPayload("search.keystroke",i);if(l.lastAction=t.key,!!l.queryString)return this.push(l)}},send:function(t,i){if(!this.enableEventLogging)return i?i():void 0;var l=this.getRequestOptions(t);this.request(l,(function(h){if(h)return this.handleError(h,i);if(i)return i()}).bind(this))},getRequestOptions:function(t){Array.isArray(t)||(t=[t]);var i={method:"POST",host:this.origin,path:this.endpoint+"?access_token="+this.access_token,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)};return i},getEventPayload:function(t,i){var l;i.options.proximity?l=[i.options.proximity.longitude,i.options.proximity.latitude]:l=null;var h=i._map?i._map.getZoom():void 0,g={event:t,created:+new Date,sessionIdentifier:this.sessionID,country:this.countries,userAgent:this.userAgent,language:this.language,bbox:this.bbox,types:this.types,endpoint:"mapbox.places",autocomplete:i.options.autocomplete,fuzzyMatch:i.options.fuzzyMatch,proximity:l,limit:i.options.limit,routing:i.options.routing,worldview:i.options.worldview,mapZoom:h,keyboardLocale:this.locale};return t==="search.select"?g.queryString=i.inputString:t!="search.select"&&i._inputEl?g.queryString=i._inputEl.value:g.queryString=i.inputString,g},request:function(t,i){var l=new XMLHttpRequest;l.onreadystatechange=function(){if(this.readyState==4)return this.status==204?i(null):i(this.statusText)},l.open(t.method,t.host+"/"+t.path,!0);for(var h in t.headers){var g=t.headers[h];l.setRequestHeader(h,g)}l.send(t.body)},handleError:function(t,i){if(i)return i(t)},generateSessionID:function(){return $O()},getUserAgent:function(){return"mapbox-gl-geocoder."+this.version+"."+navigator.userAgent},getSelectedIndex:function(t,i){if(i._typeahead){var l=i._typeahead.data,h=t.id,g=l.map(function(T){return T.id}),x=g.indexOf(h);return x}},shouldEnableLogging:function(t){return!(t.enableEventLogging===!1||t.origin&&t.origin.indexOf("api.mapbox.com")==-1||t.localGeocoder||t.filter)},flush:function(){this.eventQueue.length>0&&(this.send(this.eventQueue),this.eventQueue=new Array),this.timer&&clearTimeout(this.timer),this.flushInterval&&(this.timer=setTimeout(this.flush.bind(this),this.flushInterval))},push:function(t,i){this.eventQueue.push(t),(this.eventQueue.length>=this.maxQueueSize||i)&&this.flush()},remove:function(){this.flush()}};var qO=WA,ZO={de:"Suche",it:"Ricerca",en:"Search",nl:"Zoeken",fr:"Chercher",ca:"Cerca",he:"לחפש",ja:"サーチ",lv:"Meklēt",pt:"Procurar",sr:"Претрага",zh:"搜索",cs:"Vyhledávání",hu:"Keresés",ka:"ძიება",nb:"Søke",sk:"Vyhľadávanie",th:"ค้นหา",fi:"Hae",is:"Leita",ko:"수색",pl:"Szukaj",sl:"Iskanje",fa:"جستجو",ru:"Поиск"},WO={placeholder:ZO},HA={exports:{}};(function(t){(function(i,l,h){t.exports?t.exports=h():i[l]=h()})(Co,"subtag",function(){var i="",l=/^([a-zA-Z]{2,3})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?/;function h(M){return M.match(l)||[]}function g(M){return h(M).filter(function(F,q){return F&&q})}function x(M){return M=h(M),{language:M[1]||i,extlang:M[2]||i,script:M[3]||i,region:M[4]||i}}function T(M,F,q){Object.defineProperty(M,F,{value:q,enumerable:!0})}function s(M,F,q){function X(oe){return h(oe)[M]||i}T(X,"pattern",F),T(x,q,X)}return s(1,/^[a-zA-Z]{2,3}$/,"language"),s(2,/^[a-zA-Z]{3}$/,"extlang"),s(3,/^[a-zA-Z]{4}$/,"script"),s(4,/^[a-zA-Z]{2}$|^[0-9]{3}$/,"region"),T(x,"split",g),x})})(HA);var HO=HA.exports,XO=r5,KO=b5,Nl=Uu,YO=M5.EventEmitter,u2=k5,h2=pO,d2=jO,JO=qO,QO=WO,e4=HO;const ba={FORWARD:0,LOCAL:1,REVERSE:2};function XA(t){this._eventEmitter=new YO,this.options=Nl({},this.options,t),this.inputString="",this.fresh=!0,this.lastSelected=null}XA.prototype={options:{zoom:16,flyTo:!0,trackProximity:!0,minLength:2,reverseGeocode:!1,limit:5,origin:"https://api.mapbox.com",enableEventLogging:!0,marker:!0,mapboxgl:null,collapsed:!1,clearAndBlurOnEsc:!1,clearOnBlur:!1,getItemValue:function(t){return t.place_name},render:function(t){var i=t.place_name.split(",");return'
'+i[0]+'
'+i.splice(1,i.length).join(",")+"
"}},addTo:function(t){function i(l,h){if(!document.body.contains(h))throw new Error("Element provided to #addTo() exists, but is not in the DOM");const g=l.onAdd();h.appendChild(g)}if(t._controlContainer)t.addControl(this);else if(t instanceof HTMLElement)i(this,t);else if(typeof t=="string"){const l=document.querySelectorAll(t);if(l.length===0)throw new Error("Element ",t,"not found.");if(l.length>1)throw new Error("Geocoder can only be added to a single html element");i(this,l[0])}else throw new Error("Error: addTo must be a mapbox-gl-js map, an html element, or a CSS selector query for a single html element")},onAdd:function(t){if(t&&typeof t!="string"&&(this._map=t),this.setLanguage(),this.options.localGeocoderOnly||(this.geocoderService=d2(h2({accessToken:this.options.accessToken,origin:this.options.origin}))),this.options.localGeocoderOnly&&!this.options.localGeocoder)throw new Error("A localGeocoder function must be specified to use localGeocoderOnly mode");this.eventManager=new JO(this.options),this._onChange=this._onChange.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onPaste=this._onPaste.bind(this),this._onBlur=this._onBlur.bind(this),this._showButton=this._showButton.bind(this),this._hideButton=this._hideButton.bind(this),this._onQueryResult=this._onQueryResult.bind(this),this.clear=this.clear.bind(this),this._updateProximity=this._updateProximity.bind(this),this._collapse=this._collapse.bind(this),this._unCollapse=this._unCollapse.bind(this),this._clear=this._clear.bind(this),this._clearOnBlur=this._clearOnBlur.bind(this);var i=this.container=document.createElement("div");i.className="mapboxgl-ctrl-geocoder mapboxgl-ctrl";var l=this.createIcon("search",'');this._inputEl=document.createElement("input"),this._inputEl.type="text",this._inputEl.className="mapboxgl-ctrl-geocoder--input",this.setPlaceholder(),this.options.collapsed&&(this._collapse(),this.container.addEventListener("mouseenter",this._unCollapse),this.container.addEventListener("mouseleave",this._collapse),this._inputEl.addEventListener("focus",this._unCollapse)),(this.options.collapsed||this.options.clearOnBlur)&&this._inputEl.addEventListener("blur",this._onBlur),this._inputEl.addEventListener("keydown",KO(this._onKeyDown,200)),this._inputEl.addEventListener("paste",this._onPaste),this._inputEl.addEventListener("change",this._onChange),this.container.addEventListener("mouseenter",this._showButton),this.container.addEventListener("mouseleave",this._hideButton),this._inputEl.addEventListener("keyup",(function(x){this.eventManager.keyevent(x,this)}).bind(this));var h=document.createElement("div");h.classList.add("mapboxgl-ctrl-geocoder--pin-right"),this._clearEl=document.createElement("button"),this._clearEl.setAttribute("aria-label","Clear"),this._clearEl.addEventListener("click",this.clear),this._clearEl.className="mapboxgl-ctrl-geocoder--button";var g=this.createIcon("close",'');return this._clearEl.appendChild(g),this._loadingEl=this.createIcon("loading",''),h.appendChild(this._clearEl),h.appendChild(this._loadingEl),i.appendChild(l),i.appendChild(this._inputEl),i.appendChild(h),this._typeahead=new XO(this._inputEl,[],{filter:!1,minLength:this.options.minLength,limit:this.options.limit}),this.setRenderFunction(this.options.render),this._typeahead.getItemValue=this.options.getItemValue,this.mapMarker=null,this._handleMarker=this._handleMarker.bind(this),this._map&&(this.options.trackProximity&&(this._updateProximity(),this._map.on("moveend",this._updateProximity)),this._mapboxgl=this.options.mapboxgl,!this._mapboxgl&&this.options.marker&&(console.error("No mapboxgl detected in options. Map markers are disabled. Please set options.mapboxgl."),this.options.marker=!1)),i},createIcon:function(t,i){var l=document.createElementNS("http://www.w3.org/2000/svg","svg");if(l.setAttribute("class","mapboxgl-ctrl-geocoder--icon mapboxgl-ctrl-geocoder--icon-"+t),l.setAttribute("viewBox","0 0 18 18"),l.setAttribute("xml:space","preserve"),l.setAttribute("width",18),l.setAttribute("height",18),"innerHTML"in l)l.innerHTML=i;else{var h=document.createElement("div");h.innerHTML=""+i.valueOf().toString()+"";var g=h.firstChild,x=g.firstChild;l.appendChild(x)}return l},onRemove:function(){return this.container.parentNode.removeChild(this.container),this.options.trackProximity&&this._map&&this._map.off("moveend",this._updateProximity),this._removeMarker(),this._map=null,this},_onPaste:function(t){var i=(t.clipboardData||window.clipboardData).getData("text");i.length>=this.options.minLength&&this._geocode(i)},_onKeyDown:function(t){var i=27,l=9;if(t.keyCode===i&&this.options.clearAndBlurOnEsc)return this._clear(t),this._inputEl.blur();var h=t.target&&t.target.shadowRoot?t.target.shadowRoot.activeElement:t.target,g=h?h.value:"";if(!g)return this.fresh=!0,t.keyCode!==l&&this.clear(t),this._clearEl.style.display="none";t.metaKey||[l,i,37,39,13,38,40].indexOf(t.keyCode)!==-1||h.value.length>=this.options.minLength&&this._geocode(h.value)},_showButton:function(){this._typeahead.selected&&(this._clearEl.style.display="block")},_hideButton:function(){this._typeahead.selected&&(this._clearEl.style.display="none")},_onBlur:function(t){this.options.clearOnBlur&&this._clearOnBlur(t),this.options.collapsed&&this._collapse()},_onChange:function(){var t=this._typeahead.selected;if(t&&JSON.stringify(t)!==this.lastSelected){if(this._clearEl.style.display="none",this.options.flyTo){var i;if(t.properties&&u2[t.properties.short_code])i=Nl({},this.options.flyTo),this._map&&this._map.fitBounds(u2[t.properties.short_code].bbox,i);else if(t.bbox){var l=t.bbox;i=Nl({},this.options.flyTo),this._map&&this._map.fitBounds([[l[0],l[1]],[l[2],l[3]]],i)}else{var h={zoom:this.options.zoom};i=Nl({},h,this.options.flyTo),t.center?i.center=t.center:t.geometry&&t.geometry.type&&t.geometry.type==="Point"&&t.geometry.coordinates&&(i.center=t.geometry.coordinates),this._map&&this._map.flyTo(i)}}this.options.marker&&this._mapboxgl&&this._handleMarker(t),this._inputEl.focus(),this._inputEl.scrollLeft=0,this._inputEl.setSelectionRange(0,0),this.lastSelected=JSON.stringify(t),this._eventEmitter.emit("result",{result:t}),this.eventManager.select(t,this)}},_requestType:function(t,i){var l;const h=/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)[ ]*$/;return t.localGeocoderOnly?l=ba.LOCAL:t.reverseGeocode&&h.test(i)?l=ba.REVERSE:l=ba.FORWARD,l},_setupConfig:function(t,i){const l=["bbox","limit","proximity","countries","types","language","reverseMode","mode","autocomplete","fuzzyMatch","routing","worldview"],h=/[\s,]+/;var g=this,x=l.reduce(function(s,M){if(g.options[M]===void 0||g.options[M]===null)return s;["countries","types","language"].indexOf(M)>-1?s[M]=g.options[M].split(h):s[M]=g.options[M];const F=typeof g.options[M].longitude=="number"&&typeof g.options[M].latitude=="number";if(M==="proximity"&&F){const q=g.options[M].longitude,X=g.options[M].latitude;s[M]=[q,X]}return s},{});switch(t){case ba.REVERSE:{var T=i.split(h).map(function(s){return parseFloat(s,10)}).reverse();x.types&&x.types[0],x=Nl(x,{query:T,limit:1}),["proximity","autocomplete","fuzzyMatch","bbox"].forEach(function(s){s in x&&delete x[s]})}break;case ba.FORWARD:/^[ ]*(-?\d+\.?\d*)[, ]+(-?\d+\.?\d*)*[ ]*$/.test(i)&&(i=i.replace(/,/g," ")),x=Nl(x,{query:i});break}return x},_geocode:function(t){this.inputString=t,this._loadingEl.style.display="block",this._eventEmitter.emit("loading",{query:t});const i=this._requestType(this.options,t),l=this._setupConfig(i,t);var h;switch(i){case ba.LOCAL:h=Promise.resolve();break;case ba.FORWARD:h=this.geocoderService.forwardGeocode(l).send();break;case ba.REVERSE:h=this.geocoderService.reverseGeocode(l).send();break}var g=this.options.localGeocoder?this.options.localGeocoder(t)||[]:[],x=[],T=null;return h.catch((function(s){T=s}).bind(this)).then((function(s){this._loadingEl.style.display="none";var M={};return s?s.statusCode=="200"&&(M=s.body,M.request=s.request,M.headers=s.headers):M={type:"FeatureCollection",features:[]},M.config=l,this.fresh&&(this.eventManager.start(this),this.fresh=!1),M.features=M.features?g.concat(M.features):g,this.options.externalGeocoder?(x=this.options.externalGeocoder(t,M.features)||[],x.then(function(F){return M.features=M.features?F.concat(M.features):F,M},function(){return M})):M}).bind(this)).then((function(s){if(T)throw T;this.options.filter&&s.features.length&&(s.features=s.features.filter(this.options.filter)),s.features.length?(this._clearEl.style.display="block",this._eventEmitter.emit("results",s),this._typeahead.update(s.features)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderNoResults(),this._eventEmitter.emit("results",s))}).bind(this)).catch((function(s){this._loadingEl.style.display="none",g.length&&this.options.localGeocoder||x.length&&this.options.externalGeocoder?(this._clearEl.style.display="block",this._typeahead.update(g)):(this._clearEl.style.display="none",this._typeahead.selected=null,this._renderError()),this._eventEmitter.emit("results",{features:g}),this._eventEmitter.emit("error",{error:s})}).bind(this)),h},_clear:function(t){t&&t.preventDefault(),this._inputEl.value="",this._typeahead.selected=null,this._typeahead.clear(),this._onChange(),this._clearEl.style.display="none",this._removeMarker(),this.lastSelected=null,this._eventEmitter.emit("clear"),this.fresh=!0},clear:function(t){this._clear(t),this._inputEl.focus()},_clearOnBlur:function(t){var i=this;t.relatedTarget&&i._clear(t)},_onQueryResult:function(t){var i=t.body;if(i.features.length){var l=i.features[0];this._typeahead.selected=l,this._inputEl.value=l.place_name,this._onChange()}},_updateProximity:function(){if(this._map)if(this._map.getZoom()>9){var t=this._map.getCenter().wrap();this.setProximity({longitude:t.lng,latitude:t.lat})}else this.setProximity(null)},_collapse:function(){!this._inputEl.value&&this._inputEl!==document.activeElement&&this.container.classList.add("mapboxgl-ctrl-geocoder--collapsed")},_unCollapse:function(){this.container.classList.remove("mapboxgl-ctrl-geocoder--collapsed")},query:function(t){return this._geocode(t).then(this._onQueryResult),this},_renderError:function(){var t="
There was an error reaching the server
";this._renderMessage(t)},_renderNoResults:function(){var t="
No results found
";this._renderMessage(t)},_renderMessage:function(t){this._typeahead.update([]),this._typeahead.selected=null,this._typeahead.clear(),this._typeahead.renderError(t)},_getPlaceholderText:function(){if(this.options.placeholder)return this.options.placeholder;if(this.options.language){var t=this.options.language.split(",")[0],i=e4.language(t),l=QO.placeholder[i];if(l)return l}return"Search"},setInput:function(t){return this._inputEl.value=t,this._typeahead.selected=null,this._typeahead.clear(),t.length>=this.options.minLength&&this._geocode(t),this},setProximity:function(t){return this.options.proximity=t,this},getProximity:function(){return this.options.proximity},setRenderFunction:function(t){return t&&typeof t=="function"&&(this._typeahead.render=t),this},getRenderFunction:function(){return this._typeahead.render},setLanguage:function(t){var i=navigator.language||navigator.userLanguage||navigator.browserLanguage;return this.options.language=t||this.options.language||i,this},getLanguage:function(){return this.options.language},getZoom:function(){return this.options.zoom},setZoom:function(t){return this.options.zoom=t,this},getFlyTo:function(){return this.options.flyTo},setFlyTo:function(t){return this.options.flyTo=t,this},getPlaceholder:function(){return this.options.placeholder},setPlaceholder:function(t){return this.placeholder=t||this._getPlaceholderText(),this._inputEl.placeholder=this.placeholder,this._inputEl.setAttribute("aria-label",this.placeholder),this},getBbox:function(){return this.options.bbox},setBbox:function(t){return this.options.bbox=t,this},getCountries:function(){return this.options.countries},setCountries:function(t){return this.options.countries=t,this},getTypes:function(){return this.options.types},setTypes:function(t){return this.options.types=t,this},getMinLength:function(){return this.options.minLength},setMinLength:function(t){return this.options.minLength=t,this._typeahead&&(this._typeahead.options.minLength=t),this},getLimit:function(){return this.options.limit},setLimit:function(t){return this.options.limit=t,this._typeahead&&(this._typeahead.options.limit=t),this},getFilter:function(){return this.options.filter},setFilter:function(t){return this.options.filter=t,this},setOrigin:function(t){return this.options.origin=t,this.geocoderService=d2(h2({accessToken:this.options.accessToken,origin:this.options.origin})),this},getOrigin:function(){return this.options.origin},setAutocomplete:function(t){return this.options.autocomplete=t,this},getAutocomplete:function(){return this.options.autocomplete},setFuzzyMatch:function(t){return this.options.fuzzyMatch=t,this},getFuzzyMatch:function(){return this.options.fuzzyMatch},setRouting:function(t){return this.options.routing=t,this},getRouting:function(){return this.options.routing},setWorldview:function(t){return this.options.worldview=t,this},getWorldview:function(){return this.options.worldview},_handleMarker:function(t){if(this._map){this._removeMarker();var i={color:"#4668F2"},l=Nl({},i,this.options.marker);return this.mapMarker=new this._mapboxgl.Marker(l),t.center?this.mapMarker.setLngLat(t.center).addTo(this._map):t.geometry&&t.geometry.type&&t.geometry.type==="Point"&&t.geometry.coordinates&&this.mapMarker.setLngLat(t.geometry.coordinates).addTo(this._map),this}},_removeMarker:function(){this.mapMarker&&(this.mapMarker.remove(),this.mapMarker=null)},on:function(t,i){return this._eventEmitter.on(t,i),this},off:function(t,i){return this._eventEmitter.removeListener(t,i),this.eventManager.remove(),this}};var t4=XA;const n4=sv(t4);/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */function i4(t){const[i,l]=ft.useState(null),h=Object.assign({},t),g=Nu(()=>{const x=new n4(Object.assign(Object.assign({},h),{marker:i||!1,accessToken:h.mapboxAccessToken}));return h.onLoading&&x.on("loading",h.onLoading),h.onResults&&x.on("results",h.onResults),h.onResult&&x.on("result",T=>{var s;h.onResult!==void 0&&h.onResult(T);const{result:M}=T,F=M&&(M.center||((s=M.geometry)===null||s===void 0?void 0:s.type)==="Point"&&M.geometry.coordinates);if(F&&h.marker){const q=typeof h.marker=="object"?h.marker:{};l(ft.createElement(yA,Object.assign({},q,{longitude:F[0],latitude:F[1]})))}else l(null)}),h.onError&&x.on("error",h.onError),x},{position:h.position});return g.hasOwnProperty("_map")&&g._map&&(g.getProximity()!==h.proximity&&h.proximity!==void 0&&g.setProximity(h.proximity),g.getRenderFunction()!==h.render&&h.render!==void 0&&g.setRenderFunction(h.render),g.getLanguage()!==h.language&&h.language!==void 0&&g.setLanguage(h.language),g.getZoom()!==h.zoom&&h.zoom!==void 0&&g.setZoom(h.zoom),g.getFlyTo()!==h.flyTo&&h.flyTo!==void 0&&g.setFlyTo(h.flyTo),g.getPlaceholder()!==h.placeholder&&h.placeholder!==void 0&&g.setPlaceholder(h.placeholder),g.getCountries()!==h.countries&&h.countries!==void 0&&g.setCountries(h.countries),g.getTypes()!==h.types&&h.types!==void 0&&g.setTypes(h.types),g.getMinLength()!==h.minLength&&h.minLength!==void 0&&g.setMinLength(h.minLength),g.getLimit()!==h.limit&&h.limit!==void 0&&g.setLimit(h.limit),g.getFilter()!==h.filter&&h.filter!==void 0&&g.setFilter(h.filter),g.getOrigin()!==h.origin&&h.origin!==void 0&&g.setOrigin(h.origin),g.getAutocomplete()!==h.autocomplete&&h.autocomplete!==void 0&&g.setAutocomplete(h.autocomplete),g.getFuzzyMatch()!==h.fuzzyMatch&&h.fuzzyMatch!==void 0&&g.setFuzzyMatch(h.fuzzyMatch),g.getRouting()!==h.routing&&h.routing!==void 0&&g.setRouting(h.routing),g.getWorldview()!==h.worldview&&h.worldview!==void 0&&g.setWorldview(h.worldview)),i}/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */var r4=8,o4="LIVE - CORI light basemap - county labels",s4={"mapbox:type":"default","mapbox:origin":"light-v10","mapbox:autocomposite":!0,"mapbox:groups":{"1444855769305.6016":{name:"Tunnels",collapsed:!0},"1444855786460.0557":{name:"Roads",collapsed:!0},"1444855799204.86":{name:"Bridges",collapsed:!0},"1444934295202.7542":{name:"Admin boundaries",collapsed:!1}},"mapbox:sdk-support":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"},"mapbox:uiParadigm":"layers","mapbox:thumb":"data:image/webp;base64,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"},a4=[-72.26808525539167,43.37747275058169],l4=10.873762090608595,c4=0,u4=2,h4={composite:{url:"mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v8,ruralinno.2pv0vm2z,ruralinno.3v9y79ly,ruralinno.5639ssfg,ruralinno.c504wkuy,ruralinno.7stpbs93,ruralinno.cwz2k5qc,ruralinno.1joudpqe",type:"vector"}},d4="mapbox://sprites/ruralinno/cl010e7b7001p15pe3l0306hv/68n9slz9mfbus83an19oqbf32",p4="mapbox://fonts/ruralinno/{fontstack}/{range}.pbf",f4=[{id:"land",type:"background",layout:{},paint:{"background-color":"hsl(55, 0%, 100%)"}},{id:"landcover",type:"fill",source:"composite","source-layer":"landcover",maxzoom:7,layout:{},paint:{"fill-color":"hsl(0, 0%, 100%)","fill-opacity":["interpolate",["exponential",1.5],["zoom"],2,.1,7,0],"fill-antialias":!1}},{id:"national-park",type:"fill",source:"composite","source-layer":"landuse_overlay",minzoom:5,filter:["==",["get","class"],"national_park"],layout:{},paint:{"fill-color":"hsla(150, 6%, 93%, 0.63)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.5]}},{id:"landuse",type:"fill",source:"composite","source-layer":"landuse",minzoom:5,filter:["match",["get","class"],["park","airport","glacier","pitch","sand"],!0,!1],layout:{},paint:{"fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,["match",["get","class"],"glacier",.5,1]],"fill-color":"hsl(150, 0%, 100%)"}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-translate-anchor":"viewport","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-color":"hsl(185, 7%, 73%)"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":"round"},paint:{"line-color":"hsl(187, 9%, 81%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]}},{id:"water",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"#cad2d3","fill-opacity":.5}},{id:"hillshade",type:"fill",source:"composite","source-layer":"hillshade",minzoom:6,layout:{},paint:{"fill-color":["match",["get","class"],"shadow","hsl(0, 0%, 35%)","hsl(0, 0%, 100%)"],"fill-opacity":["interpolate",["linear"],["zoom"],12,["match",["get","level"],[67,56],.02,[89,78],.01,.015],15,0]}},{id:"land-structure-polygon",type:"fill",source:"composite","source-layer":"structure",minzoom:21.1,filter:["all",["==",["geometry-type"],"Polygon"],["==",["get","class"],"land"]],layout:{},paint:{"fill-color":"hsl(156, 20%, 95%)"}},{id:"land-structure-line",type:"line",source:"composite","source-layer":"structure",minzoom:13,filter:["all",["==",["geometry-type"],"LineString"],["==",["get","class"],"land"]],layout:{"line-cap":"round"},paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(156, 20%, 95%)"}},{id:"aeroway-polygon",type:"fill",source:"composite","source-layer":"aeroway",minzoom:11,filter:["all",["==",["geometry-type"],"Polygon"],["match",["get","type"],["runway","taxiway","helipad"],!0,!1]],layout:{},paint:{"fill-opacity":["interpolate",["linear"],["zoom"],11,0,11.5,1],"fill-color":"hsl(0, 0%, 97%)"}},{id:"aeroway-line",type:"line",source:"composite","source-layer":"aeroway",minzoom:9,filter:["==",["geometry-type"],"LineString"],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],9,["match",["get","type"],"runway",1,.5],18,["match",["get","type"],"runway",80,20]],"line-color":"hsl(0, 0%, 97%)"}},{id:"building-outline",type:"line",source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{},paint:{"line-color":"hsl(55, 3%, 87%)","line-width":["interpolate",["exponential",1.5],["zoom"],15,.75,20,3],"line-opacity":["interpolate",["linear"],["zoom"],15,0,16,1]}},{id:"building",type:"fill",source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{},paint:{"fill-outline-color":"hsl(55, 3%, 87%)","fill-opacity":["interpolate",["linear"],["zoom"],15,0,16,1],"fill-color":"hsl(55, 5%, 91%)"}},{id:"tunnel-street-minor-low",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(185, 7%, 88%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"tunnel-street-minor-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-opacity":["step",["zoom"],0,14,1],"line-dasharray":[3,3]}},{id:"tunnel-primary-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,["match",["get","class"],"primary",1,.75],18,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-dasharray":[3,3]}},{id:"tunnel-major-link-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-dasharray":[3,3]}},{id:"tunnel-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(185, 12%, 89%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-dasharray":[3,3]}},{id:"tunnel-construction",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-color":"hsl(187, 7%, 88%)","line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]]}},{id:"tunnel-path",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,18,4],"line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]],"line-color":"hsl(0, 0%, 85%)"}},{id:"tunnel-steps",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 85%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"tunnel-major-link",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(187, 7%, 88%)"}},{id:"tunnel-pedestrian",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(187, 7%, 88%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"tunnel-street-minor",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(187, 7%, 88%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"tunnel-primary-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(187, 7%, 88%)"}},{id:"tunnel-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855769305.6016"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(187, 7%, 88%)"}},{id:"road-pedestrian-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,14.5],"line-color":"hsl(156, 12%, 92%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-minor-low",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"road-street-low",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"road-minor-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-street-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9.3,filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,.75,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.1,18,26]}},{id:"road-primary-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9.9,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32]}},{id:"road-major-link-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-opacity":["step",["zoom"],0,11,1]}},{id:"road-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:8.5,filter:["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-opacity":["step",["zoom"],["match",["get","class"],"motorway",1,0],6,1]}},{id:"road-construction",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","class"],"construction"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]]}},{id:"road-path",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],13,.5,14,1,15,1,18,4],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]]}},{id:"road-steps",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"road-major-link",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"road-pedestrian",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"road-minor",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["step",["zoom"],["==",["get","class"],"track"],14,["match",["get","class"],["track","secondary_link","tertiary_link","service"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,["match",["get","class"],"track",1,.5],18,12],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-street",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:11,filter:["all",["match",["get","class"],["street","street_limited","primary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"road-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.1,18,22],"line-color":"hsl(0, 0%, 100%)"}},{id:"road-primary",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:9,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"#f6eac1","line-opacity":["interpolate",["linear"],["zoom"],6,0,8,["match",["get","class"],["trunk"],.2,0],16,["match",["get","class"],["trunk"],1,.81]]}},{id:"road-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:8,filter:["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.5,18,32],"line-color":["match",["get","class"],["motorway"],"hsl(26, 100%, 68%)","#f2d163"],"line-opacity":["interpolate",["linear"],["zoom"],6,["match",["get","class"],["trunk"],.3,0],8,.4,18,.7]}},{id:"road-rail",type:"line",metadata:{"mapbox:group":"1444855786460.0557"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-pedestrian-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,14.5],"line-opacity":["step",["zoom"],0,14,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-street-minor-low",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],1,14,0]}},{id:"bridge-street-minor-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-opacity":["step",["zoom"],0,14,1],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-primary-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,["match",["get","class"],"primary",1,.75],18,2],"line-opacity":["step",["zoom"],0,10,1],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-major-link-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-construction",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],layout:{},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,18],"line-dasharray":["step",["zoom"],["literal",[.4,.8]],15,["literal",[.3,.6]],16,["literal",[.2,.3]],17,["literal",[.2,.25]],18,["literal",[.15,.15]]],"line-color":"hsl(156, 0%, 100%)"}},{id:"bridge-path",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,18,4],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[1,.5]]]}},{id:"bridge-steps",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],15,1,16,1.6,18,6],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.75,1]],16,["literal",[1,.75]],17,["literal",[.3,.3]]]}},{id:"bridge-major-link",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-pedestrian",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,12],"line-color":"hsl(0, 0%, 100%)","line-dasharray":["step",["zoom"],["literal",[1,0]],15,["literal",[1.5,.4]],16,["literal",[1,.2]]]}},{id:"bridge-street-minor",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["step",["zoom"],["match",["get","class"],["street","street_limited","track","primary_link"],!0,!1],14,["match",["get","class"],["street","street_limited","track","primary_link","secondary_link","tertiary_link","service"],!0,!1]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,["match",["get","class"],["street","street_limited","primary_link"],2,"track",1,.5],18,["match",["get","class"],["street","street_limited","primary_link"],18,12]],"line-color":"hsl(0, 0%, 100%)","line-opacity":["step",["zoom"],0,14,1]}},{id:"bridge-primary-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["primary","secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,["match",["get","class"],"primary",.75,.1],18,["match",["get","class"],"primary",32,26]],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-motorway-trunk",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-rail",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-color":"hsl(156, 12%, 92%)"}},{id:"bridge-major-link-2-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.75,20,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18]}},{id:"bridge-motorway-trunk-2-case",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],10,1,18,2],"line-color":"hsl(156, 12%, 92%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32]}},{id:"bridge-major-link-2",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,14,2,18,18],"line-color":"hsl(0, 0%, 100%)"}},{id:"bridge-motorway-trunk-2",type:"line",metadata:{"mapbox:group":"1444855799204.86"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],5,.75,18,32],"line-color":"hsl(0, 0%, 100%)"}},{id:"admin-1-boundary-bg",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"bevel"},paint:{"line-blur":["interpolate",["linear"],["zoom"],3,0,8,3],"line-width":["interpolate",["linear"],["zoom"],7,3.75,12,5.5],"line-opacity":["interpolate",["linear"],["zoom"],7,0,8,.75],"line-dasharray":[1,0],"line-translate":[0,0],"line-color":"hsl(0, 0%, 84%)"}},{id:"admin-0-boundary-bg",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],paint:{"line-width":["interpolate",["linear"],["zoom"],3,3.5,10,8],"line-color":"hsl(0, 0%, 84%)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-translate":[0,0],"line-blur":["interpolate",["linear"],["zoom"],3,0,10,2]}},{id:"admin-1-boundary",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-width":["interpolate",["linear"],["zoom"],7,.75,12,1.5],"line-opacity":["interpolate",["linear"],["zoom"],2,0,3,1],"line-color":["interpolate",["linear"],["zoom"],3,"hsl(0, 0%, 80%)",7,"hsl(0, 0%, 70%)"]}},{id:"admin-0-boundary",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"hsl(0, 0%, 62%)","line-width":["interpolate",["linear"],["zoom"],3,.5,10,2]}},{id:"admin-0-boundary-disputed",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","US"],!0,!1]],layout:{"line-join":"round"},paint:{"line-dasharray":[1.5,1.5],"line-color":"hsl(0, 0%, 62%)","line-width":["interpolate",["linear"],["zoom"],3,.5,10,2]}},{id:"county_border",type:"line",metadata:{"mapbox:group":"1444934295202.7542"},source:"composite","source-layer":"attr_county_labels_pg-155yvu",minzoom:6,maxzoom:12,paint:{"line-width":["interpolate",["linear"],["zoom"],5,.5,9,1.7,18,2],"line-color":"hsl(0, 0%, 59%)","line-opacity":["interpolate",["linear"],["zoom"],5,.2,9,.5,18,1]}},{id:"cousub_border",type:"line",source:"composite","source-layer":"attr_cousub_labels_less_pl-9lemol",minzoom:8,maxzoom:14,layout:{},paint:{"line-color":"hsl(0, 3%, 38%)","line-width":["interpolate",["linear"],["zoom"],0,1,6,1,22,1],"line-opacity":["interpolate",["linear"],["zoom"],7,.1,18,.2]}},{id:"place_border",type:"line",source:"composite","source-layer":"attr_place_labels_less_pl-0n1bxr",minzoom:8,maxzoom:14,paint:{"line-color":"hsla(0, 0%, 58%, 0.62)","line-dasharray":[3,2]}},{id:"road-label",type:"symbol",source:"composite","source-layer":"road",minzoom:10,filter:["step",["zoom"],["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],!0,!1],12,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary","pedestrian","street","street_limited"],!0,!1],15,["match",["get","class"],["ferry","golf","path"],!1,!0]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],10,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","pedestrian","street","street_limited"],9,6.5],18,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],16,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","pedestrian","street","street_limited"],14,13]],"text-max-angle":30,"text-font":["DIN Offc Pro Regular","Arial Unicode MS Regular"],"symbol-placement":"line","text-padding":1,"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-color":"hsl(0, 0%, 42%)","text-halo-color":["match",["get","class"],["motorway","trunk"],"hsla(0, 0%, 100%, 0.75)","hsl(0, 0%, 100%)"],"text-halo-blur":1,"text-halo-width":.1}},{id:"waterway-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:13,filter:["all",["match",["get","class"],["canal","river","stream"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,16],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"natural-line-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["glacier","landform"],!0,!1],["==",["geometry-type"],"LineString"],["<=",["get","filterrank"],1]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},paint:{"text-halo-width":.5,"text-halo-color":"hsl(0, 0%, 100%)","text-halo-blur":.5,"text-color":"hsl(0, 0%, 42%)"}},{id:"natural-point-label",type:"symbol",source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland"],!0,!1],["==",["geometry-type"],"Point"],["<=",["get","filterrank"],1]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"text-offset":["literal",[0,0]]},paint:{"text-color":"hsl(0, 0%, 42%)","text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":.5,"text-halo-blur":.5}},{id:"water-line-label",type:"symbol",source:"composite","source-layer":"natural_label",filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"text-size":["interpolate",["linear"],["zoom"],7,["step",["get","sizerank"],24,6,18,12,12],10,["step",["get","sizerank"],18,9,12],18,["step",["get","sizerank"],18,9,16]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"water-point-label",type:"symbol",source:"composite","source-layer":"natural_label",filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water"],!0,!1],["==",["geometry-type"],"Point"]],layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],7,["step",["get","sizerank"],24,6,18,12,12],10,["step",["get","sizerank"],18,9,12]],"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},paint:{"text-color":"hsl(187, 7%, 51%)"}},{id:"poi-label",type:"symbol",source:"composite","source-layer":"poi_label",minzoom:6,filter:["<=",["get","filterrank"],1],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":.1,"text-halo-blur":.5,"text-color":["step",["zoom"],["step",["get","sizerank"],"hsl(0, 0%, 66%)",5,"hsl(230, 0%, 56%)"],17,["step",["get","sizerank"],"hsl(0, 0%, 66%)",13,"hsl(0, 0%, 56%)"]]}},{id:"airport-label",type:"symbol",source:"composite","source-layer":"airport_label",minzoom:8,layout:{"text-line-height":1.1,"text-size":["step",["get","sizerank"],18,9,12],"icon-image":["step",["get","sizerank"],["concat",["get","maki"],"-15"],9,["concat",["get","maki"],"-11"]],"text-font":["DIN Offc Pro Medium","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,.75],"text-rotation-alignment":"viewport","text-anchor":"top","text-field":["step",["get","sizerank"],["coalesce",["get","name_en"],["get","name"]],15,["get","ref"]],"text-letter-spacing":.01,"text-max-width":9},paint:{"text-color":"hsla(0, 0%, 42%, 0)","text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":1,"text-opacity":0}},{id:"settlement-subdivision-label",type:"symbol",source:"composite","source-layer":"place_label",minzoom:10,maxzoom:15,filter:["all",["==",["get","class"],"settlement_subdivision"],["<=",["get","filterrank"],4]],layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Offc Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.1],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",17,16]],visibility:"none"},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-color":"hsl(0, 0%, 62%)","text-halo-blur":.5,"text-halo-width":.1}},{id:"state-label",type:"symbol",source:"composite","source-layer":"place_label",minzoom:3,maxzoom:9,filter:["==",["get","class"],"state"],layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],10,6,9.5,7,9],9,["step",["get","symbolrank"],24,6,18,7,14]],"text-transform":"uppercase","text-font":["DIN Offc Pro Bold","Arial Unicode MS Bold"],"text-field":["step",["zoom"],["step",["get","symbolrank"],["coalesce",["get","name_en"],["get","name"]],5,["coalesce",["get","abbr"],["get","name_en"],["get","name"]]],5,["coalesce",["get","name_en"],["get","name"]]],"text-letter-spacing":.15,"text-max-width":6},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-color":"hsl(0, 0%, 66%)","text-halo-width":.1}},{id:"county_label",type:"symbol",source:"composite","source-layer":"attr_county_labels-5i5o0f",minzoom:7.5,maxzoom:14,layout:{"text-field":["step",["zoom"],["upcase",["to-string",["get","name"]]],6,["upcase",["to-string",["get","name"]]],10,["upcase",["to-string",["get","namelsad"]]],22,["upcase",["to-string",["get","namelsad"]]]],"text-font":["step",["zoom"],["literal",["Open Sans Regular","Arial Unicode MS Regular"]],6,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],8,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],11,["literal",["Montserrat Medium","Arial Unicode MS Regular"]],22,["literal",["Montserrat Medium","Arial Unicode MS Regular"]]],"text-size":["interpolate",["linear"],["zoom"],0,0,6,6,6.5,10,7.5,14,9,30,11,75,14,85],"text-allow-overlap":["step",["zoom"],!1,5,!1,10,!1,11,!0],"text-max-width":5,"text-ignore-placement":["step",["zoom"],!1,6,!1,9,!0,12,!0,22,!0]},paint:{"text-color":"hsl(0, 0%, 48%)","text-opacity":["interpolate",["linear"],["zoom"],6.49999,1,6.5,.7,8,.3,11,.1,16,.05]}},{id:"cousub_label",type:"symbol",source:"composite","source-layer":"attr_cousub_labels_plus_pt-0kx5lj",minzoom:9,layout:{"text-field":["upcase",["get","display_name"]],"text-size":["interpolate",["linear"],["zoom"],7.9,0,8,8,9,10,14,30],"text-max-width":5,"text-line-height":1.1,visibility:"none"},paint:{"text-color":"hsla(0, 0%, 31%, 0.76)","text-halo-width":10,"text-halo-color":"hsl(0, 0%, 100%)"}},{id:"place-label new",type:"symbol",source:"composite","source-layer":"rural_places-4rf4i9",minzoom:9,filter:["match",["get","census_boundary_year"],[2020],!0,!1],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],12,9,11,10,10.5,12,9.5,14,8.5,16,6.5,17,4],15,["step",["get","symbolrank"],28,9,26,10,23,11,21,12,20,13,19,15,17]],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["Montserrat Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","NAME"]],"text-max-width":7},paint:{"text-color":["step",["get","symbolrank"],"hsl(0, 2%, 61%)",11,"hsl(0, 1%, 68%)",16,"hsl(0, 1%, 75%)"],"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1}},{id:"settlement-label",type:"symbol",source:"composite","source-layer":"place_label",maxzoom:10.76,filter:["all",["<=",["get","filterrank"],3],["==",["get","class"],"settlement"],["step",["zoom"],!0,12,[">=",["get","symbolrank"],11],13,[">=",["get","symbolrank"],12]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],12,9,11,10,10.5,12,9.5,14,8.5,16,6.5,17,4],15,["step",["get","symbolrank"],28,9,26,10,23,11,21,12,20,13,19,15,17]],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["step",["zoom"],["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]],8,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],11,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],10,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],12,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],11,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],13,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],12,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],15,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],13,["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]]],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],"text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},paint:{"text-color":["step",["get","symbolrank"],"hsl(0, 0%, 42%)",11,"hsl(0, 0%, 55%)",16,"hsl(0, 0%, 62%)"],"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1}},{id:"wwb2s-places_lat_lon",type:"symbol",source:"composite","source-layer":"places_lat_lon-awryh9",minzoom:10.75,maxzoom:20,filter:["all",[">=",["get","pop"],101],[">",["get","pct_rural"],0],["step",["zoom"],!0,13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],13]]],layout:{"text-line-height":1.1,"text-size":["step",["get","symbolrank"],20,9,18,10,16,11,14,12,12],"icon-image":["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],"text-font":["step",["zoom"],["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]],8,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],11,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],10,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],12,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],11,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],13,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],12,["step",["get","symbolrank"],["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]],15,["literal",["DIN Offc Pro Regular","Arial Unicode MS Regular"]]],13,["literal",["DIN Offc Pro Medium","Arial Unicode MS Regular"]]],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],"text-offset":["step",["zoom"],["match",["get","capital"],2,["match",["get","text_anchor"],"bottom",["literal",[0,-.3]],"bottom-left",["literal",[.3,-.1]],"left",["literal",[.45,.1]],"top-left",["literal",[.3,.1]],"top",["literal",[0,.3]],"top-right",["literal",[-.3,.1]],"right",["literal",[-.45,0]],"bottom-right",["literal",[-.3,-.1]],["literal",[0,-.3]]],["match",["get","text_anchor"],"bottom",["literal",[0,-.25]],"bottom-left",["literal",[.2,-.05]],"left",["literal",[.4,.05]],"top-left",["literal",[.2,.05]],"top",["literal",[0,.25]],"top-right",["literal",[-.2,.05]],"right",["literal",[-.4,.05]],"bottom-right",["literal",[-.2,-.05]],["literal",[0,-.25]]]],8,["literal",[0,0]]],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","NAME"],["get","name"]],"text-max-width":7},paint:{"text-halo-color":"hsl(0, 0%, 100%)","icon-opacity":["step",["zoom"],1,8,0],"text-halo-blur":1,"text-halo-width":.1,"text-color":["interpolate",["linear"],["zoom"],0,"hsl(0, 0%, 62%)",22,"#000000"],"text-opacity":["interpolate",["linear"],["zoom"],7,0,9,.97,22,1]}},{id:"custom-pattern",type:"fill",source:"composite","source-layer":"attr_county_labels_pg-155yvu",minzoom:6,layout:{visibility:"none"},paint:{"fill-color":"hsla(303, 73%, 74%, 0.66)","fill-pattern":"stripe-4"}}],m4="2022-02-24T13:16:14.872Z",g4="2024-07-11T16:18:50.102Z",_4="cl010e7b7001p15pe3l0306hv",y4="ruralinno",v4="private",x4=!1,w4={version:r4,name:o4,metadata:s4,center:a4,zoom:l4,bearing:c4,pitch:u4,sources:h4,sprite:d4,glyphs:p4,layers:f4,created:m4,modified:g4,id:_4,owner:y4,visibility:v4,protected:!1,draft:x4};/* + * Frontend UI component library for the CORI Data API + * {@link https://github.com/ruralinnovation/cori.data.api} + * @copyright Rural Innovation Strategies, Inc. + * @license ISC + */Object.assign({},w4);var KA={exports:{}};(function(t,i){(function(l,h){t.exports=h()})(Co,function(){var l,h,g;function x(s,M){if(!l)l=M;else if(!h)h=M;else{var F="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+l+")(sharedChunk); ("+h+")(sharedChunk); self.onerror = null;",q={};l(q),g=M(q),typeof window<"u"&&window&&window.URL&&window.URL.createObjectURL&&(g.workerUrl=window.URL.createObjectURL(new Blob([F],{type:"text/javascript"})))}}x(["exports"],function(s){var M=typeof self<"u"?self:{},F="2.15.0";let q;const X={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(q==null){const n=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{q={}.API_URL_REGEX!=null?new RegExp({}.API_URL_REGEX):n}catch{q=n}}return q},get API_TILEJSON_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return/^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){if(!X.API_URL)return null;try{const n=new URL(X.API_URL);return n.hostname==="api.mapbox.cn"?"https://events.mapbox.cn/events/v2":n.hostname==="api.mapbox.com"?"https://events.mapbox.com/events/v2":null}catch{return null}},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},oe={supported:!1,testSupport:function(n){!ke&&fe&&(ze?ue(n):Ae=n)}};let Ae,fe,ke=!1,ze=!1;function ue(n){const e=n.createTexture();n.bindTexture(n.TEXTURE_2D,e);try{if(n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,fe),n.isContextLost())return;oe.supported=!0}catch{}n.deleteTexture(e),ke=!0}M.document&&(fe=M.document.createElement("img"),fe.onload=function(){Ae&&ue(Ae),Ae=null,ze=!0},fe.onerror=function(){ke=!0,Ae=null},fe.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const re="01";function le(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var De=je;function je(n,e,r,a){this.cx=3*n,this.bx=3*(r-n)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(a-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=n,this.p1y=e,this.p2x=r,this.p2y=a}je.prototype={sampleCurveX:function(n){return((this.ax*n+this.bx)*n+this.cx)*n},sampleCurveY:function(n){return((this.ay*n+this.by)*n+this.cy)*n},sampleCurveDerivativeX:function(n){return(3*this.ax*n+2*this.bx)*n+this.cx},solveCurveX:function(n,e){if(e===void 0&&(e=1e-6),n<0)return 0;if(n>1)return 1;for(var r=n,a=0;a<8;a++){var u=this.sampleCurveX(r)-n;if(Math.abs(u)u?m=r:y=r,r=.5*(y-m)+m;return r},solve:function(n,e){return this.sampleCurveY(this.solveCurveX(n,e))}};var tt=le(De),lt=ut;function ut(n,e){this.x=n,this.y=e}ut.prototype={clone:function(){return new ut(this.x,this.y)},add:function(n){return this.clone()._add(n)},sub:function(n){return this.clone()._sub(n)},multByPoint:function(n){return this.clone()._multByPoint(n)},divByPoint:function(n){return this.clone()._divByPoint(n)},mult:function(n){return this.clone()._mult(n)},div:function(n){return this.clone()._div(n)},rotate:function(n){return this.clone()._rotate(n)},rotateAround:function(n,e){return this.clone()._rotateAround(n,e)},matMult:function(n){return this.clone()._matMult(n)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(n){return this.x===n.x&&this.y===n.y},dist:function(n){return Math.sqrt(this.distSqr(n))},distSqr:function(n){var e=n.x-this.x,r=n.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(n){return Math.atan2(this.y-n.y,this.x-n.x)},angleWith:function(n){return this.angleWithSep(n.x,n.y)},angleWithSep:function(n,e){return Math.atan2(this.x*e-this.y*n,this.x*n+this.y*e)},_matMult:function(n){var e=n[2]*this.x+n[3]*this.y;return this.x=n[0]*this.x+n[1]*this.y,this.y=e,this},_add:function(n){return this.x+=n.x,this.y+=n.y,this},_sub:function(n){return this.x-=n.x,this.y-=n.y,this},_mult:function(n){return this.x*=n,this.y*=n,this},_div:function(n){return this.x/=n,this.y/=n,this},_multByPoint:function(n){return this.x*=n.x,this.y*=n.y,this},_divByPoint:function(n){return this.x/=n.x,this.y/=n.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var n=this.y;return this.y=this.x,this.x=-n,this},_rotate:function(n){var e=Math.cos(n),r=Math.sin(n),a=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=a,this},_rotateAround:function(n,e){var r=Math.cos(n),a=Math.sin(n),u=e.y+a*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-a*(this.y-e.y),this.y=u,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},ut.convert=function(n){return n instanceof ut?n:Array.isArray(n)?new ut(n[0],n[1]):n};var Ve=le(lt);const jt=Math.PI/180,di=180/Math.PI;function St(n){return n*jt}function Vt(n){return n*di}const zi=[[0,0],[1,0],[1,1],[0,1]];function Li(n){if(n<=0)return 0;if(n>=1)return 1;const e=n*n,r=e*n;return 4*(n<.5?r:3*(n-e)+r-.75)}function wr(n,e,r,a){const u=new tt(n,e,r,a);return function(p){return u.solve(p)}}const Or=wr(.25,.1,.25,1);function Ke(n,e,r){return Math.min(r,Math.max(e,n))}function Tt(n,e,r){return(r=Ke((r-n)/(e-n),0,1))*r*(3-2*r)}function xt(n,e,r){const a=r-e,u=((n-e)%a+a)%a+e;return u===e?r:u}function Bt(n,e,r){if(!n.length)return r(null,[]);let a=n.length;const u=new Array(n.length);let p=null;n.forEach((m,y)=>{e(m,(w,b)=>{w&&(p=w),u[y]=b,--a==0&&r(p,u)})})}function dn(n){const e=[];for(const r in n)e.push(n[r]);return e}function _n(n,...e){for(const r of e)for(const a in r)n[a]=r[a];return n}let ei=1;function Wi(){return ei++}function ti(){return function n(e){return e?(e^Math.random()*(16>>e/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,n)}()}function pi(n){return n<=1?1:Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function rs(n){return!!n&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(n)}function Br(n,e){n.forEach(r=>{e[r]&&(e[r]=e[r].bind(e))})}function yn(n,e){return n.indexOf(e,n.length-e.length)!==-1}function Mt(n,e,r){const a={};for(const u in n)a[u]=e.call(r||this,n[u],u,n);return a}function Ro(n,e,r){const a={};for(const u in n)e.call(r||this,n[u],u,n)&&(a[u]=n[u]);return a}function Ai(n){return Array.isArray(n)?n.map(Ai):typeof n=="object"&&n?Mt(n,Ai):n}const Do={};function vn(n){Do[n]||(typeof console<"u"&&console.warn(n),Do[n]=!0)}function nr(n,e,r){return(r.y-n.y)*(e.x-n.x)>(e.y-n.y)*(r.x-n.x)}function tc(n){let e=0;for(let r,a,u=0,p=n.length,m=p-1;u@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(r,a,u,p)=>{const m=u||p;return e[a]=!m||m.toLowerCase(),""}),e["max-age"]){const r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}let qa=null;function Us(n){if(qa==null){const e=n.navigator?n.navigator.userAgent:null;qa=!!n.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return qa}function Za(n){try{const e=M[n];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch{return!1}}function Oo(n,e){return[n[4*e],n[4*e+1],n[4*e+2],n[4*e+3]]}const js="mapbox-tiles";let nc=500,ic=50,ir,Bo;function Wa(){try{return M.caches}catch{}}function os(){Wa()&&!ir&&(ir=M.caches.open(js))}function Vs(n){const e=n.indexOf("?");if(e<0)return n;const r=function(u){const p=u.indexOf("?");return p>0?u.slice(p+1).split("&"):[]}(n),a=r.filter(u=>{const p=u.split("=");return p[0]==="language"||p[0]==="worldview"});return a.length?`${n.slice(0,e)}?${a.join("&")}`:n.slice(0,e)}let Ha=1/0;const ss={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(ss);class Fo extends Error{constructor(e,r,a){r===401&&xe(a)&&(e+=": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes"),super(e),this.status=r,this.url=a}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}const as=to()?()=>self.worker&&self.worker.referrer:()=>(M.location.protocol==="blob:"?M.parent:M).location.href,ls=function(n,e){if(!(/^file:/.test(r=n.url)||/^file:/.test(as())&&!/^\w+:/.test(r))){if(M.fetch&&M.Request&&M.AbortController&&M.Request.prototype.hasOwnProperty("signal"))return function(a,u){const p=new M.AbortController,m=new M.Request(a.url,{method:a.method||"GET",body:a.body,credentials:a.credentials,headers:a.headers,referrer:as(),referrerPolicy:a.referrerPolicy,signal:p.signal});let y=!1,w=!1;const b=(A=m.url).indexOf("sku=")>0&&xe(A);var A;a.type==="json"&&m.headers.set("Accept","application/json");const I=(L,R,B)=>{if(w)return;if(L&&L.message!=="SecurityError"&&vn(L.toString()),R&&B)return k(R);const V=Date.now();M.fetch(m).then(K=>{if(K.ok){const ie=b?K.clone():null;return k(K,ie,V)}return u(new Fo(K.statusText,K.status,a.url))}).catch(K=>{K.name!=="AbortError"&&u(new Error(`${K.message} ${a.url}`))})},k=(L,R,B)=>{(a.type==="arrayBuffer"?L.arrayBuffer():a.type==="json"?L.json():L.text()).then(V=>{w||(R&&B&&function(K,ie,Y){if(os(),!ir)return;const te={status:ie.status,statusText:ie.statusText,headers:new M.Headers};ie.headers.forEach((Se,be)=>te.headers.set(be,Se));const ae=Hi(ie.headers.get("Cache-Control")||"");if(ae["no-store"])return;ae["max-age"]&&te.headers.set("Expires",new Date(Y+1e3*ae["max-age"]).toUTCString());const se=te.headers.get("Expires");se&&(new Date(se).getTime()-Y<42e4||function(Se,be){if(Bo===void 0)try{new Response(new ReadableStream),Bo=!0}catch{Bo=!1}Bo?be(Se.body):Se.blob().then(be)}(ie,Se=>{const be=new M.Response(Se,te);os(),ir&&ir.then(Re=>Re.put(Vs(K.url),be)).catch(Re=>vn(Re.message))}))}(m,R,B),y=!0,u(null,V,L.headers.get("Cache-Control"),L.headers.get("Expires")))}).catch(V=>{w||u(new Error(V.message))})};return b?function(L,R){if(os(),!ir)return R(null);const B=Vs(L.url);ir.then(V=>{V.match(B).then(K=>{const ie=function(Y){if(!Y)return!1;const te=new Date(Y.headers.get("Expires")||0),ae=Hi(Y.headers.get("Cache-Control")||"");return te>Date.now()&&!ae["no-cache"]}(K);V.delete(B),ie&&V.put(B,K.clone()),R(null,K,ie)}).catch(R)}).catch(R)}(m,I):I(null,null),{cancel:()=>{w=!0,y||p.abort()}}}(n,e);if(to()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",n,e,void 0,!0)}var r;return function(a,u){const p=new M.XMLHttpRequest;p.open(a.method||"GET",a.url,!0),a.type==="arrayBuffer"&&(p.responseType="arraybuffer");for(const m in a.headers)p.setRequestHeader(m,a.headers[m]);return a.type==="json"&&(p.responseType="text",p.setRequestHeader("Accept","application/json")),p.withCredentials=a.credentials==="include",p.onerror=()=>{u(new Error(p.statusText))},p.onload=()=>{if((p.status>=200&&p.status<300||p.status===0)&&p.response!==null){let m=p.response;if(a.type==="json")try{m=JSON.parse(p.response)}catch(y){return u(y)}u(null,m,p.getResponseHeader("Cache-Control"),p.getResponseHeader("Expires"))}else u(new Fo(p.statusText,p.status,a.url))},p.send(a.body),{cancel:()=>p.abort()}}(n,e)},Gs=function(n,e){return ls(_n(n,{type:"arrayBuffer"}),e)};function rc(n){const e=M.document.createElement("a");return e.href=n,e.protocol===M.document.location.protocol&&e.host===M.document.location.host}const ne="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";let N,U;N=[],U=0;const ee=function(n,e){if(oe.supported&&(n.headers||(n.headers={}),n.headers.accept="image/webp,*/*"),U>=X.MAX_PARALLEL_IMAGE_REQUESTS){const p={requestParameters:n,callback:e,cancelled:!1,cancel(){this.cancelled=!0}};return N.push(p),p}U++;let r=!1;const a=()=>{if(!r)for(r=!0,U--;N.length&&U{a(),p?e(p):m&&(M.createImageBitmap?function(b,A){const I=new M.Blob([new Uint8Array(b)],{type:"image/png"});M.createImageBitmap(I).then(k=>{A(null,k)}).catch(k=>{A(new Error(`Could not load image because of ${k.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(m,(b,A)=>e(b,A,y,w)):function(b,A){const I=new M.Image,k=M.URL;I.onload=()=>{A(null,I),k.revokeObjectURL(I.src),I.onload=null,M.requestAnimationFrame(()=>{I.src=ne})},I.onerror=()=>A(new 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."));const L=new M.Blob([new Uint8Array(b)],{type:"image/png"});I.src=b.byteLength?k.createObjectURL(L):ne}(m,(b,A)=>e(b,A,y,w)))});return{cancel:()=>{u.cancel(),a()}}},ce="NO_ACCESS_TOKEN";function ge(n){return n.indexOf("mapbox:")===0}function xe(n){return X.API_URL_REGEX.test(n)}function ve(n){return X.API_CDN_URL_REGEX.test(n)}function me(n){return X.API_STYLE_REGEX.test(n)&&!Me(n)}function Me(n){return X.API_SPRITE_REGEX.test(n)}const et=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function nt(n){const e=n.match(et);if(!e)throw new Error("Unable to parse URL object");return{protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function Ye(n){const e=n.params.length?`?${n.params.join("&")}`:"";return`${n.protocol}://${n.authority}${n.path}${e}`}const kt="mapbox.eventData";function Rt(n){if(!n)return null;const e=n.split(".");if(!e||e.length!==3)return null;try{return JSON.parse(decodeURIComponent(M.atob(e[1]).split("").map(r=>"%"+("00"+r.charCodeAt(0).toString(16)).slice(-2)).join("")))}catch{return null}}class Pt{constructor(e){this.type=e,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(e){const r=Rt(X.ACCESS_TOKEN);let a="";return a=r&&r.u?M.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,(u,p)=>String.fromCharCode(+("0x"+p)))):X.ACCESS_TOKEN||"",e?`${kt}.${e}:${a}`:`${kt}:${a}`}fetchEventData(){const e=Za("localStorage"),r=this.getStorageKey(),a=this.getStorageKey("uuid");if(e)try{const u=M.localStorage.getItem(r);u&&(this.eventData=JSON.parse(u));const p=M.localStorage.getItem(a);p&&(this.anonId=p)}catch{vn("Unable to read from LocalStorage")}}saveEventData(){const e=Za("localStorage"),r=this.getStorageKey(),a=this.getStorageKey("uuid");if(e)try{M.localStorage.setItem(a,this.anonId),Object.keys(this.eventData).length>=1&&M.localStorage.setItem(r,JSON.stringify(this.eventData))}catch{vn("Unable to write to LocalStorage")}}processRequests(e){}postEvent(e,r,a,u){if(!X.EVENTS_URL)return;const p=nt(X.EVENTS_URL);p.params.push(`access_token=${u||X.ACCESS_TOKEN||""}`);const m={event:this.type,created:new Date(e).toISOString()},y=r?_n(m,r):m,w={url:Ye(p),headers:{"Content-Type":"text/plain"},body:JSON.stringify([y])};this.pendingRequest=function(b,A){return ls(_n(b,{method:"POST"}),A)}(w,b=>{this.pendingRequest=null,a(b),this.saveEventData(),this.processRequests(u)})}queueRequest(e,r){this.queue.push(e),this.processRequests(r)}}const Dt=new class extends Pt{constructor(n){super("appUserTurnstile"),this._customAccessToken=n}postTurnstileEvent(n,e){X.EVENTS_URL&&X.ACCESS_TOKEN&&Array.isArray(n)&&n.some(r=>ge(r)||xe(r))&&this.queueRequest(Date.now(),e)}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const e=Rt(X.ACCESS_TOKEN),r=e?e.u:X.ACCESS_TOKEN;let a=r!==this.eventData.tokenU;rs(this.anonId)||(this.anonId=ti(),a=!0);const u=this.queue.shift();if(this.eventData.lastSuccess){const p=new Date(this.eventData.lastSuccess),m=new Date(u),y=(u-this.eventData.lastSuccess)/864e5;a=a||y>=1||y<-1||p.getDate()!==m.getDate()}else a=!0;a?this.postEvent(u,{sdkIdentifier:"mapbox-gl-js",sdkVersion:F,skuId:re,"enabled.telemetry":!1,userId:this.anonId},p=>{p||(this.eventData.lastSuccess=u,this.eventData.tokenU=r)},n):this.processRequests()}},$t=Dt.postTurnstileEvent.bind(Dt),An=new class extends Pt{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(n,e,r,a){this.skuToken=e,this.errorCb=a,X.EVENTS_URL&&(r||X.ACCESS_TOKEN?this.queueRequest({id:n,timestamp:Date.now()},r):this.errorCb(new Error(ce)))}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||(this.anonId||this.fetchEventData(),rs(this.anonId)||(this.anonId=ti()),this.postEvent(r,{sdkIdentifier:"mapbox-gl-js",sdkVersion:F,skuId:re,skuToken:this.skuToken,userId:this.anonId},a=>{a?this.errorCb(a):e&&(this.success[e]=!0)},n))}},Fn=An.postMapLoadEvent.bind(An),vi=new class extends Pt{constructor(){super("gljs.performance")}postPerformanceEvent(n,e){X.EVENTS_URL&&(n||X.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:e},n)}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{timestamp:e,performanceData:r}=this.queue.shift(),a=function(u){const p=M.performance.getEntriesByType("resource"),m=M.performance.getEntriesByType("mark"),y=function(k){const L={};if(k){for(const R in k)if(R!=="other")for(const B of k[R]){const V=`${R}ResolveRangeMin`,K=`${R}ResolveRangeMax`,ie=`${R}RequestCount`,Y=`${R}RequestCachedCount`;L[V]=Math.min(L[V]||1/0,B.startTime),L[K]=Math.max(L[K]||-1/0,B.responseEnd);const te=ae=>{L[ae]===void 0&&(L[ae]=0),++L[ae]};B.transferSize!==void 0&&B.transferSize===0&&te(Y),te(ie)}}return L}(function(k,L){const R={};if(k)for(const B of k){const V=L(B);R[V]===void 0&&(R[V]=[]),R[V].push(B)}return R}(p,_p)),w=M.devicePixelRatio,b=M.navigator.connection||M.navigator.mozConnection||M.navigator.webkitConnection,A={counters:[],metadata:[],attributes:[]},I=(k,L,R)=>{R!=null&&k.push({name:L,value:R.toString()})};for(const k in y)I(A.counters,k,y[k]);if(u.interactionRange[0]!==1/0&&u.interactionRange[1]!==-1/0&&(I(A.counters,"interactionRangeMin",u.interactionRange[0]),I(A.counters,"interactionRangeMax",u.interactionRange[1])),m)for(const k of Object.keys($s)){const L=$s[k],R=m.find(B=>B.name===L);R&&I(A.counters,L,R.startTime)}return I(A.counters,"visibilityHidden",u.visibilityHidden),I(A.attributes,"style",function(k){if(k)for(const L of k){const R=L.name.split("?")[0];if(me(R)){const B=R.split("/").slice(-2);if(B.length===2)return`mapbox://styles/${B[0]}/${B[1]}`}}}(p)),I(A.attributes,"terrainEnabled",u.terrainEnabled?"true":"false"),I(A.attributes,"fogEnabled",u.fogEnabled?"true":"false"),I(A.attributes,"projection",u.projection),I(A.attributes,"zoom",u.zoom),I(A.metadata,"devicePixelRatio",w),I(A.metadata,"connectionEffectiveType",b?b.effectiveType:void 0),I(A.metadata,"navigatorUserAgent",M.navigator.userAgent),I(A.metadata,"screenWidth",M.screen.width),I(A.metadata,"screenHeight",M.screen.height),I(A.metadata,"windowWidth",M.innerWidth),I(A.metadata,"windowHeight",M.innerHeight),I(A.metadata,"mapWidth",u.width/w),I(A.metadata,"mapHeight",u.height/w),I(A.metadata,"webglRenderer",u.renderer),I(A.metadata,"webglVendor",u.vendor),I(A.metadata,"sdkVersion",F),I(A.metadata,"sdkIdentifier","mapbox-gl-js"),A}(r);for(const u of a.metadata);for(const u of a.counters);for(const u of a.attributes);this.postEvent(e,a,()=>{},n)}},Yn=vi.postPerformanceEvent.bind(vi),Fr=new class extends Pt{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(n,e,r,a){if(!X.API_URL||!X.SESSION_PATH)return;const u=nt(X.API_URL+X.SESSION_PATH);u.params.push(`sku=${e||""}`),u.params.push(`access_token=${a||X.ACCESS_TOKEN||""}`);const p={url:Ye(u),headers:{"Content-Type":"text/plain"}};this.pendingRequest=function(m,y){return ls(_n(m,{method:"GET"}),y)}(p,m=>{this.pendingRequest=null,r(m),this.saveEventData(),this.processRequests(a)})}getSessionAPI(n,e,r,a){this.skuToken=e,this.errorCb=a,X.SESSION_PATH&&X.API_URL&&(r||X.ACCESS_TOKEN?this.queueRequest({id:n,timestamp:Date.now()},r):this.errorCb(new Error(ce)))}processRequests(n){if(this.pendingRequest||this.queue.length===0)return;const{id:e,timestamp:r}=this.queue.shift();e&&this.success[e]||this.getSession(r,this.skuToken,a=>{a?this.errorCb(a):e&&(this.success[e]=!0)},n)}},ii=Fr.getSessionAPI.bind(Fr),Ci=new Set,$s={create:"create",load:"load",fullLoad:"fullLoad"},Bg={mark(n){M.performance.mark(n)},measure(n,e,r){M.performance.measure(n,e,r)}};function _p(n){const e=n.name.split("?")[0];return ve(e)&&e.includes("mapbox-gl.js")?"javascript":ve(e)&&e.includes("mapbox-gl.css")?"css":function(r){return X.API_FONTS_REGEX.test(r)}(e)?"fontRange":Me(e)?"sprite":me(e)?"style":function(r){return X.API_TILEJSON_REGEX.test(r)}(e)?"tilejson":"other"}const Jt=M.performance;function ju(n){const e=n?n.url.toString():void 0;return Jt.getEntriesByName(e)}let Xa,Vu,oc,Nr;const no={now:()=>oc!==void 0?oc:M.performance.now(),setNow(n){oc=n},restoreNow(){oc=void 0},frame(n){const e=M.requestAnimationFrame(n);return{cancel:()=>M.cancelAnimationFrame(e)}},getImageData(n,e=0){const{width:r,height:a}=n;Nr||(Nr=M.document.createElement("canvas"));const u=Nr.getContext("2d",{willReadFrequently:!0});if(!u)throw new Error("failed to create canvas 2d context");return(r>Nr.width||a>Nr.height)&&(Nr.width=r,Nr.height=a),u.clearRect(-e,-e,r+2*e,a+2*e),u.drawImage(n,0,0,r,a),u.getImageData(-e,-e,r+2*e,a+2*e)},resolveURL:n=>(Xa||(Xa=M.document.createElement("a")),Xa.href=n,Xa.href),get devicePixelRatio(){return M.devicePixelRatio},get prefersReducedMotion(){return!!M.matchMedia&&(Vu==null&&(Vu=M.matchMedia("(prefers-reduced-motion: reduce)")),Vu.matches)}};function Gu(n,e,r){r[n]&&r[n].indexOf(e)!==-1||(r[n]=r[n]||[],r[n].push(e))}function $u(n,e,r){if(r&&r[n]){const a=r[n].indexOf(e);a!==-1&&r[n].splice(a,1)}}class cs{constructor(e,r={}){_n(this,r),this.type=e}}class io extends cs{constructor(e,r={}){super("error",_n({error:e},r))}}class Ka{on(e,r){return this._listeners=this._listeners||{},Gu(e,r,this._listeners),this}off(e,r){return $u(e,r,this._listeners),$u(e,r,this._oneTimeListeners),this}once(e,r){return r?(this._oneTimeListeners=this._oneTimeListeners||{},Gu(e,r,this._oneTimeListeners),this):new Promise(a=>this.once(e,a))}fire(e,r){typeof e=="string"&&(e=new cs(e,r||{}));const a=e.type;if(this.listens(a)){e.target=this;const u=this._listeners&&this._listeners[a]?this._listeners[a].slice():[];for(const y of u)y.call(this,e);const p=this._oneTimeListeners&&this._oneTimeListeners[a]?this._oneTimeListeners[a].slice():[];for(const y of p)$u(a,y,this._oneTimeListeners),y.call(this,e);const m=this._eventedParent;m&&(_n(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),m.fire(e))}else e instanceof io&&console.error(e.error);return this}listens(e){return!!(this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e))}setEventedParent(e,r){return this._eventedParent=e,this._eventedParentData=r,this}}var Le=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{},"line":{},"line-center":{}},"default":"point","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"filter":{"type":"array","value":"*"},"filter_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["fill-extrusion-edge-radius"]},"fill-extrusion-rounded-roof":{"type":"boolean","default":true,"requires":["fill-extrusion-edge-radius"],"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-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":false,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');function ro(n,...e){for(const r of e)for(const a in r)n[a]=r[a];return n}function Nn(n){return n instanceof Number||n instanceof String||n instanceof Boolean?n.valueOf():n}function ri(n){if(Array.isArray(n))return n.map(ri);if(n instanceof Object&&!(n instanceof Number||n instanceof String||n instanceof Boolean)){const e={};for(const r in n)e[r]=ri(n[r]);return e}return Nn(n)}class yp extends Error{constructor(e,r){super(r),this.message=r,this.key=e}}var Ur=yp;class qu{constructor(e,r=[]){this.parent=e,this.bindings={};for(const[a,u]of r)this.bindings[a]=u}concat(e){return new qu(this,e)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw new Error(`${e} not found in scope.`)}has(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}var vp=qu;const qs={kind:"null"},at={kind:"number"},Gt={kind:"string"},Ft={kind:"boolean"},Xi={kind:"color"},br={kind:"object"},Nt={kind:"value"},Ki={kind:"collator"},Ya={kind:"formatted"},us={kind:"resolvedImage"};function rr(n,e){return{kind:"array",itemType:n,N:e}}function En(n){if(n.kind==="array"){const e=En(n.itemType);return typeof n.N=="number"?`array<${e}, ${n.N}>`:n.itemType.kind==="value"?"array":`array<${e}>`}return n.kind}const xp=[qs,at,Gt,Ft,Xi,Ya,br,rr(Nt),us];function oo(n,e){if(e.kind==="error")return null;if(n.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!oo(n.itemType,e.itemType))&&(typeof n.N!="number"||n.N===e.N))return null}else{if(n.kind===e.kind)return null;if(n.kind==="value"){for(const r of xp)if(!oo(r,e))return null}}return`Expected ${En(n)} but found ${En(e)} instead.`}function Ja(n,e){return e.some(r=>r.kind===n.kind)}function Qa(n,e){return e.some(r=>r==="null"?n===null:r==="array"?Array.isArray(n):r==="object"?n&&!Array.isArray(n)&&typeof n=="object":r===typeof n)}var Zu,wp={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function el(n){return(n=Math.round(n))<0?0:n>255?255:n}function tl(n){return el(n[n.length-1]==="%"?parseFloat(n)/100*255:parseInt(n))}function sc(n){return(e=n[n.length-1]==="%"?parseFloat(n)/100:parseFloat(n))<0?0:e>1?1:e;var e}function Zs(n,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?n+(e-n)*r*6:2*r<1?e:3*r<2?n+(e-n)*(2/3-r)*6:n}try{Zu={}.parseCSSColor=function(n){var e,r=n.replace(/ /g,"").toLowerCase();if(r in wp)return wp[r].slice();if(r[0]==="#")return r.length===4?(e=parseInt(r.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:r.length===7&&(e=parseInt(r.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var a=r.indexOf("("),u=r.indexOf(")");if(a!==-1&&u+1===r.length){var p=r.substr(0,a),m=r.substr(a+1,u-(a+1)).split(","),y=1;switch(p){case"rgba":if(m.length!==4)return null;y=sc(m.pop());case"rgb":return m.length!==3?null:[tl(m[0]),tl(m[1]),tl(m[2]),y];case"hsla":if(m.length!==4)return null;y=sc(m.pop());case"hsl":if(m.length!==3)return null;var w=(parseFloat(m[0])%360+360)%360/360,b=sc(m[1]),A=sc(m[2]),I=A<=.5?A*(b+1):A+b-A*b,k=2*A-I;return[el(255*Zs(k,I,w+1/3)),el(255*Zs(k,I,w)),el(255*Zs(k,I,w-1/3)),y];default:return null}}return null}}catch{}class Ri{constructor(e,r,a,u=1){this.r=e,this.g=r,this.b=a,this.a=u}static parse(e){if(!e)return;if(e instanceof Ri)return e;if(typeof e!="string")return;const r=Zu(e);return r?new Ri(r[0]/255*r[3],r[1]/255*r[3],r[2]/255*r[3],r[3]):void 0}toString(){const[e,r,a,u]=this.toArray();return`rgba(${Math.round(e)},${Math.round(r)},${Math.round(a)},${u})`}toArray(){const{r:e,g:r,b:a,a:u}=this;return u===0?[0,0,0,0]:[255*e/u,255*r/u,255*a/u,u]}toArray01(){const{r:e,g:r,b:a,a:u}=this;return u===0?[0,0,0,0]:[e/u,r/u,a/u,u]}toArray01PremultipliedAlpha(){const{r:e,g:r,b:a,a:u}=this;return[e,r,a,u]}}Ri.black=new Ri(0,0,0,1),Ri.white=new Ri(1,1,1,1),Ri.transparent=new Ri(0,0,0,0),Ri.red=new Ri(1,0,0,1),Ri.blue=new Ri(0,0,1,1);var Dn=Ri;class Wu{constructor(e,r,a){this.sensitivity=e?r?"variant":"case":r?"accent":"base",this.locale=a,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,r){return this.collator.compare(e,r)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Hu{constructor(e,r,a,u,p){this.text=e.normalize?e.normalize():e,this.image=r,this.scale=a,this.fontStack=u,this.textColor=p}}class Di{constructor(e){this.sections=e}static fromString(e){return new Di([new Hu(e,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(e){return e instanceof Di?e:Di.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map(e=>e.text).join("")}serialize(){const e=["format"];for(const r of this.sections){if(r.image){e.push(["image",r.image.name]);continue}e.push(r.text);const a={};r.fontStack&&(a["text-font"]=["literal",r.fontStack.split(",")]),r.scale&&(a["font-scale"]=r.scale),r.textColor&&(a["text-color"]=["rgba"].concat(r.textColor.toArray())),e.push(a)}return e}}class or{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(e){return e?new or({name:e,available:!1}):null}serialize(){return["image",this.name]}}function bp(n,e,r,a){return typeof n=="number"&&n>=0&&n<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof r=="number"&&r>=0&&r<=255?a===void 0||typeof a=="number"&&a>=0&&a<=1?null:`Invalid rgba value [${[n,e,r,a].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof a=="number"?[n,e,r,a]:[n,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function nl(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"||n instanceof Dn||n instanceof Wu||n instanceof Di||n instanceof or)return!0;if(Array.isArray(n)){for(const e of n)if(!nl(e))return!1;return!0}if(typeof n=="object"){for(const e in n)if(!nl(n[e]))return!1;return!0}return!1}function Pn(n){if(n===null)return qs;if(typeof n=="string")return Gt;if(typeof n=="boolean")return Ft;if(typeof n=="number")return at;if(n instanceof Dn)return Xi;if(n instanceof Wu)return Ki;if(n instanceof Di)return Ya;if(n instanceof or)return us;if(Array.isArray(n)){const e=n.length;let r;for(const a of n){const u=Pn(a);if(r){if(r===u)continue;r=Nt;break}r=u}return rr(r||Nt,e)}return br}function il(n){const e=typeof n;return n===null?"":e==="string"||e==="number"||e==="boolean"?String(n):n instanceof Dn||n instanceof Di||n instanceof or?n.toString():JSON.stringify(n)}class Xu{constructor(e,r){this.type=e,this.value=r}static parse(e,r){if(e.length!==2)return r.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!nl(e[1]))return r.error("invalid value");const a=e[1];let u=Pn(a);const p=r.expectedType;return u.kind!=="array"||u.N!==0||!p||p.kind!=="array"||typeof p.N=="number"&&p.N!==0||(u=p),new Xu(u,a)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return this.type.kind==="array"||this.type.kind==="object"?["literal",this.value]:this.value instanceof Dn?["rgba"].concat(this.value.toArray()):this.value instanceof Di?this.value.serialize():this.value}}var hs=Xu,fi=class{constructor(n){this.name="ExpressionEvaluationError",this.message=n}toJSON(){return this.message}};const Ku={string:Gt,number:at,boolean:Ft,object:br};class Yu{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");let a,u=1;const p=e[0];if(p==="array"){let y,w;if(e.length>2){const b=e[1];if(typeof b!="string"||!(b in Ku)||b==="object")return r.error('The item type argument of "array" must be one of string, number, boolean',1);y=Ku[b],u++}else y=Nt;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return r.error('The length argument to "array" must be a positive integer literal',2);w=e[2],u++}a=rr(y,w)}else a=Ku[p];const m=[];for(;ue.outputDefined())}serialize(){const e=this.type,r=[e.kind];if(e.kind==="array"){const a=e.itemType;if(a.kind==="string"||a.kind==="number"||a.kind==="boolean"){r.push(a.kind);const u=e.N;(typeof u=="number"||this.args.length>1)&&r.push(u)}}return r.concat(this.args.map(a=>a.serialize()))}}var so=Yu;class No{constructor(e){this.type=Ya,this.sections=e}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const a=e[1];if(!Array.isArray(a)&&typeof a=="object")return r.error("First argument must be an image or text section.");const u=[];let p=!1;for(let m=1;m<=e.length-1;++m){const y=e[m];if(p&&typeof y=="object"&&!Array.isArray(y)){p=!1;let w=null;if(y["font-scale"]&&(w=r.parse(y["font-scale"],1,at),!w))return null;let b=null;if(y["text-font"]&&(b=r.parse(y["text-font"],1,rr(Gt)),!b))return null;let A=null;if(y["text-color"]&&(A=r.parse(y["text-color"],1,Xi),!A))return null;const I=u[u.length-1];I.scale=w,I.font=b,I.textColor=A}else{const w=r.parse(e[m],1,Nt);if(!w)return null;const b=w.type.kind;if(b!=="string"&&b!=="value"&&b!=="null"&&b!=="resolvedImage")return r.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");p=!0,u.push({content:w,scale:null,font:null,textColor:null})}}return new No(u)}evaluate(e){return new Di(this.sections.map(r=>{const a=r.content.evaluate(e);return Pn(a)===us?new Hu("",a,null,null,null):new Hu(il(a),null,r.scale?r.scale.evaluate(e):null,r.font?r.font.evaluate(e).join(","):null,r.textColor?r.textColor.evaluate(e):null)}))}eachChild(e){for(const r of this.sections)e(r.content),r.scale&&e(r.scale),r.font&&e(r.font),r.textColor&&e(r.textColor)}outputDefined(){return!1}serialize(){const e=["format"];for(const r of this.sections){e.push(r.content.serialize());const a={};r.scale&&(a["font-scale"]=r.scale.serialize()),r.font&&(a["text-font"]=r.font.serialize()),r.textColor&&(a["text-color"]=r.textColor.serialize()),e.push(a)}return e}}class ac{constructor(e){this.type=us,this.input=e}static parse(e,r){if(e.length!==2)return r.error("Expected two arguments.");const a=r.parse(e[1],1,Gt);return a?new ac(a):r.error("No image name provided.")}evaluate(e){const r=this.input.evaluate(e),a=or.fromString(r);return a&&e.availableImages&&(a.available=e.availableImages.indexOf(r)>-1),a}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const Fg={"to-boolean":Ft,"to-color":Xi,"to-number":at,"to-string":Gt};class Ju{constructor(e,r){this.type=e,this.args=r}static parse(e,r){if(e.length<2)return r.error("Expected at least one argument.");const a=e[0];if((a==="to-boolean"||a==="to-string")&&e.length!==2)return r.error("Expected one argument.");const u=Fg[a],p=[];for(let m=1;m4?`Invalid rbga value ${JSON.stringify(r)}: expected an array containing either three or four numeric values.`:bp(r[0],r[1],r[2],r[3]),!a))return new Dn(r[0]/255,r[1]/255,r[2]/255,r[3])}throw new fi(a||`Could not parse color from value '${typeof r=="string"?r:String(JSON.stringify(r))}'`)}if(this.type.kind==="number"){let r=null;for(const a of this.args){if(r=a.evaluate(e),r===null)return 0;const u=Number(r);if(!isNaN(u))return u}throw new fi(`Could not convert ${JSON.stringify(r)} to number.`)}return this.type.kind==="formatted"?Di.fromString(il(this.args[0].evaluate(e))):this.type.kind==="resolvedImage"?or.fromString(il(this.args[0].evaluate(e))):il(this.args[0].evaluate(e))}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}serialize(){if(this.type.kind==="formatted")return new No([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind==="resolvedImage")return new ac(this.args[0]).serialize();const e=[`to-${this.type.kind}`];return this.eachChild(r=>{e.push(r.serialize())}),e}}var Ws=Ju;const jr=["Unknown","Point","LineString","Polygon"];var Qu=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&this.feature.id!==void 0?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?jr[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const n=this.featureDistanceData.center,e=this.featureDistanceData.scale,{x:r,y:a}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(r*e-n[0])+this.featureDistanceData.bearing[1]*(a*e-n[1])}return 0}parseColor(n){let e=this._parseColorCache[n];return e||(e=this._parseColorCache[n]=Dn.parse(n)),e}};class ds{constructor(e,r,a,u){this.name=e,this.type=r,this._evaluate=a,this.args=u}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(e=>e.serialize()))}static parse(e,r){const a=e[0],u=ds.definitions[a];if(!u)return r.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`,0);const p=Array.isArray(u)?u[0]:u.type,m=Array.isArray(u)?[[u[1],u[2]]]:u.overloads,y=m.filter(([b])=>!Array.isArray(b)||b.length===e.length-1);let w=null;for(const[b,A]of y){w=new oh(r.registry,r.path,null,r.scope);const I=[];let k=!1;for(let L=1;L{return k=I,Array.isArray(k)?`(${k.map(En).join(", ")})`:`(${En(k.type)}...)`;var k}).join(" | "),A=[];for(let I=1;I=e[2]||n[1]<=e[1]||n[3]>=e[3])}function ol(n,e){const r=(180+n[0])/360,a=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n[1]*Math.PI/360)))/360,u=Math.pow(2,e.z);return[Math.round(r*u*lo),Math.round(a*u*lo)]}function Ep(n,e,r){const a=n[0]-e[0],u=n[1]-e[1],p=n[0]-r[0],m=n[1]-r[1];return a*m-p*u==0&&a*p<=0&&u*m<=0}function cc(n,e){let r=!1;for(let m=0,y=e.length;m(a=n)[1]!=(p=w[b+1])[1]>a[1]&&a[0]<(p[0]-u[0])*(a[1]-u[1])/(p[1]-u[1])+u[0]&&(r=!r)}}var a,u,p;return r}function eh(n,e){for(let r=0;r0&&y<0||m<0&&y>0}function Xs(n,e,r){for(const b of r)for(let A=0;Ar[2]){const u=.5*a;let p=n[0]-r[0]>u?-a:r[0]-n[0]>u?a:0;p===0&&(p=n[0]-r[2]>u?-a:r[2]-n[0]>u?a:0),n[0]+=p}lc(e,n)}function Sp(n,e,r,a){const u=Math.pow(2,a.z)*lo,p=[a.x*lo,a.y*lo],m=[];if(!n)return m;for(const y of n)for(const w of y){const b=[w.x+p[0],w.y+p[1]];ih(b,e,r,u),m.push(b)}return m}function rh(n,e,r,a){const u=Math.pow(2,a.z)*lo,p=[a.x*lo,a.y*lo],m=[];if(!n)return m;for(const w of n){const b=[];for(const A of w){const I=[A.x+p[0],A.y+p[1]];lc(e,I),b.push(I)}m.push(b)}if(e[2]-e[0]<=u/2){(y=e)[0]=y[1]=1/0,y[2]=y[3]=-1/0;for(const w of m)for(const b of w)ih(b,e,r,u)}var y;return m}class Ks{constructor(e,r){this.type=Ft,this.geojson=e,this.geometries=r}static parse(e,r){if(e.length!==2)return r.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(nl(e[1])){const a=e[1];if(a.type==="FeatureCollection")for(let u=0;u{e&&!Ys(r)&&(e=!1)}),e}function co(n){if(n instanceof ao&&n.name==="feature-state")return!1;let e=!0;return n.eachChild(r=>{e&&!co(r)&&(e=!1)}),e}function ps(n,e){if(n instanceof ao&&e.indexOf(n.name)>=0)return!1;let r=!0;return n.eachChild(a=>{r&&!ps(a,e)&&(r=!1)}),r}class hc{constructor(e,r){this.type=r.type,this.name=e,this.boundExpression=r}static parse(e,r){if(e.length!==2||typeof e[1]!="string")return r.error("'var' expression requires exactly one string literal argument.");const a=e[1];return r.scope.has(a)?new hc(a,r.scope.get(a)):r.error(`Unknown variable "${a}". Make sure "${a}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var Ap=hc;class sl{constructor(e,r=[],a,u=new vp,p=[]){this.registry=e,this.path=r,this.key=r.map(m=>`[${m}]`).join(""),this.scope=u,this.errors=p,this.expectedType=a}parse(e,r,a,u,p={}){return r?this.concat(r,a,u)._parse(e,p):this._parse(e,p)}_parse(e,r){function a(u,p,m){return m==="assert"?new so(p,[u]):m==="coerce"?new Ws(p,[u]):u}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),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", []].');const u=e[0];if(typeof u!="string")return this.error(`Expression name must be a string, but found ${typeof u} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const p=this.registry[u];if(p){let m=p.parse(e,this);if(!m)return null;if(this.expectedType){const y=this.expectedType,w=m.type;if(y.kind!=="string"&&y.kind!=="number"&&y.kind!=="boolean"&&y.kind!=="object"&&y.kind!=="array"||w.kind!=="value")if(y.kind!=="color"&&y.kind!=="formatted"&&y.kind!=="resolvedImage"||w.kind!=="value"&&w.kind!=="string"){if(this.checkSubtype(y,w))return null}else m=a(m,y,r.typeAnnotation||"coerce");else m=a(m,y,r.typeAnnotation||"assert")}if(!(m instanceof hs)&&m.type.kind!=="resolvedImage"&&sh(m)){const y=new Qu;try{m=new hs(m.type,m.evaluate(y))}catch(w){return this.error(w.message),null}}return m}return this.error(`Unknown expression "${u}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,r,a){const u=typeof e=="number"?this.path.concat(e):this.path,p=a?this.scope.concat(a):this.scope;return new sl(this.registry,u,r||null,p,this.errors)}error(e,...r){const a=`${this.key}${r.map(u=>`[${u}]`).join("")}`;this.errors.push(new Ur(a,e))}checkSubtype(e,r){const a=oo(e,r);return a&&this.error(a),a}}var oh=sl;function sh(n){if(n instanceof Ap)return sh(n.boundExpression);if(n instanceof ao&&n.name==="error"||n instanceof rl||n instanceof uc)return!1;const e=n instanceof Ws||n instanceof so;let r=!0;return n.eachChild(a=>{r=e?r&&sh(a):r&&a instanceof hs}),!!r&&Ys(n)&&ps(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}function dc(n,e){const r=n.length-1;let a,u,p=0,m=r,y=0;for(;p<=m;)if(y=Math.floor((p+m)/2),a=n[y],u=n[y+1],a<=e){if(y===r||ee))throw new fi("Input is not a number.");m=y-1}return 0}class pc{constructor(e,r,a){this.type=e,this.input=r,this.labels=[],this.outputs=[];for(const[u,p]of a)this.labels.push(u),this.outputs.push(p)}static parse(e,r){if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");const a=r.parse(e[1],1,at);if(!a)return null;const u=[];let p=null;r.expectedType&&r.expectedType.kind!=="value"&&(p=r.expectedType);for(let m=1;m=y)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',b);const I=r.parse(w,A,p);if(!I)return null;p=p||I.type,u.push([y,I])}return new pc(p,a,u)}evaluate(e){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(e);const u=this.input.evaluate(e);if(u<=r[0])return a[0].evaluate(e);const p=r.length;return u>=r[p-1]?a[p-1].evaluate(e):a[dc(r,u)].evaluate(e)}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}serialize(){const e=["step",this.input.serialize()];for(let r=0;r0&&e.push(this.labels[r]),e.push(this.outputs[r].serialize());return e}}var ah=pc;function Zt(n,e,r){return n*(1-r)+e*r}var al=Object.freeze({__proto__:null,array:function(n,e,r){return n.map((a,u)=>Zt(a,e[u],r))},color:function(n,e,r){return new Dn(Zt(n.r,e.r,r),Zt(n.g,e.g,r),Zt(n.b,e.b,r),Zt(n.a,e.a,r))},number:Zt});const Cp=.95047,lh=1.08883,Ip=4/29,fs=6/29,ch=3*fs*fs,Ug=fs*fs*fs,jg=Math.PI/180,Vg=180/Math.PI;function uh(n){return n>Ug?Math.pow(n,1/3):n/ch+Ip}function hh(n){return n>fs?n*n*n:ch*(n-Ip)}function dh(n){return 255*(n<=.0031308?12.92*n:1.055*Math.pow(n,1/2.4)-.055)}function fc(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Mp(n){const e=fc(n.r),r=fc(n.g),a=fc(n.b),u=uh((.4124564*e+.3575761*r+.1804375*a)/Cp),p=uh((.2126729*e+.7151522*r+.072175*a)/1);return{l:116*p-16,a:500*(u-p),b:200*(p-uh((.0193339*e+.119192*r+.9503041*a)/lh)),alpha:n.a}}function kp(n){let e=(n.l+16)/116,r=isNaN(n.a)?e:e+n.a/500,a=isNaN(n.b)?e:e-n.b/200;return e=1*hh(e),r=Cp*hh(r),a=lh*hh(a),new Dn(dh(3.2404542*r-1.5371385*e-.4985314*a),dh(-.969266*r+1.8760108*e+.041556*a),dh(.0556434*r-.2040259*e+1.0572252*a),n.alpha)}function Gg(n,e,r){const a=e-n;return n+r*(a>180||a<-180?a-360*Math.round(a/360):a)}const ll={forward:Mp,reverse:kp,interpolate:function(n,e,r){return{l:Zt(n.l,e.l,r),a:Zt(n.a,e.a,r),b:Zt(n.b,e.b,r),alpha:Zt(n.alpha,e.alpha,r)}}},Js={forward:function(n){const{l:e,a:r,b:a}=Mp(n),u=Math.atan2(a,r)*Vg;return{h:u<0?u+360:u,c:Math.sqrt(r*r+a*a),l:e,alpha:n.a}},reverse:function(n){const e=n.h*jg,r=n.c;return kp({l:n.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:n.alpha})},interpolate:function(n,e,r){return{h:Gg(n.h,e.h,r),c:Zt(n.c,e.c,r),l:Zt(n.l,e.l,r),alpha:Zt(n.alpha,e.alpha,r)}}};var ph=Object.freeze({__proto__:null,hcl:Js,lab:ll});class cl{constructor(e,r,a,u,p){this.type=e,this.operator=r,this.interpolation=a,this.input=u,this.labels=[],this.outputs=[];for(const[m,y]of p)this.labels.push(m),this.outputs.push(y)}static interpolationFactor(e,r,a,u){let p=0;if(e.name==="exponential")p=fh(r,e.base,a,u);else if(e.name==="linear")p=fh(r,1,a,u);else if(e.name==="cubic-bezier"){const m=e.controlPoints;p=new tt(m[0],m[1],m[2],m[3]).solve(fh(r,1,a,u))}return p}static parse(e,r){let[a,u,p,...m]=e;if(!Array.isArray(u)||u.length===0)return r.error("Expected an interpolation type expression.",1);if(u[0]==="linear")u={name:"linear"};else if(u[0]==="exponential"){const b=u[1];if(typeof b!="number")return r.error("Exponential interpolation requires a numeric base.",1,1);u={name:"exponential",base:b}}else{if(u[0]!=="cubic-bezier")return r.error(`Unknown interpolation type ${String(u[0])}`,1,0);{const b=u.slice(1);if(b.length!==4||b.some(A=>typeof A!="number"||A<0||A>1))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);u={name:"cubic-bezier",controlPoints:b}}}if(e.length-1<4)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(p=r.parse(p,2,at),!p)return null;const y=[];let w=null;a==="interpolate-hcl"||a==="interpolate-lab"?w=Xi:r.expectedType&&r.expectedType.kind!=="value"&&(w=r.expectedType);for(let b=0;b=A)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',k);const R=r.parse(I,L,w);if(!R)return null;w=w||R.type,y.push([A,R])}return w.kind==="number"||w.kind==="color"||w.kind==="array"&&w.itemType.kind==="number"&&typeof w.N=="number"?new cl(w,a,u,p,y):r.error(`Type ${En(w)} is not interpolatable.`)}evaluate(e){const r=this.labels,a=this.outputs;if(r.length===1)return a[0].evaluate(e);const u=this.input.evaluate(e);if(u<=r[0])return a[0].evaluate(e);const p=r.length;if(u>=r[p-1])return a[p-1].evaluate(e);const m=dc(r,u),y=cl.interpolationFactor(this.interpolation,u,r[m],r[m+1]),w=a[m].evaluate(e),b=a[m+1].evaluate(e);return this.operator==="interpolate"?al[this.type.kind.toLowerCase()](w,b,y):this.operator==="interpolate-hcl"?Js.reverse(Js.interpolate(Js.forward(w),Js.forward(b),y)):ll.reverse(ll.interpolate(ll.forward(w),ll.forward(b),y))}eachChild(e){e(this.input);for(const r of this.outputs)e(r)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}serialize(){let e;e=this.interpolation.name==="linear"?["linear"]:this.interpolation.name==="exponential"?this.interpolation.base===1?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const r=[this.operator,e,this.input.serialize()];for(let a=0;aoo(u,y.type));return new mc(m?Nt:a,p)}evaluate(e){let r,a=null,u=0;for(const p of this.args){if(u++,a=p.evaluate(e),a&&a instanceof or&&!a.available&&(r||(r=a),a=null,u===this.args.length))return r;if(a!==null)break}return a}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}serialize(){const e=["coalesce"];return this.eachChild(r=>{e.push(r.serialize())}),e}}var mh=mc;class gc{constructor(e,r){this.type=r.type,this.bindings=[].concat(e),this.result=r}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const r of this.bindings)e(r[1]);e(this.result)}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const a=[];for(let p=1;p=a.length)throw new fi(`Array index out of bounds: ${r} > ${a.length-1}.`);if(r!==Math.floor(r))throw new fi(`Array index must be an integer, but found ${r} instead.`);return a[r]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var $g=gh;class _h{constructor(e,r){this.type=Ft,this.needle=e,this.haystack=r}static parse(e,r){if(e.length!==3)return r.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,Nt);return a&&u?Ja(a.type,[Ft,Gt,at,qs,Nt])?new _h(a,u):r.error(`Expected first argument to be of type boolean, string, number or null, but found ${En(a.type)} instead`):null}evaluate(e){const r=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(a==null)return!1;if(!Qa(r,["boolean","string","number","null"]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${En(Pn(r))} instead.`);if(!Qa(a,["string","array"]))throw new fi(`Expected second argument to be of type array or string, but found ${En(Pn(a))} instead.`);return a.indexOf(r)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var _c=_h;class ul{constructor(e,r,a){this.type=at,this.needle=e,this.haystack=r,this.fromIndex=a}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,Nt);if(!a||!u)return null;if(!Ja(a.type,[Ft,Gt,at,qs,Nt]))return r.error(`Expected first argument to be of type boolean, string, number or null, but found ${En(a.type)} instead`);if(e.length===4){const p=r.parse(e[3],3,at);return p?new ul(a,u,p):null}return new ul(a,u)}evaluate(e){const r=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(!Qa(r,["boolean","string","number","null"]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${En(Pn(r))} instead.`);if(!Qa(a,["string","array"]))throw new fi(`Expected second argument to be of type array or string, but found ${En(Pn(a))} instead.`);if(this.fromIndex){const u=this.fromIndex.evaluate(e);return a.indexOf(r,u)}return a.indexOf(r)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}serialize(){if(this.fromIndex!=null&&this.fromIndex!==void 0){const e=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),e]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var zp=ul;class yh{constructor(e,r,a,u,p,m){this.inputType=e,this.type=r,this.input=a,this.cases=u,this.outputs=p,this.otherwise=m}static parse(e,r){if(e.length<5)return r.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return r.error("Expected an even number of arguments.");let a,u;r.expectedType&&r.expectedType.kind!=="value"&&(u=r.expectedType);const p={},m=[];for(let b=2;bNumber.MAX_SAFE_INTEGER)return k.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof R=="number"&&Math.floor(R)!==R)return k.error("Numeric branch labels must be integer values.");if(a){if(k.checkSubtype(a,Pn(R)))return null}else a=Pn(R);if(p[String(R)]!==void 0)return k.error("Branch labels must be unique.");p[String(R)]=m.length}const L=r.parse(I,b,u);if(!L)return null;u=u||L.type,m.push(L)}const y=r.parse(e[1],1,Nt);if(!y)return null;const w=r.parse(e[e.length-1],e.length-1,u);return w?y.type.kind!=="value"&&r.concat(1).checkSubtype(a,y.type)?null:new yh(a,u,y,p,m,w):null}evaluate(e){const r=this.input.evaluate(e);return(Pn(r)===this.inputType&&this.outputs[this.cases[r]]||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()}serialize(){const e=["match",this.input.serialize()],r=Object.keys(this.cases).sort(),a=[],u={};for(const m of r){const y=u[this.cases[m]];y===void 0?(u[this.cases[m]]=a.length,a.push([this.cases[m],[m]])):a[y][1].push(m)}const p=m=>this.inputType.kind==="number"?Number(m):m;for(const[m,y]of a)e.push(y.length===1?p(y[0]):y.map(p)),e.push(this.outputs[m].serialize());return e.push(this.otherwise.serialize()),e}}var qg=yh;class vh{constructor(e,r,a){this.type=e,this.branches=r,this.otherwise=a}static parse(e,r){if(e.length<4)return r.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return r.error("Expected an odd number of arguments.");let a;r.expectedType&&r.expectedType.kind!=="value"&&(a=r.expectedType);const u=[];for(let m=1;mr.outputDefined())&&this.otherwise.outputDefined()}serialize(){const e=["case"];return this.eachChild(r=>{e.push(r.serialize())}),e}}var Lp=vh;class hl{constructor(e,r,a,u){this.type=e,this.input=r,this.beginIndex=a,this.endIndex=u}static parse(e,r){if(e.length<=2||e.length>=5)return r.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);const a=r.parse(e[1],1,Nt),u=r.parse(e[2],2,at);if(!a||!u)return null;if(!Ja(a.type,[rr(Nt),Gt,Nt]))return r.error(`Expected first argument to be of type array or string, but found ${En(a.type)} instead`);if(e.length===4){const p=r.parse(e[3],3,at);return p?new hl(a.type,a,u,p):null}return new hl(a.type,a,u)}evaluate(e){const r=this.input.evaluate(e),a=this.beginIndex.evaluate(e);if(!Qa(r,["string","array"]))throw new fi(`Expected first argument to be of type array or string, but found ${En(Pn(r))} instead.`);if(this.endIndex){const u=this.endIndex.evaluate(e);return r.slice(a,u)}return r.slice(a)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}serialize(){if(this.endIndex!=null&&this.endIndex!==void 0){const e=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),e]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Rp=hl;function yc(n,e){return n==="=="||n==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function Dp(n,e,r,a){return a.compare(e,r)===0}function Qs(n,e,r){const a=n!=="=="&&n!=="!=";return class YA{constructor(p,m,y){this.type=Ft,this.lhs=p,this.rhs=m,this.collator=y,this.hasUntypedArgument=p.type.kind==="value"||m.type.kind==="value"}static parse(p,m){if(p.length!==3&&p.length!==4)return m.error("Expected two or three arguments.");const y=p[0];let w=m.parse(p[1],1,Nt);if(!w)return null;if(!yc(y,w.type))return m.concat(1).error(`"${y}" comparisons are not supported for type '${En(w.type)}'.`);let b=m.parse(p[2],2,Nt);if(!b)return null;if(!yc(y,b.type))return m.concat(2).error(`"${y}" comparisons are not supported for type '${En(b.type)}'.`);if(w.type.kind!==b.type.kind&&w.type.kind!=="value"&&b.type.kind!=="value")return m.error(`Cannot compare types '${En(w.type)}' and '${En(b.type)}'.`);a&&(w.type.kind==="value"&&b.type.kind!=="value"?w=new so(b.type,[w]):w.type.kind!=="value"&&b.type.kind==="value"&&(b=new so(w.type,[b])));let A=null;if(p.length===4){if(w.type.kind!=="string"&&b.type.kind!=="string"&&w.type.kind!=="value"&&b.type.kind!=="value")return m.error("Cannot use collator to compare non-string types.");if(A=m.parse(p[3],3,Ki),!A)return null}return new YA(w,b,A)}evaluate(p){const m=this.lhs.evaluate(p),y=this.rhs.evaluate(p);if(a&&this.hasUntypedArgument){const w=Pn(m),b=Pn(y);if(w.kind!==b.kind||w.kind!=="string"&&w.kind!=="number")throw new fi(`Expected arguments for "${n}" to be (string, string) or (number, number), but found (${w.kind}, ${b.kind}) instead.`)}if(this.collator&&!a&&this.hasUntypedArgument){const w=Pn(m),b=Pn(y);if(w.kind!=="string"||b.kind!=="string")return e(p,m,y)}return this.collator?r(p,m,y,this.collator.evaluate(p)):e(p,m,y)}eachChild(p){p(this.lhs),p(this.rhs),this.collator&&p(this.collator)}outputDefined(){return!0}serialize(){const p=[n];return this.eachChild(m=>{p.push(m.serialize())}),p}}}const Zg=Qs("==",function(n,e,r){return e===r},Dp),Wg=Qs("!=",function(n,e,r){return e!==r},function(n,e,r,a){return!Dp(0,e,r,a)}),Hg=Qs("<",function(n,e,r){return e",function(n,e,r){return e>r},function(n,e,r,a){return a.compare(e,r)>0}),Kg=Qs("<=",function(n,e,r){return e<=r},function(n,e,r,a){return a.compare(e,r)<=0}),Op=Qs(">=",function(n,e,r){return e>=r},function(n,e,r,a){return a.compare(e,r)>=0});class vc{constructor(e,r,a,u,p,m){this.type=Gt,this.number=e,this.locale=r,this.currency=a,this.unit=u,this.minFractionDigits=p,this.maxFractionDigits=m}static parse(e,r){if(e.length!==3)return r.error("Expected two arguments.");const a=r.parse(e[1],1,at);if(!a)return null;const u=e[2];if(typeof u!="object"||Array.isArray(u))return r.error("NumberFormat options argument must be an object.");let p=null;if(u.locale&&(p=r.parse(u.locale,1,Gt),!p))return null;let m=null;if(u.currency&&(m=r.parse(u.currency,1,Gt),!m))return null;let y=null;if(u.unit&&(y=r.parse(u.unit,1,Gt),!y))return null;let w=null;if(u["min-fraction-digits"]&&(w=r.parse(u["min-fraction-digits"],1,at),!w))return null;let b=null;return u["max-fraction-digits"]&&(b=r.parse(u["max-fraction-digits"],1,at),!b)?null:new vc(a,p,m,y,w,b)}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!1}serialize(){const e={};return this.locale&&(e.locale=this.locale.serialize()),this.currency&&(e.currency=this.currency.serialize()),this.unit&&(e.unit=this.unit.serialize()),this.minFractionDigits&&(e["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(e["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),e]}}class ea{constructor(e){this.type=at,this.input=e}static parse(e,r){if(e.length!==2)return r.error(`Expected 1 argument, but found ${e.length-1} instead.`);const a=r.parse(e[1],1);return a?a.type.kind!=="array"&&a.type.kind!=="string"&&a.type.kind!=="value"?r.error(`Expected argument of type string or array, but found ${En(a.type)} instead.`):new ea(a):null}evaluate(e){const r=this.input.evaluate(e);if(typeof r=="string"||Array.isArray(r))return r.length;throw new fi(`Expected value to be of type string or array, but found ${En(Pn(r))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){const e=["length"];return this.eachChild(r=>{e.push(r.serialize())}),e}}const Bp={"==":Zg,"!=":Wg,">":Xg,"<":Hg,">=":Op,"<=":Kg,array:so,at:$g,boolean:so,case:Lp,coalesce:mh,collator:rl,format:No,image:ac,in:_c,"index-of":zp,interpolate:Vr,"interpolate-hcl":Vr,"interpolate-lab":Vr,length:ea,let:Pp,literal:hs,match:qg,number:so,"number-format":vc,object:so,slice:Rp,step:ah,string:so,"to-boolean":Ws,"to-color":Ws,"to-number":Ws,"to-string":Ws,var:Ap,within:uc};function Fp(n,[e,r,a,u]){e=e.evaluate(n),r=r.evaluate(n),a=a.evaluate(n);const p=u?u.evaluate(n):1,m=bp(e,r,a,p);if(m)throw new fi(m);return new Dn(e/255*p,r/255*p,a/255*p,p)}function uo(n,e){return n in e}function xc(n,e){const r=e[n];return r===void 0?null:r}function sr(n){return{type:n}}ao.register(Bp,{error:[{kind:"error"},[Gt],(n,[e])=>{throw new fi(e.evaluate(n))}],typeof:[Gt,[Nt],(n,[e])=>En(Pn(e.evaluate(n)))],"to-rgba":[rr(at,4),[Xi],(n,[e])=>e.evaluate(n).toArray()],rgb:[Xi,[at,at,at],Fp],rgba:[Xi,[at,at,at,at],Fp],has:{type:Ft,overloads:[[[Gt],(n,[e])=>uo(e.evaluate(n),n.properties())],[[Gt,br],(n,[e,r])=>uo(e.evaluate(n),r.evaluate(n))]]},get:{type:Nt,overloads:[[[Gt],(n,[e])=>xc(e.evaluate(n),n.properties())],[[Gt,br],(n,[e,r])=>xc(e.evaluate(n),r.evaluate(n))]]},"feature-state":[Nt,[Gt],(n,[e])=>xc(e.evaluate(n),n.featureState||{})],properties:[br,[],n=>n.properties()],"geometry-type":[Gt,[],n=>n.geometryType()],id:[Nt,[],n=>n.id()],zoom:[at,[],n=>n.globals.zoom],pitch:[at,[],n=>n.globals.pitch||0],"distance-from-center":[at,[],n=>n.distanceFromCenter()],"heatmap-density":[at,[],n=>n.globals.heatmapDensity||0],"line-progress":[at,[],n=>n.globals.lineProgress||0],"sky-radial-progress":[at,[],n=>n.globals.skyRadialProgress||0],accumulated:[Nt,[],n=>n.globals.accumulated===void 0?null:n.globals.accumulated],"+":[at,sr(at),(n,e)=>{let r=0;for(const a of e)r+=a.evaluate(n);return r}],"*":[at,sr(at),(n,e)=>{let r=1;for(const a of e)r*=a.evaluate(n);return r}],"-":{type:at,overloads:[[[at,at],(n,[e,r])=>e.evaluate(n)-r.evaluate(n)],[[at],(n,[e])=>-e.evaluate(n)]]},"/":[at,[at,at],(n,[e,r])=>e.evaluate(n)/r.evaluate(n)],"%":[at,[at,at],(n,[e,r])=>e.evaluate(n)%r.evaluate(n)],ln2:[at,[],()=>Math.LN2],pi:[at,[],()=>Math.PI],e:[at,[],()=>Math.E],"^":[at,[at,at],(n,[e,r])=>Math.pow(e.evaluate(n),r.evaluate(n))],sqrt:[at,[at],(n,[e])=>Math.sqrt(e.evaluate(n))],log10:[at,[at],(n,[e])=>Math.log(e.evaluate(n))/Math.LN10],ln:[at,[at],(n,[e])=>Math.log(e.evaluate(n))],log2:[at,[at],(n,[e])=>Math.log(e.evaluate(n))/Math.LN2],sin:[at,[at],(n,[e])=>Math.sin(e.evaluate(n))],cos:[at,[at],(n,[e])=>Math.cos(e.evaluate(n))],tan:[at,[at],(n,[e])=>Math.tan(e.evaluate(n))],asin:[at,[at],(n,[e])=>Math.asin(e.evaluate(n))],acos:[at,[at],(n,[e])=>Math.acos(e.evaluate(n))],atan:[at,[at],(n,[e])=>Math.atan(e.evaluate(n))],min:[at,sr(at),(n,e)=>Math.min(...e.map(r=>r.evaluate(n)))],max:[at,sr(at),(n,e)=>Math.max(...e.map(r=>r.evaluate(n)))],abs:[at,[at],(n,[e])=>Math.abs(e.evaluate(n))],round:[at,[at],(n,[e])=>{const r=e.evaluate(n);return r<0?-Math.round(-r):Math.round(r)}],floor:[at,[at],(n,[e])=>Math.floor(e.evaluate(n))],ceil:[at,[at],(n,[e])=>Math.ceil(e.evaluate(n))],"filter-==":[Ft,[Gt,Nt],(n,[e,r])=>n.properties()[e.value]===r.value],"filter-id-==":[Ft,[Nt],(n,[e])=>n.id()===e.value],"filter-type-==":[Ft,[Gt],(n,[e])=>n.geometryType()===e.value],"filter-<":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a{const r=n.id(),a=e.value;return typeof r==typeof a&&r":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a>u}],"filter-id->":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r>a}],"filter-<=":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a<=u}],"filter-id-<=":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r<=a}],"filter->=":[Ft,[Gt,Nt],(n,[e,r])=>{const a=n.properties()[e.value],u=r.value;return typeof a==typeof u&&a>=u}],"filter-id->=":[Ft,[Nt],(n,[e])=>{const r=n.id(),a=e.value;return typeof r==typeof a&&r>=a}],"filter-has":[Ft,[Nt],(n,[e])=>e.value in n.properties()],"filter-has-id":[Ft,[],n=>n.id()!==null&&n.id()!==void 0],"filter-type-in":[Ft,[rr(Gt)],(n,[e])=>e.value.indexOf(n.geometryType())>=0],"filter-id-in":[Ft,[rr(Nt)],(n,[e])=>e.value.indexOf(n.id())>=0],"filter-in-small":[Ft,[Gt,rr(Nt)],(n,[e,r])=>r.value.indexOf(n.properties()[e.value])>=0],"filter-in-large":[Ft,[Gt,rr(Nt)],(n,[e,r])=>function(a,u,p,m){for(;p<=m;){const y=p+m>>1;if(u[y]===a)return!0;u[y]>a?m=y-1:p=y+1}return!1}(n.properties()[e.value],r.value,0,r.value.length-1)],all:{type:Ft,overloads:[[[Ft,Ft],(n,[e,r])=>e.evaluate(n)&&r.evaluate(n)],[sr(Ft),(n,e)=>{for(const r of e)if(!r.evaluate(n))return!1;return!0}]]},any:{type:Ft,overloads:[[[Ft,Ft],(n,[e,r])=>e.evaluate(n)||r.evaluate(n)],[sr(Ft),(n,e)=>{for(const r of e)if(r.evaluate(n))return!0;return!1}]]},"!":[Ft,[Ft],(n,[e])=>!e.evaluate(n)],"is-supported-script":[Ft,[Gt],(n,[e])=>{const r=n.globals&&n.globals.isSupportedScript;return!r||r(e.evaluate(n))}],upcase:[Gt,[Gt],(n,[e])=>e.evaluate(n).toUpperCase()],downcase:[Gt,[Gt],(n,[e])=>e.evaluate(n).toLowerCase()],concat:[Gt,sr(Nt),(n,e)=>e.map(r=>il(r.evaluate(n))).join("")],"resolved-locale":[Gt,[Ki],(n,[e])=>e.evaluate(n).resolvedLocale()]});var dl=Bp;function Np(n){return{result:"success",value:n}}function ms(n){return{result:"error",value:n}}function ta(n){return n["property-type"]==="data-driven"}function wc(n){return!!n.expression&&n.expression.parameters.indexOf("zoom")>-1}function bc(n){return!!n.expression&&n.expression.interpolated}function Wt(n){return n instanceof Number?"number":n instanceof String?"string":n instanceof Boolean?"boolean":Array.isArray(n)?"array":n===null?"null":typeof n}function pl(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Up(n){return n}function Ec(n,e){const r=e.type==="color",a=n.stops&&typeof n.stops[0][0]=="object",u=a||!(a||n.property!==void 0),p=n.type||(bc(e)?"exponential":"interval");if(r&&((n=ro({},n)).stops&&(n.stops=n.stops.map(b=>[b[0],Dn.parse(b[1])])),n.default=Dn.parse(n.default?n.default:e.default)),n.colorSpace&&n.colorSpace!=="rgb"&&!ph[n.colorSpace])throw new Error(`Unknown color space: ${n.colorSpace}`);let m,y,w;if(p==="exponential")m=ho;else if(p==="interval")m=Tc;else if(p==="categorical"){m=jp,y=Object.create(null);for(const b of n.stops)y[b[0]]=b[1];w=typeof n.stops[0][0]}else{if(p!=="identity")throw new Error(`Unknown function type "${p}"`);m=Vp}if(a){const b={},A=[];for(let L=0;LL[0]),evaluate:({zoom:L},R)=>ho({stops:I,base:n.base},e,L).evaluate(L,R)}}if(u){const b=p==="exponential"?{name:"exponential",base:n.base!==void 0?n.base:1}:null;return{kind:"camera",interpolationType:b,interpolationFactor:Vr.interpolationFactor.bind(void 0,b),zoomStops:n.stops.map(A=>A[0]),evaluate:({zoom:A})=>m(n,e,A,y,w)}}return{kind:"source",evaluate(b,A){const I=A&&A.properties?A.properties[n.property]:void 0;return I===void 0?na(n.default,e.default):m(n,e,I,y,w)}}}function na(n,e,r){return n!==void 0?n:e!==void 0?e:r!==void 0?r:void 0}function jp(n,e,r,a,u){return na(typeof r===u?a[r]:void 0,n.default,e.default)}function Tc(n,e,r){if(Wt(r)!=="number")return na(n.default,e.default);const a=n.stops.length;if(a===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[a-1][0])return n.stops[a-1][1];const u=dc(n.stops.map(p=>p[0]),r);return n.stops[u][1]}function ho(n,e,r){const a=n.base!==void 0?n.base:1;if(Wt(r)!=="number")return na(n.default,e.default);const u=n.stops.length;if(u===1||r<=n.stops[0][0])return n.stops[0][1];if(r>=n.stops[u-1][0])return n.stops[u-1][1];const p=dc(n.stops.map(A=>A[0]),r),m=function(A,I,k,L){const R=L-k,B=A-k;return R===0?0:I===1?B/R:(Math.pow(I,B)-1)/(Math.pow(I,R)-1)}(r,a,n.stops[p][0],n.stops[p+1][0]),y=n.stops[p][1],w=n.stops[p+1][1];let b=al[e.type]||Up;if(n.colorSpace&&n.colorSpace!=="rgb"){const A=ph[n.colorSpace];b=(I,k)=>A.reverse(A.interpolate(A.forward(I),A.forward(k),m))}return typeof y.evaluate=="function"?{evaluate(...A){const I=y.evaluate.apply(void 0,A),k=w.evaluate.apply(void 0,A);if(I!==void 0&&k!==void 0)return b(I,k,m)}}:b(y,w,m)}function Vp(n,e,r){return e.type==="color"?r=Dn.parse(r):e.type==="formatted"?r=Di.fromString(r.toString()):e.type==="resolvedImage"?r=or.fromString(r.toString()):Wt(r)===e.type||e.type==="enum"&&e.values[r]||(r=void 0),na(r,n.default,e.default)}class Sc{constructor(e,r){this.expression=e,this._warningHistory={},this._evaluator=new Qu,this._defaultValue=r?function(a){return a.type==="color"&&(pl(a.default)||Array.isArray(a.default))?new Dn(0,0,0,0):a.type==="color"?Dn.parse(a.default)||null:a.default===void 0?null:a.default}(r):null,this._enumValues=r&&r.type==="enum"?r.values:null}evaluateWithoutErrorHandling(e,r,a,u,p,m,y,w){return this._evaluator.globals=e,this._evaluator.feature=r,this._evaluator.featureState=a,this._evaluator.canonical=u||null,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m,this._evaluator.featureTileCoord=y||null,this._evaluator.featureDistanceData=w||null,this.expression.evaluate(this._evaluator)}evaluate(e,r,a,u,p,m,y,w){this._evaluator.globals=e,this._evaluator.feature=r||null,this._evaluator.featureState=a||null,this._evaluator.canonical=u||null,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m||null,this._evaluator.featureTileCoord=y||null,this._evaluator.featureDistanceData=w||null;try{const b=this.expression.evaluate(this._evaluator);if(b==null||typeof b=="number"&&b!=b)return this._defaultValue;if(this._enumValues&&!(b in this._enumValues))throw new fi(`Expected value to be one of ${Object.keys(this._enumValues).map(A=>JSON.stringify(A)).join(", ")}, but found ${JSON.stringify(b)} instead.`);return b}catch(b){return this._warningHistory[b.message]||(this._warningHistory[b.message]=!0,typeof console<"u"&&console.warn(b.message)),this._defaultValue}}}function ia(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="string"&&n[0]in dl}function ra(n,e){const r=new oh(dl,[],e?function(u){const p={color:Xi,string:Gt,number:at,enum:Gt,boolean:Ft,formatted:Ya,resolvedImage:us};return u.type==="array"?rr(p[u.value]||Nt,u.length):p[u.type]}(e):void 0),a=r.parse(n,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return a?Np(new Sc(a,e)):ms(r.errors)}class xh{constructor(e,r){this.kind=e,this._styleExpression=r,this.isStateDependent=e!=="constant"&&!co(r.expression)}evaluateWithoutErrorHandling(e,r,a,u,p,m){return this._styleExpression.evaluateWithoutErrorHandling(e,r,a,u,p,m)}evaluate(e,r,a,u,p,m){return this._styleExpression.evaluate(e,r,a,u,p,m)}}class fl{constructor(e,r,a,u){this.kind=e,this.zoomStops=a,this._styleExpression=r,this.isStateDependent=e!=="camera"&&!co(r.expression),this.interpolationType=u}evaluateWithoutErrorHandling(e,r,a,u,p,m){return this._styleExpression.evaluateWithoutErrorHandling(e,r,a,u,p,m)}evaluate(e,r,a,u,p,m){return this._styleExpression.evaluate(e,r,a,u,p,m)}interpolationFactor(e,r,a){return this.interpolationType?Vr.interpolationFactor(this.interpolationType,e,r,a):0}}function ml(n,e){if((n=ra(n,e)).result==="error")return n;const r=n.value.expression,a=Ys(r);if(!a&&!ta(e))return ms([new Ur("","data expressions not supported")]);const u=ps(r,["zoom","pitch","distance-from-center"]);if(!u&&!wc(e))return ms([new Ur("","zoom expressions not supported")]);const p=Cc(r);return p||u?p instanceof Ur?ms([p]):p instanceof Vr&&!bc(e)?ms([new Ur("",'"interpolate" expressions cannot be used with this property')]):Np(p?new fl(a?"camera":"composite",n.value,p.labels,p instanceof Vr?p.interpolation:void 0):new xh(a?"constant":"source",n.value)):ms([new Ur("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Ac{constructor(e,r){this._parameters=e,this._specification=r,ro(this,Ec(this._parameters,this._specification))}static deserialize(e){return new Ac(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function Cc(n){let e=null;if(n instanceof Pp)e=Cc(n.result);else if(n instanceof mh){for(const r of n.args)if(e=Cc(r),e)break}else(n instanceof ah||n instanceof Vr)&&n.input instanceof ao&&n.input.name==="zoom"&&(e=n);return e instanceof Ur||n.eachChild(r=>{const a=Cc(r);a instanceof Ur?e=a:!e&&a?e=new Ur("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&a&&e!==a&&(e=new Ur("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}class ct{constructor(e,r,a,u){this.message=(e?`${e}: `:"")+a,u&&(this.identifier=u),r!=null&&r.__line__&&(this.line=r.__line__)}}function Er(n){const e=n.key,r=n.value,a=n.valueSpec||{},u=n.objectElementValidators||{},p=n.style,m=n.styleSpec;let y=[];const w=Wt(r);if(w!=="object")return[new ct(e,r,`object expected, ${w} found`)];for(const b in r){const A=b.split(".")[0];let I;u[A]?I=u[A]:a[A]?I=xi:u["*"]?I=u["*"]:a["*"]&&(I=xi),I?y=y.concat(I({key:(e&&`${e}.`)+b,value:r[b],valueSpec:a[A]||a["*"],style:p,styleSpec:m,object:r,objectKey:b},r)):y.push(new ct(e,r[b],`unknown property "${b}"`))}for(const b in a)u[b]||a[b].required&&a[b].default===void 0&&r[b]===void 0&&y.push(new ct(e,r,`missing required property "${b}"`));return y}function Gp(n){const e=n.value,r=n.valueSpec,a=n.style,u=n.styleSpec,p=n.key,m=n.arrayElementValidator||xi;if(Wt(e)!=="array")return[new ct(p,e,`array expected, ${Wt(e)} found`)];if(r.length&&e.length!==r.length)return[new ct(p,e,`array length ${r.length} expected, length ${e.length} found`)];if(r["min-length"]&&e.lengthp)return[new ct(e,r,`${r} is greater than the maximum value ${p}`)]}return[]}function _l(n){const e=n.valueSpec,r=Nn(n.value.type);let a,u,p,m={};const y=r!=="categorical"&&n.value.property===void 0,w=!y,b=Wt(n.value.stops)==="array"&&Wt(n.value.stops[0])==="array"&&Wt(n.value.stops[0][0])==="object",A=Er({key:n.key,value:n.value,valueSpec:n.styleSpec.function,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{stops:function(L){if(r==="identity")return[new ct(L.key,L.value,'identity function may not have a "stops" property')];let R=[];const B=L.value;return R=R.concat(Gp({key:L.key,value:B,valueSpec:L.valueSpec,style:L.style,styleSpec:L.styleSpec,arrayElementValidator:I})),Wt(B)==="array"&&B.length===0&&R.push(new ct(L.key,B,"array must have at least one stop")),R},default:function(L){return xi({key:L.key,value:L.value,valueSpec:e,style:L.style,styleSpec:L.styleSpec})}}});return r==="identity"&&y&&A.push(new ct(n.key,n.value,'missing required property "property"')),r==="identity"||n.value.stops||A.push(new ct(n.key,n.value,'missing required property "stops"')),r==="exponential"&&n.valueSpec.expression&&!bc(n.valueSpec)&&A.push(new ct(n.key,n.value,"exponential functions not supported")),n.styleSpec.$version>=8&&(w&&!ta(n.valueSpec)?A.push(new ct(n.key,n.value,"property functions not supported")):y&&!wc(n.valueSpec)&&A.push(new ct(n.key,n.value,"zoom functions not supported"))),r!=="categorical"&&!b||n.value.property!==void 0||A.push(new ct(n.key,n.value,'"property" property is required')),A;function I(L){let R=[];const B=L.value,V=L.key;if(Wt(B)!=="array")return[new ct(V,B,`array expected, ${Wt(B)} found`)];if(B.length!==2)return[new ct(V,B,`array length 2 expected, length ${B.length} found`)];if(b){if(Wt(B[0])!=="object")return[new ct(V,B,`object expected, ${Wt(B[0])} found`)];if(B[0].zoom===void 0)return[new ct(V,B,"object stop key must have zoom")];if(B[0].value===void 0)return[new ct(V,B,"object stop key must have value")];const K=Nn(B[0].zoom);if(typeof K!="number")return[new ct(V,B[0].zoom,"stop zoom values must be numbers")];if(p&&p>K)return[new ct(V,B[0].zoom,"stop zoom values must appear in ascending order")];K!==p&&(p=K,u=void 0,m={}),R=R.concat(Er({key:`${V}[0]`,value:B[0],valueSpec:{zoom:{}},style:L.style,styleSpec:L.styleSpec,objectElementValidators:{zoom:gl,value:k}}))}else R=R.concat(k({key:`${V}[0]`,value:B[0],valueSpec:{},style:L.style,styleSpec:L.styleSpec},B));return ia(ri(B[1]))?R.concat([new ct(`${V}[1]`,B[1],"expressions are not allowed in function stops.")]):R.concat(xi({key:`${V}[1]`,value:B[1],valueSpec:e,style:L.style,styleSpec:L.styleSpec}))}function k(L,R){const B=Wt(L.value),V=Nn(L.value),K=L.value!==null?L.value:R;if(a){if(B!==a)return[new ct(L.key,K,`${B} stop domain type must match previous stop domain type ${a}`)]}else a=B;if(B!=="number"&&B!=="string"&&B!=="boolean"&&typeof V!="number"&&typeof V!="string"&&typeof V!="boolean")return[new ct(L.key,K,"stop domain value must be a number, string, or boolean")];if(B!=="number"&&r!=="categorical"){let ie=`number expected, ${B} found`;return ta(e)&&r===void 0&&(ie+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ct(L.key,K,ie)]}return r!=="categorical"||B!=="number"||typeof V=="number"&&isFinite(V)&&Math.floor(V)===V?r!=="categorical"&&B==="number"&&typeof V=="number"&&typeof u=="number"&&u!==void 0&&Vnew ct(`${n.key}${a.key}`,n.value,a.message));const r=e.value.expression||e.value._styleExpression.expression;if(n.expressionContext==="property"&&n.propertyKey==="text-font"&&!r.outputDefined())return[new ct(n.key,n.value,`Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.`)];if(n.expressionContext==="property"&&n.propertyType==="layout"&&!co(r))return[new ct(n.key,n.value,'"feature-state" data expressions are not supported with layout properties.')];if(n.expressionContext==="filter")return yl(r,n);if(n.expressionContext&&n.expressionContext.indexOf("cluster")===0){if(!ps(r,["zoom","feature-state"]))return[new ct(n.key,n.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(n.expressionContext==="cluster-initial"&&!Ys(r))return[new ct(n.key,n.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function yl(n,e){const r=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(e.valueSpec&&e.valueSpec.expression)for(const u of e.valueSpec.expression.parameters)r.delete(u);if(r.size===0)return[];const a=[];return n instanceof ao&&r.has(n.name)?[new ct(e.key,e.value,`["${n.name}"] expression is not supported in a filter for a ${e.object.type} layer with id: ${e.object.id}`)]:(n.eachChild(u=>{a.push(...yl(u,e))}),a)}function Ic(n){const e=n.key,r=n.value,a=n.valueSpec,u=[];return Array.isArray(a.values)?a.values.indexOf(Nn(r))===-1&&u.push(new ct(e,r,`expected one of [${a.values.join(", ")}], ${JSON.stringify(r)} found`)):Object.keys(a.values).indexOf(Nn(r))===-1&&u.push(new ct(e,r,`expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(r)} found`)),u}function wh(n){if(n===!0||n===!1)return!0;if(!Array.isArray(n)||n.length===0)return!1;switch(n[0]){case"has":return n.length>=2&&n[1]!=="$id"&&n[1]!=="$type";case"in":return n.length>=3&&(typeof n[1]!="string"||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return n.length!==3||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const e of n.slice(1))if(!wh(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}function Mc(n,e="fill"){if(n==null)return{filter:()=>!0,needGeometry:!1,needFeature:!1};wh(n)||(n=sa(n));const r=n;let a=!0;try{a=function(b){if(!oa(b))return b;let A=ri(b);return kc(A),A=$p(A),A}(r)}catch{console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. +This is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md +and paste the contents of this message in the report. +Thank you! +Filter Expression: +${JSON.stringify(r,null,2)} + `)}const u=Le[`filter_${e}`],p=ra(a,u);let m=null;if(p.result==="error")throw new Error(p.value.map(b=>`${b.key}: ${b.message}`).join(", "));m=(b,A,I)=>p.value.evaluate(b,A,{},I);let y=null,w=null;if(a!==r){const b=ra(r,u);if(b.result==="error")throw new Error(b.value.map(A=>`${A.key}: ${A.message}`).join(", "));y=(A,I,k,L,R)=>b.value.evaluate(A,I,{},k,void 0,void 0,L,R),w=!Ys(b.value.expression)}return{filter:m,dynamicFilter:y||void 0,needGeometry:qp(a),needFeature:!!w}}function $p(n){if(!Array.isArray(n))return n;const e=function(r){if(bh.has(r[0])){for(let a=1;a$p(r))}function kc(n){let e=!1;const r=[];if(n[0]==="case"){for(let a=1;a",">=","<","<=","to-boolean"]);function Yg(n,e){return ne?1:0}function qp(n){if(!Array.isArray(n))return!1;if(n[0]==="within")return!0;for(let e=1;e"||e==="<="||e===">="?Eh(n[1],n[2],e):e==="any"?(r=n.slice(1),["any"].concat(r.map(sa))):e==="all"?["all"].concat(n.slice(1).map(sa)):e==="none"?["all"].concat(n.slice(1).map(sa).map(Pc)):e==="in"?Th(n[1],n.slice(2)):e==="!in"?Pc(Th(n[1],n.slice(2))):e==="has"?Sh(n[1]):e==="!has"?Pc(Sh(n[1])):e!=="within"||n;var r}function Eh(n,e,r){switch(n){case"$type":return[`filter-type-${r}`,e];case"$id":return[`filter-id-${r}`,e];default:return[`filter-${r}`,n,e]}}function Th(n,e){if(e.length===0)return!1;switch(n){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(r=>typeof r!=typeof e[0])?["filter-in-large",n,["literal",e.sort(Yg)]]:["filter-in-small",n,["literal",e]]}}function Sh(n){switch(n){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",n]}}function Pc(n){return["!",n]}function vl(n){return wh(ri(n.value))?oi(ro({},n,{expressionContext:"filter",valueSpec:n.styleSpec[`filter_${n.layerType||"fill"}`]})):xl(n)}function xl(n){const e=n.value,r=n.key;if(Wt(e)!=="array")return[new ct(r,e,`array expected, ${Wt(e)} found`)];const a=n.styleSpec;let u,p=[];if(e.length<1)return[new ct(r,e,"filter array must have at least 1 element")];switch(p=p.concat(Ic({key:`${r}[0]`,value:e[0],valueSpec:a.filter_operator,style:n.style,styleSpec:n.styleSpec})),Nn(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Nn(e[1])==="$type"&&p.push(new ct(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&p.push(new ct(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(u=Wt(e[1]),u!=="string"&&p.push(new ct(`${r}[1]`,e[1],`string expected, ${u} found`)));for(let m=2;m{b in r&&e.push(new ct(a,r[b],`"${b}" is prohibited for ref layers`))}),u.layers.forEach(b=>{Nn(b.id)===y&&(w=b)}),w?w.ref?e.push(new ct(a,r.ref,"ref cannot reference another ref layer")):m=Nn(w.type):typeof y=="string"&&e.push(new ct(a,r.ref,`ref layer "${y}" not found`))}else if(m!=="background"&&m!=="sky")if(r.source){const w=u.sources&&u.sources[r.source],b=w&&Nn(w.type);w?b==="vector"&&m==="raster"?e.push(new ct(a,r.source,`layer "${r.id}" requires a raster source`)):b==="raster"&&m!=="raster"?e.push(new ct(a,r.source,`layer "${r.id}" requires a vector source`)):b!=="vector"||r["source-layer"]?b==="raster-dem"&&m!=="hillshade"?e.push(new ct(a,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):m!=="line"||!r.paint||!r.paint["line-gradient"]&&!r.paint["line-trim-offset"]||b==="geojson"&&w.lineMetrics||e.push(new ct(a,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new ct(a,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new ct(a,r.source,`source "${r.source}" not found`))}else e.push(new ct(a,r,'missing required property "source"'));return e=e.concat(Er({key:a,value:r,valueSpec:p.layer,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{"*":()=>[],type:()=>xi({key:`${a}.type`,value:r.type,valueSpec:p.layer.type,style:n.style,styleSpec:n.styleSpec,object:r,objectKey:"type"}),filter:w=>vl(ro({layerType:m},w)),layout:w=>Er({layer:r,key:w.key,value:w.value,valueSpec:{},style:w.style,styleSpec:w.styleSpec,objectElementValidators:{"*":b=>Ch(ro({layerType:m},b))}}),paint:w=>Er({layer:r,key:w.key,value:w.value,valueSpec:{},style:w.style,styleSpec:w.styleSpec,objectElementValidators:{"*":b=>Zp(ro({layerType:m},b))}})}})),e}function Uo(n){const e=n.value,r=n.key,a=Wt(e);return a!=="string"?[new ct(r,e,`string expected, ${a} found`)]:[]}const Hp={promoteId:function({key:n,value:e}){if(Wt(e)==="string")return Uo({key:n,value:e});{const r=[];for(const a in e)r.push(...Uo({key:`${n}.${a}`,value:e[a]}));return r}}};function Xp(n){const e=n.value,r=n.key,a=n.styleSpec,u=n.style;if(!e.type)return[new ct(r,e,'"type" is required')];const p=Nn(e.type);let m;switch(p){case"vector":case"raster":case"raster-dem":return m=Er({key:r,value:e,valueSpec:a[`source_${p.replace("-","_")}`],style:n.style,styleSpec:a,objectElementValidators:Hp}),m;case"geojson":if(m=Er({key:r,value:e,valueSpec:a.source_geojson,style:u,styleSpec:a,objectElementValidators:Hp}),e.cluster)for(const y in e.clusterProperties){const[w,b]=e.clusterProperties[y],A=typeof w=="string"?[w,["accumulated"],["get",y]]:w;m.push(...oi({key:`${r}.${y}.map`,value:b,expressionContext:"cluster-map"})),m.push(...oi({key:`${r}.${y}.reduce`,value:A,expressionContext:"cluster-reduce"}))}return m;case"video":return Er({key:r,value:e,valueSpec:a.source_video,style:u,styleSpec:a});case"image":return Er({key:r,value:e,valueSpec:a.source_image,style:u,styleSpec:a});case"canvas":return[new ct(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Ic({key:`${r}.type`,value:e.type,valueSpec:{values:Jg(a)},style:u,styleSpec:a})}}function Jg(n){return n.source.reduce((e,r)=>{const a=n[r];return a.type.type==="enum"&&(e=e.concat(Object.keys(a.type.values))),e},[])}function Kp(n){const e=n.value,r=n.styleSpec,a=r.light,u=n.style;let p=[];const m=Wt(e);if(e===void 0)return p;if(m!=="object")return p=p.concat([new ct("light",e,`object expected, ${m} found`)]),p;for(const y in e){const w=y.match(/^(.*)-transition$/);p=p.concat(w&&a[w[1]]&&a[w[1]].transition?xi({key:y,value:e[y],valueSpec:r.transition,style:u,styleSpec:r}):a[y]?xi({key:y,value:e[y],valueSpec:a[y],style:u,styleSpec:r}):[new ct(y,e[y],`unknown property "${y}"`)])}return p}function Ih(n){const e=n.value,r=n.key,a=n.style,u=n.styleSpec,p=u.terrain;let m=[];const y=Wt(e);if(e===void 0)return m;if(y!=="object")return m=m.concat([new ct("terrain",e,`object expected, ${y} found`)]),m;for(const w in e){const b=w.match(/^(.*)-transition$/);m=m.concat(b&&p[b[1]]&&p[b[1]].transition?xi({key:w,value:e[w],valueSpec:u.transition,style:a,styleSpec:u}):p[w]?xi({key:w,value:e[w],valueSpec:p[w],style:a,styleSpec:u}):[new ct(w,e[w],`unknown property "${w}"`)])}if(e.source){const w=a.sources&&a.sources[e.source],b=w&&Nn(w.type);w?b!=="raster-dem"&&m.push(new ct(r,e.source,`terrain cannot be used with a source of type ${String(b)}, it only be used with a "raster-dem" source type`)):m.push(new ct(r,e.source,`source "${e.source}" not found`))}else m.push(new ct(r,e,'terrain is missing required property "source"'));return m}function Yp(n){const e=n.value,r=n.style,a=n.styleSpec,u=a.fog;let p=[];const m=Wt(e);if(e===void 0)return p;if(m!=="object")return p=p.concat([new ct("fog",e,`object expected, ${m} found`)]),p;for(const y in e){const w=y.match(/^(.*)-transition$/);p=p.concat(w&&u[w[1]]&&u[w[1]].transition?xi({key:y,value:e[y],valueSpec:a.transition,style:r,styleSpec:a}):u[y]?xi({key:y,value:e[y],valueSpec:u[y],style:r,styleSpec:a}):[new ct(y,e[y],`unknown property "${y}"`)])}return p}const Jp={"*":()=>[],array:Gp,boolean:function(n){const e=n.value,r=n.key,a=Wt(e);return a!=="boolean"?[new ct(r,e,`boolean expected, ${a} found`)]:[]},number:gl,color:function(n){const e=n.key,r=n.value,a=Wt(r);return a!=="string"?[new ct(e,r,`color expected, ${a} found`)]:Zu(r)===null?[new ct(e,r,`color expected, "${r}" found`)]:[]},enum:Ic,filter:vl,function:_l,layer:Wp,object:Er,source:Xp,light:Kp,terrain:Ih,fog:Yp,string:Uo,formatted:function(n){return Uo(n).length===0?[]:oi(n)},resolvedImage:function(n){return Uo(n).length===0?[]:oi(n)},projection:function(n){const e=n.value,r=n.styleSpec,a=r.projection,u=n.style;let p=[];const m=Wt(e);if(m==="object")for(const y in e)p=p.concat(xi({key:y,value:e[y],valueSpec:a[y],style:u,styleSpec:r}));else m!=="string"&&(p=p.concat([new ct("projection",e,`object or string expected, ${m} found`)]));return p}};function xi(n){const e=n.value,r=n.valueSpec,a=n.styleSpec;return r.expression&&pl(Nn(e))?_l(n):r.expression&&ia(ri(e))?oi(n):r.type&&Jp[r.type]?Jp[r.type](n):Er(ro({},n,{valueSpec:r.type?a[r.type]:r}))}function Qg(n){const e=n.value,r=n.key,a=Uo(n);return a.length||(e.indexOf("{fontstack}")===-1&&a.push(new ct(r,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new ct(r,e,'"glyphs" url must include a "{range}" token'))),a}function Qp(n,e=Le){return ar(xi({key:"",value:n,valueSpec:e.$root,styleSpec:e,style:n,objectElementValidators:{glyphs:Qg,"*":()=>[]}}))}const e_=n=>ar(Zp(n)),t_=n=>ar(Ch(n));function ar(n){return n.slice().sort((e,r)=>e.line&&r.line?e.line-r.line:0)}function ef(n,e){let r=!1;if(e&&e.length)for(const a of e)n.fire(new io(new Error(a.message))),r=!0;return r}var n_=Gr,Tr=3;function Gr(n,e,r){var a=this.cells=[];if(n instanceof ArrayBuffer){this.arrayBuffer=n;var u=new Int32Array(this.arrayBuffer);n=u[0],this.d=(e=u[1])+2*(r=u[2]);for(var p=0;p=A[L+0]&&a>=A[L+1])?(m[k]=!0,p.push(b[k])):m[k]=!1}}},Gr.prototype._forEachCell=function(n,e,r,a,u,p,m,y){for(var w=this._convertToCellCoord(n),b=this._convertToCellCoord(e),A=this._convertToCellCoord(r),I=this._convertToCellCoord(a),k=w;k<=A;k++)for(var L=b;L<=I;L++){var R=this.d*L+k;if((!y||y(this._convertFromCellCoord(k),this._convertFromCellCoord(L),this._convertFromCellCoord(k+1),this._convertFromCellCoord(L+1)))&&u.call(this,n,e,r,a,R,p,m,y))return}},Gr.prototype._convertFromCellCoord=function(n){return(n-this.padding)/this.scale},Gr.prototype._convertToCellCoord=function(n){return Math.max(0,Math.min(this.d-1,Math.floor(n*this.scale)+this.padding))},Gr.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var n=this.cells,e=Tr+this.cells.length+1+1,r=0,a=0;a=0||(u[p]=aa(n[p],e)));n instanceof Error&&(u.message=n.message)}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return a!=="Object"&&(u.$name=a),u}throw new Error("can't serialize object of type "+typeof n)}function _s(n){if(n==null||typeof n=="boolean"||typeof n=="number"||typeof n=="string"||n instanceof Boolean||n instanceof Number||n instanceof String||n instanceof Date||n instanceof RegExp||Mh(n)||kh(n)||ArrayBuffer.isView(n)||n instanceof M.ImageData)return n;if(Array.isArray(n))return n.map(_s);if(typeof n=="object"){const e=n.$name||"Object",{klass:r}=zc[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(n);const a=Object.create(r.prototype);for(const u of Object.keys(n))u!=="$name"&&(a[u]=_s(n[u]));return a}throw new Error("can't deserialize object of type "+typeof n)}const st={"Latin-1 Supplement":n=>n>=128&&n<=255,Arabic:n=>n>=1536&&n<=1791,"Arabic Supplement":n=>n>=1872&&n<=1919,"Arabic Extended-A":n=>n>=2208&&n<=2303,"Hangul Jamo":n=>n>=4352&&n<=4607,"Unified Canadian Aboriginal Syllabics":n=>n>=5120&&n<=5759,Khmer:n=>n>=6016&&n<=6143,"Unified Canadian Aboriginal Syllabics Extended":n=>n>=6320&&n<=6399,"General Punctuation":n=>n>=8192&&n<=8303,"Letterlike Symbols":n=>n>=8448&&n<=8527,"Number Forms":n=>n>=8528&&n<=8591,"Miscellaneous Technical":n=>n>=8960&&n<=9215,"Control Pictures":n=>n>=9216&&n<=9279,"Optical Character Recognition":n=>n>=9280&&n<=9311,"Enclosed Alphanumerics":n=>n>=9312&&n<=9471,"Geometric Shapes":n=>n>=9632&&n<=9727,"Miscellaneous Symbols":n=>n>=9728&&n<=9983,"Miscellaneous Symbols and Arrows":n=>n>=11008&&n<=11263,"CJK Radicals Supplement":n=>n>=11904&&n<=12031,"Kangxi Radicals":n=>n>=12032&&n<=12255,"Ideographic Description Characters":n=>n>=12272&&n<=12287,"CJK Symbols and Punctuation":n=>n>=12288&&n<=12351,Hiragana:n=>n>=12352&&n<=12447,Katakana:n=>n>=12448&&n<=12543,Bopomofo:n=>n>=12544&&n<=12591,"Hangul Compatibility Jamo":n=>n>=12592&&n<=12687,Kanbun:n=>n>=12688&&n<=12703,"Bopomofo Extended":n=>n>=12704&&n<=12735,"CJK Strokes":n=>n>=12736&&n<=12783,"Katakana Phonetic Extensions":n=>n>=12784&&n<=12799,"Enclosed CJK Letters and Months":n=>n>=12800&&n<=13055,"CJK Compatibility":n=>n>=13056&&n<=13311,"CJK Unified Ideographs Extension A":n=>n>=13312&&n<=19903,"Yijing Hexagram Symbols":n=>n>=19904&&n<=19967,"CJK Unified Ideographs":n=>n>=19968&&n<=40959,"Yi Syllables":n=>n>=40960&&n<=42127,"Yi Radicals":n=>n>=42128&&n<=42191,"Hangul Jamo Extended-A":n=>n>=43360&&n<=43391,"Hangul Syllables":n=>n>=44032&&n<=55215,"Hangul Jamo Extended-B":n=>n>=55216&&n<=55295,"Private Use Area":n=>n>=57344&&n<=63743,"CJK Compatibility Ideographs":n=>n>=63744&&n<=64255,"Arabic Presentation Forms-A":n=>n>=64336&&n<=65023,"Vertical Forms":n=>n>=65040&&n<=65055,"CJK Compatibility Forms":n=>n>=65072&&n<=65103,"Small Form Variants":n=>n>=65104&&n<=65135,"Arabic Presentation Forms-B":n=>n>=65136&&n<=65279,"Halfwidth and Fullwidth Forms":n=>n>=65280&&n<=65519};function Ph(n){for(const e of n)if(zh(e.charCodeAt(0)))return!0;return!1}function i_(n){for(const e of n)if(!tf(e.charCodeAt(0)))return!1;return!0}function tf(n){return!(st.Arabic(n)||st["Arabic Supplement"](n)||st["Arabic Extended-A"](n)||st["Arabic Presentation Forms-A"](n)||st["Arabic Presentation Forms-B"](n))}function zh(n){return!(n!==746&&n!==747&&(n<4352||!(st["Bopomofo Extended"](n)||st.Bopomofo(n)||st["CJK Compatibility Forms"](n)&&!(n>=65097&&n<=65103)||st["CJK Compatibility Ideographs"](n)||st["CJK Compatibility"](n)||st["CJK Radicals Supplement"](n)||st["CJK Strokes"](n)||!(!st["CJK Symbols and Punctuation"](n)||n>=12296&&n<=12305||n>=12308&&n<=12319||n===12336)||st["CJK Unified Ideographs Extension A"](n)||st["CJK Unified Ideographs"](n)||st["Enclosed CJK Letters and Months"](n)||st["Hangul Compatibility Jamo"](n)||st["Hangul Jamo Extended-A"](n)||st["Hangul Jamo Extended-B"](n)||st["Hangul Jamo"](n)||st["Hangul Syllables"](n)||st.Hiragana(n)||st["Ideographic Description Characters"](n)||st.Kanbun(n)||st["Kangxi Radicals"](n)||st["Katakana Phonetic Extensions"](n)||st.Katakana(n)&&n!==12540||!(!st["Halfwidth and Fullwidth Forms"](n)||n===65288||n===65289||n===65293||n>=65306&&n<=65310||n===65339||n===65341||n===65343||n>=65371&&n<=65503||n===65507||n>=65512&&n<=65519)||!(!st["Small Form Variants"](n)||n>=65112&&n<=65118||n>=65123&&n<=65126)||st["Unified Canadian Aboriginal Syllabics"](n)||st["Unified Canadian Aboriginal Syllabics Extended"](n)||st["Vertical Forms"](n)||st["Yijing Hexagram Symbols"](n)||st["Yi Syllables"](n)||st["Yi Radicals"](n))))}function nf(n){return!(zh(n)||function(e){return!!(st["Latin-1 Supplement"](e)&&(e===167||e===169||e===174||e===177||e===188||e===189||e===190||e===215||e===247)||st["General Punctuation"](e)&&(e===8214||e===8224||e===8225||e===8240||e===8241||e===8251||e===8252||e===8258||e===8263||e===8264||e===8265||e===8273)||st["Letterlike Symbols"](e)||st["Number Forms"](e)||st["Miscellaneous Technical"](e)&&(e>=8960&&e<=8967||e>=8972&&e<=8991||e>=8996&&e<=9e3||e===9003||e>=9085&&e<=9114||e>=9150&&e<=9165||e===9167||e>=9169&&e<=9179||e>=9186&&e<=9215)||st["Control Pictures"](e)&&e!==9251||st["Optical Character Recognition"](e)||st["Enclosed Alphanumerics"](e)||st["Geometric Shapes"](e)||st["Miscellaneous Symbols"](e)&&!(e>=9754&&e<=9759)||st["Miscellaneous Symbols and Arrows"](e)&&(e>=11026&&e<=11055||e>=11088&&e<=11097||e>=11192&&e<=11243)||st["CJK Symbols and Punctuation"](e)||st.Katakana(e)||st["Private Use Area"](e)||st["CJK Compatibility Forms"](e)||st["Small Form Variants"](e)||st["Halfwidth and Fullwidth Forms"](e)||e===8734||e===8756||e===8757||e>=9984&&e<=10087||e>=10102&&e<=10131||e===65532||e===65533)}(n))}function rf(n){return n>=1424&&n<=2303||st["Arabic Presentation Forms-A"](n)||st["Arabic Presentation Forms-B"](n)}function r_(n,e){return!(!e&&rf(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||st.Khmer(n))}function o_(n){for(const e of n)if(rf(e.charCodeAt(0)))return!0;return!1}const Lh="deferred",Rh="loading",Dh="loaded";let la=null,d="unavailable",o=null;const c=function(n){n&&typeof n=="string"&&n.indexOf("NetworkError")>-1&&(d="error"),la&&la(n)};function f(){_.fire(new cs("pluginStateChange",{pluginStatus:d,pluginURL:o}))}const _=new Ka,v=function(){return d},E=function(){if(d!==Lh||!o)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");d=Rh,f(),o&&Gs({url:o},n=>{n?c(n):(d=Dh,f())})},S={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>d===Dh||S.applyArabicShaping!=null,isLoading:()=>d===Rh,setState(n){d=n.pluginStatus,o=n.pluginURL},isParsed:()=>S.applyArabicShaping!=null&&S.processBidirectionalText!=null&&S.processStyledBidirectionalText!=null,getPluginURL:()=>o};class C{constructor(e,r){this.zoom=e,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.transition=r.transition,this.pitch=r.pitch):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0)}isSupportedScript(e){return function(r,a){for(const u of r)if(!r_(u.charCodeAt(0),a))return!1;return!0}(e,S.isLoaded())}}class z{constructor(e,r){this.property=e,this.value=r,this.expression=function(a,u){if(pl(a))return new Ac(a,u);if(ia(a)){const p=ml(a,u);if(p.result==="error")throw new Error(p.value.map(m=>`${m.key}: ${m.message}`).join(", "));return p.value}{let p=a;return typeof a=="string"&&u.type==="color"&&(p=Dn.parse(a)),{kind:"constant",evaluate:()=>p}}}(r===void 0?e.specification.default:r,e.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(e,r,a){return this.property.possiblyEvaluate(this,e,r,a)}}class P{constructor(e){this.property=e,this.value=new z(e,void 0)}transitioned(e,r){return new j(this.property,this.value,r,_n({},e.transition,this.transition),e.now)}untransitioned(){return new j(this.property,this.value,null,{},0)}}class D{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues)}getValue(e){return Ai(this._values[e].value.value)}setValue(e,r){this._values.hasOwnProperty(e)||(this._values[e]=new P(this._values[e].property)),this._values[e].value=new z(this._values[e].property,r===null?void 0:Ai(r))}getTransition(e){return Ai(this._values[e].transition)}setTransition(e,r){this._values.hasOwnProperty(e)||(this._values[e]=new P(this._values[e].property)),this._values[e].transition=Ai(r)||void 0}serialize(){const e={};for(const r of Object.keys(this._values)){const a=this.getValue(r);a!==void 0&&(e[r]=a);const u=this.getTransition(r);u!==void 0&&(e[`${r}-transition`]=u)}return e}transitioned(e,r){const a=new $(this._properties);for(const u of Object.keys(this._values))a._values[u]=this._values[u].transitioned(e,r._values[u]);return a}untransitioned(){const e=new $(this._properties);for(const r of Object.keys(this._values))e._values[r]=this._values[r].untransitioned();return e}}class j{constructor(e,r,a,u,p){const m=u.delay||0,y=u.duration||0;p=p||0,this.property=e,this.value=r,this.begin=p+m,this.end=this.begin+y,e.specification.transition&&(u.delay||u.duration)&&(this.prior=a)}possiblyEvaluate(e,r,a){const u=e.now||0,p=this.value.possiblyEvaluate(e,r,a),m=this.prior;if(m){if(u>this.end)return this.prior=null,p;if(this.value.isDataDriven())return this.prior=null,p;if(uthis.capacity){this.capacity=Math.max(e,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null}}function _e(n,e=1){let r=0,a=0;return{members:n.map(u=>{const p=pe[u.type].BYTES_PER_ELEMENT,m=r=Te(r,Math.max(e,p)),y=u.components||1;return a=Math.max(a,p),r+=p*y,{name:u.name,type:u.type,components:y,offset:m}}),size:Te(r,Math.max(a,e)),alignment:e}}function Te(n,e){return Math.ceil(n/e)*e}class Ze extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.int16[u+0]=r,this.int16[u+1]=a,e}}Ze.prototype.bytesPerElement=4,ht(Ze,"StructArrayLayout2i4");class we extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.int16[p+0]=r,this.int16[p+1]=a,this.int16[p+2]=u,e}}we.prototype.bytesPerElement=6,ht(we,"StructArrayLayout3i6");class Be extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.int16[m+0]=r,this.int16[m+1]=a,this.int16[m+2]=u,this.int16[m+3]=p,e}}Be.prototype.bytesPerElement=8,ht(Be,"StructArrayLayout4i8");class Ce extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y){const w=this.length;return this.resize(w+1),this.emplace(w,e,r,a,u,p,m,y)}emplace(e,r,a,u,p,m,y,w){const b=6*e,A=12*e,I=3*e;return this.int16[b+0]=r,this.int16[b+1]=a,this.uint8[A+4]=u,this.uint8[A+5]=p,this.uint8[A+6]=m,this.uint8[A+7]=y,this.float32[I+2]=w,e}}Ce.prototype.bytesPerElement=12,ht(Ce,"StructArrayLayout2i4ub1f12");class qe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.float32[m+0]=r,this.float32[m+1]=a,this.float32[m+2]=u,this.float32[m+3]=p,e}}qe.prototype.bytesPerElement=16,ht(qe,"StructArrayLayout4f16");class Ee extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=6*e,w=3*e;return this.uint16[y+0]=r,this.uint16[y+1]=a,this.uint16[y+2]=u,this.uint16[y+3]=p,this.float32[w+2]=m,e}}Ee.prototype.bytesPerElement=12,ht(Ee,"StructArrayLayout4ui1f12");class Oe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=4*e;return this.uint16[m+0]=r,this.uint16[m+1]=a,this.uint16[m+2]=u,this.uint16[m+3]=p,e}}Oe.prototype.bytesPerElement=8,ht(Oe,"StructArrayLayout4ui8");class He extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,a,u,p,m)}emplace(e,r,a,u,p,m,y){const w=6*e;return this.int16[w+0]=r,this.int16[w+1]=a,this.int16[w+2]=u,this.int16[w+3]=p,this.int16[w+4]=m,this.int16[w+5]=y,e}}He.prototype.bytesPerElement=12,ht(He,"StructArrayLayout6i12");class Ge extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k){const L=this.length;return this.resize(L+1),this.emplace(L,e,r,a,u,p,m,y,w,b,A,I,k)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L){const R=12*e;return this.int16[R+0]=r,this.int16[R+1]=a,this.int16[R+2]=u,this.int16[R+3]=p,this.uint16[R+4]=m,this.uint16[R+5]=y,this.uint16[R+6]=w,this.uint16[R+7]=b,this.int16[R+8]=A,this.int16[R+9]=I,this.int16[R+10]=k,this.int16[R+11]=L,e}}Ge.prototype.bytesPerElement=24,ht(Ge,"StructArrayLayout4i4ui4i24");class Xe extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,e,r,a,u,p,m)}emplace(e,r,a,u,p,m,y){const w=10*e,b=5*e;return this.int16[w+0]=r,this.int16[w+1]=a,this.int16[w+2]=u,this.float32[b+2]=p,this.float32[b+3]=m,this.float32[b+4]=y,e}}Xe.prototype.bytesPerElement=20,ht(Xe,"StructArrayLayout3i3f20");class gt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint32[1*e+0]=r,e}}gt.prototype.bytesPerElement=4,ht(gt,"StructArrayLayout1ul4");class Et extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L){const R=this.length;return this.resize(R+1),this.emplace(R,e,r,a,u,p,m,y,w,b,A,I,k,L)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=20*e,V=10*e;return this.int16[B+0]=r,this.int16[B+1]=a,this.int16[B+2]=u,this.int16[B+3]=p,this.int16[B+4]=m,this.float32[V+3]=y,this.float32[V+4]=w,this.float32[V+5]=b,this.float32[V+6]=A,this.int16[B+14]=I,this.uint32[V+8]=k,this.uint16[B+18]=L,this.uint16[B+19]=R,e}}Et.prototype.bytesPerElement=40,ht(Et,"StructArrayLayout5i4f1i1ul2ui40");class dt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y){const w=this.length;return this.resize(w+1),this.emplace(w,e,r,a,u,p,m,y)}emplace(e,r,a,u,p,m,y,w){const b=8*e;return this.int16[b+0]=r,this.int16[b+1]=a,this.int16[b+2]=u,this.int16[b+4]=p,this.int16[b+5]=m,this.int16[b+6]=y,this.int16[b+7]=w,e}}dt.prototype.bytesPerElement=16,ht(dt,"StructArrayLayout3i2i2i16");class wt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=4*e,w=8*e;return this.float32[y+0]=r,this.float32[y+1]=a,this.float32[y+2]=u,this.int16[w+6]=p,this.int16[w+7]=m,e}}wt.prototype.bytesPerElement=16,ht(wt,"StructArrayLayout2f1f2i16");class Ut extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=12*e,y=3*e;return this.uint8[m+0]=r,this.uint8[m+1]=a,this.float32[y+1]=u,this.float32[y+2]=p,e}}Ut.prototype.bytesPerElement=12,ht(Ut,"StructArrayLayout2ub2f12");class Ot extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.float32[p+0]=r,this.float32[p+1]=a,this.float32[p+2]=u,e}}Ot.prototype.bytesPerElement=12,ht(Ot,"StructArrayLayout3f12");class mt extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a){const u=this.length;return this.resize(u+1),this.emplace(u,e,r,a)}emplace(e,r,a,u){const p=3*e;return this.uint16[p+0]=r,this.uint16[p+1]=a,this.uint16[p+2]=u,e}}mt.prototype.bytesPerElement=6,ht(mt,"StructArrayLayout3ui6");class en extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae){const se=this.length;return this.resize(se+1),this.emplace(se,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se){const Se=30*e,be=15*e,Re=60*e;return this.int16[Se+0]=r,this.int16[Se+1]=a,this.int16[Se+2]=u,this.float32[be+2]=p,this.float32[be+3]=m,this.uint16[Se+8]=y,this.uint16[Se+9]=w,this.uint32[be+5]=b,this.uint32[be+6]=A,this.uint32[be+7]=I,this.uint16[Se+16]=k,this.uint16[Se+17]=L,this.uint16[Se+18]=R,this.float32[be+10]=B,this.float32[be+11]=V,this.uint8[Re+48]=K,this.uint8[Re+49]=ie,this.uint8[Re+50]=Y,this.uint32[be+13]=te,this.int16[Se+28]=ae,this.uint8[Re+58]=se,e}}en.prototype.bytesPerElement=60,ht(en,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");class rn extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e){const Je=this.length;return this.resize(Je+1),this.emplace(Je,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e)}emplace(e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V,K,ie,Y,te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e,Je){const Pe=38*e,rt=19*e;return this.int16[Pe+0]=r,this.int16[Pe+1]=a,this.int16[Pe+2]=u,this.float32[rt+2]=p,this.float32[rt+3]=m,this.int16[Pe+8]=y,this.int16[Pe+9]=w,this.int16[Pe+10]=b,this.int16[Pe+11]=A,this.int16[Pe+12]=I,this.int16[Pe+13]=k,this.uint16[Pe+14]=L,this.uint16[Pe+15]=R,this.uint16[Pe+16]=B,this.uint16[Pe+17]=V,this.uint16[Pe+18]=K,this.uint16[Pe+19]=ie,this.uint16[Pe+20]=Y,this.uint16[Pe+21]=te,this.uint16[Pe+22]=ae,this.uint16[Pe+23]=se,this.uint16[Pe+24]=Se,this.uint16[Pe+25]=be,this.uint16[Pe+26]=Re,this.uint16[Pe+27]=We,this.uint16[Pe+28]=Ie,this.uint32[rt+15]=Ne,this.float32[rt+16]=Ue,this.float32[rt+17]=$e,this.float32[rt+18]=Je,e}}rn.prototype.bytesPerElement=76,ht(rn,"StructArrayLayout3i2f6i15ui1ul3f76");class on extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.float32[1*e+0]=r,e}}on.prototype.bytesPerElement=4,ht(on,"StructArrayLayout1f4");class sn extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r,a,u,p){const m=this.length;return this.resize(m+1),this.emplace(m,e,r,a,u,p)}emplace(e,r,a,u,p,m){const y=5*e;return this.float32[y+0]=r,this.float32[y+1]=a,this.float32[y+2]=u,this.float32[y+3]=p,this.float32[y+4]=m,e}}sn.prototype.bytesPerElement=20,ht(sn,"StructArrayLayout5f20");class wi extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r,a,u){const p=this.length;return this.resize(p+1),this.emplace(p,e,r,a,u)}emplace(e,r,a,u,p){const m=6*e;return this.uint32[3*e+0]=r,this.uint16[m+2]=a,this.uint16[m+3]=u,this.uint16[m+4]=p,e}}wi.prototype.bytesPerElement=12,ht(wi,"StructArrayLayout1ul3ui12");class si extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.uint16[u+0]=r,this.uint16[u+1]=a,e}}si.prototype.bytesPerElement=4,ht(si,"StructArrayLayout2ui4");class lr extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){const r=this.length;return this.resize(r+1),this.emplace(r,e)}emplace(e,r){return this.uint16[1*e+0]=r,e}}lr.prototype.bytesPerElement=2,ht(lr,"StructArrayLayout1ui2");class $r extends ye{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,r){const a=this.length;return this.resize(a+1),this.emplace(a,e,r)}emplace(e,r,a){const u=2*e;return this.float32[u+0]=r,this.float32[u+1]=a,e}}$r.prototype.bytesPerElement=8,ht($r,"StructArrayLayout2f8");class Tn extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}Tn.prototype.size=40;class an extends Et{get(e){return new Tn(this,e)}}ht(an,"CollisionBoxArray");class Xt extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(e){this._structArray.uint8[this._pos1+49]=e}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(e){this._structArray.uint8[this._pos1+50]=e}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(e){this._structArray.uint32[this._pos4+13]=e}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(e){this._structArray.uint8[this._pos1+58]=e}}Xt.prototype.size=60;class Un extends en{get(e){return new Xt(this,e)}}ht(Un,"PlacedSymbolArray");class Ii extends de{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(e){this._structArray.uint32[this._pos4+15]=e}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}Ii.prototype.size=76;class wn extends rn{get(e){return new Ii(this,e)}}ht(wn,"SymbolInstanceArray");class Oi extends on{getoffsetX(e){return this.float32[1*e+0]}}ht(Oi,"GlyphOffsetArray");class Lc extends Ze{getx(e){return this.int16[2*e+0]}gety(e){return this.int16[2*e+1]}}ht(Lc,"SymbolLineVertexArray");class ys extends de{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}ys.prototype.size=12;class wl extends wi{get(e){return new ys(this,e)}}ht(wl,"FeatureIndexArray");class po extends si{geta_centroid_pos0(e){return this.uint16[2*e+0]}geta_centroid_pos1(e){return this.uint16[2*e+1]}}ht(po,"FillExtrusionCentroidArray");const jo=_e([{name:"a_pattern",components:4,type:"Uint16"},{name:"a_pixel_ratio",components:1,type:"Float32"}]),vs=_e([{name:"a_dash",components:4,type:"Uint16"}]);var Rc={exports:{}},bl={exports:{}};bl.exports=function(n,e){var r,a,u,p,m,y,w,b;for(a=n.length-(r=3&n.length),u=e,m=3432918353,y=461845907,b=0;b>>16)*m&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295)<<13|u>>>19))+((5*(u>>>16)&65535)<<16)&4294967295))+((58964+(p>>>16)&65535)<<16);switch(w=0,r){case 3:w^=(255&n.charCodeAt(b+2))<<16;case 2:w^=(255&n.charCodeAt(b+1))<<8;case 1:u^=w=(65535&(w=(w=(65535&(w^=255&n.charCodeAt(b)))*m+(((w>>>16)*m&65535)<<16)&4294967295)<<15|w>>>17))*y+(((w>>>16)*y&65535)<<16)&4294967295}return u^=n.length,u=2246822507*(65535&(u^=u>>>16))+((2246822507*(u>>>16)&65535)<<16)&4294967295,u=3266489909*(65535&(u^=u>>>13))+((3266489909*(u>>>16)&65535)<<16)&4294967295,(u^=u>>>16)>>>0};var Oh=bl.exports,bx={exports:{}};bx.exports=function(n,e){for(var r,a=n.length,u=e^a,p=0;a>=4;)r=1540483477*(65535&(r=255&n.charCodeAt(p)|(255&n.charCodeAt(++p))<<8|(255&n.charCodeAt(++p))<<16|(255&n.charCodeAt(++p))<<24))+((1540483477*(r>>>16)&65535)<<16),u=1540483477*(65535&u)+((1540483477*(u>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),a-=4,++p;switch(a){case 3:u^=(255&n.charCodeAt(p+2))<<16;case 2:u^=(255&n.charCodeAt(p+1))<<8;case 1:u=1540483477*(65535&(u^=255&n.charCodeAt(p)))+((1540483477*(u>>>16)&65535)<<16)}return u=1540483477*(65535&(u^=u>>>13))+((1540483477*(u>>>16)&65535)<<16),(u^=u>>>15)>>>0};var Ex=Oh,JA=bx.exports;Rc.exports=Ex,Rc.exports.murmur3=Ex,Rc.exports.murmur2=JA;var s_=le(Rc.exports);class of{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,r,a,u){this.ids.push(Tx(e)),this.positions.push(r,a,u)}getPositions(e){const r=Tx(e);let a=0,u=this.ids.length-1;for(;a>1;this.ids[m]>=r?u=m:a=m+1}const p=[];for(;this.ids[a]===r;)p.push({index:this.positions[3*a],start:this.positions[3*a+1],end:this.positions[3*a+2]}),a++;return p}static serialize(e,r){const a=new Float64Array(e.ids),u=new Uint32Array(e.positions);return a_(a,u,0,a.length-1),r&&r.push(a.buffer,u.buffer),{ids:a,positions:u}}static deserialize(e){const r=new of;return r.ids=e.ids,r.positions=e.positions,r.indexed=!0,r}}function Tx(n){const e=+n;return!isNaN(e)&&Number.MIN_SAFE_INTEGER<=e&&e<=Number.MAX_SAFE_INTEGER?e:s_(String(n))}function a_(n,e,r,a){for(;r>1];let p=r-1,m=a+1;for(;;){do p++;while(n[p]u);if(p>=m)break;sf(n,p,m),sf(e,3*p,3*m),sf(e,3*p+1,3*m+1),sf(e,3*p+2,3*m+2)}m-r`u_${u}`),this.type=a}setUniform(e,r,a,u,p){r.set(e,p,u.constantOr(this.value))}getBinding(e,r){return this.type==="color"?new Ax(e):new af(e)}}class Dc{constructor(e,r){this.uniformNames=r.map(a=>`u_${a}`),this.pattern=null,this.pixelRatio=1}setConstantPatternPositions(e){this.pixelRatio=e.pixelRatio||1,this.pattern=e.tl.concat(e.br)}setUniform(e,r,a,u,p){const m=p==="u_pattern"||p==="u_dash"?this.pattern:p==="u_pixel_ratio"?this.pixelRatio:null;m&&r.set(e,p,m)}getBinding(e,r){return r==="u_pattern"||r==="u_dash"?new Sx(e):new af(e)}}class ws{constructor(e,r,a,u){this.expression=e,this.type=a,this.maxValue=0,this.paintVertexAttributes=r.map(p=>({name:`a_${p}`,type:"Float32",components:a==="color"?2:1,offset:0})),this.paintVertexArray=new u}populatePaintArray(e,r,a,u,p,m){const y=this.paintVertexArray.length,w=this.expression.evaluate(new C(0),r,{},p,u,m);this.paintVertexArray.resize(e),this._setPaintValue(y,e,w)}updatePaintArray(e,r,a,u,p){const m=this.expression.evaluate({zoom:0},a,u,void 0,p);this._setPaintValue(e,r,m)}_setPaintValue(e,r,a){if(this.type==="color"){const u=l_(a);for(let p=e;p`u_${y}_t`),this.type=a,this.useIntegerZoom=u,this.zoom=p,this.maxValue=0,this.paintVertexAttributes=r.map(y=>({name:`a_${y}`,type:"Float32",components:a==="color"?4:2,offset:0})),this.paintVertexArray=new m}populatePaintArray(e,r,a,u,p,m){const y=this.expression.evaluate(new C(this.zoom),r,{},p,u,m),w=this.expression.evaluate(new C(this.zoom+1),r,{},p,u,m),b=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(b,e,y,w)}updatePaintArray(e,r,a,u,p){const m=this.expression.evaluate({zoom:this.zoom},a,u,void 0,p),y=this.expression.evaluate({zoom:this.zoom+1},a,u,void 0,p);this._setPaintValue(e,r,m,y)}_setPaintValue(e,r,a,u){if(this.type==="color"){const p=l_(a),m=l_(u);for(let y=e;y!0){this.binders={},this._buffers=[];const u=[];for(const p in e.paint._values){if(!a(p))continue;const m=e.paint.get(p);if(!(m instanceof Z&&ta(m.property.specification)))continue;const y=iC(p,e.type),w=m.value,b=m.property.specification.type,A=!!m.property.useIntegerZoom,I=p==="line-dasharray"||p.endsWith("pattern"),k=p==="line-dasharray"&&e.layout.get("line-cap").value.kind!=="constant";if(w.kind!=="constant"||k)if(w.kind==="source"||k||I){const L=Cx(p,b,"source");this.binders[p]=I?new ca(w,y,b,L,e.id):new ws(w,y,b,L),u.push(`/a_${p}`)}else{const L=Cx(p,b,"composite");this.binders[p]=new fo(w,y,b,A,r,L),u.push(`/z_${p}`)}else this.binders[p]=I?new Dc(w.value,y):new Bh(w.value,y,b),u.push(`/u_${p}`)}this.cacheKey=u.sort().join("")}getMaxValue(e){const r=this.binders[e];return r instanceof ws||r instanceof fo?r.maxValue:0}populatePaintArrays(e,r,a,u,p,m){for(const y in this.binders){const w=this.binders[y];(w instanceof ws||w instanceof fo||w instanceof ca)&&w.populatePaintArray(e,r,a,u,p,m)}}setConstantPatternPositions(e){for(const r in this.binders){const a=this.binders[r];a instanceof Dc&&a.setConstantPatternPositions(e)}}updatePaintArrays(e,r,a,u,p,m){let y=!1;for(const w in e){const b=r.getPositions(w);for(const A of b){const I=a.feature(A.index);for(const k in this.binders){const L=this.binders[k];if((L instanceof ws||L instanceof fo||L instanceof ca)&&L.expression.isStateDependent===!0){const R=u.paint.get(k);L.expression=R.value,L.updatePaintArray(A.start,A.end,I,e[w],p,m),y=!0}}}}return y}defines(){const e=[];for(const r in this.binders){const a=this.binders[r];(a instanceof Bh||a instanceof Dc)&&e.push(...a.uniformNames.map(u=>`#define HAS_UNIFORM_${u}`))}return e}getBinderAttributes(){const e=[];for(const r in this.binders){const a=this.binders[r];if(a instanceof ws||a instanceof fo||a instanceof ca)for(let u=0;u!0){this.programConfigurations={};for(const u of e)this.programConfigurations[u.id]=new ua(u,r,a);this.needsUpload=!1,this._featureMap=new of,this._bufferOffset=0}populatePaintArrays(e,r,a,u,p,m,y){for(const w in this.programConfigurations)this.programConfigurations[w].populatePaintArrays(e,r,u,p,m,y);r.id!==void 0&&this._featureMap.add(r.id,a,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,r,a,u,p){for(const m of a)this.needsUpload=this.programConfigurations[m.id].updatePaintArrays(e,this._featureMap,r,m,u,p)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(e);this.needsUpload=!1}}destroy(){for(const e in this.programConfigurations)this.programConfigurations[e].destroy()}}const nC={"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-pattern":["pattern","pixel_ratio"],"fill-pattern":["pattern","pixel_ratio"],"fill-extrusion-pattern":["pattern","pixel_ratio"],"line-dasharray":["dash"]};function iC(n,e){return nC[n]||[n.replace(`${e}-`,"").replace(/-/g,"_")]}const rC={"line-pattern":{source:Ee,composite:Ee},"fill-pattern":{source:Ee,composite:Ee},"fill-extrusion-pattern":{source:Ee,composite:Ee},"line-dasharray":{source:Oe,composite:Oe}},oC={color:{source:$r,composite:qe},number:{source:on,composite:$r}};function Cx(n,e,r){const a=rC[n];return a&&a[r]||oC[e][r]}ht(Bh,"ConstantBinder"),ht(Dc,"PatternConstantBinder"),ht(ws,"SourceExpressionBinder"),ht(ca,"PatternCompositeBinder"),ht(fo,"CompositeExpressionBinder"),ht(ua,"ProgramConfiguration",{omit:["_buffers"]}),ht(El,"ProgramConfigurationSet");const Ix="-transition";class mo extends Ka{constructor(e,r){if(super(),this.id=e.id,this.type=e.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,e.type!=="custom"&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!=="background"&&e.type!=="sky"&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new W(r.layout)),r.paint)){this._transitionablePaint=new D(r.paint);for(const a in e.paint)this.setPaintProperty(a,e.paint[a],{validate:!1});for(const a in e.layout)this.setLayoutProperty(a,e.layout[a],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new H(r.paint)}}getLayoutProperty(e){return e==="visibility"?this.visibility:this._unevaluatedLayout.getValue(e)}setLayoutProperty(e,r,a={}){r!=null&&this._validate(t_,`layers.${this.id}.layout.${e}`,e,r,a)||(e!=="visibility"?this._unevaluatedLayout.setValue(e,r):this.visibility=r)}getPaintProperty(e){return yn(e,Ix)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,r,a={}){if(r!=null&&this._validate(e_,`layers.${this.id}.paint.${e}`,e,r,a))return!1;if(yn(e,Ix))return this._transitionablePaint.setTransition(e.slice(0,-11),r||void 0),!1;{const u=this._transitionablePaint._values[e],p=u.value.isDataDriven(),m=u.value;this._transitionablePaint.setValue(e,r),this._handleSpecialPaintPropertyUpdate(e);const y=this._transitionablePaint._values[e].value,w=y.isDataDriven(),b=yn(e,"pattern")||e==="line-dasharray";return w||p||b||this._handleOverridablePaintPropertyUpdate(e,m,y)}}_handleSpecialPaintPropertyUpdate(e){}getProgramIds(){return null}getProgramConfiguration(e){return null}_handleOverridablePaintPropertyUpdate(e,r,a){return!1}isHidden(e){return!!(this.minzoom&&e=this.maxzoom)||this.visibility==="none"}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(e,r){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,r)}serialize(){const 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&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(e.layout=e.layout||{},e.layout.visibility=this.visibility),Ro(e,(r,a)=>!(r===void 0||a==="layout"&&!Object.keys(r).length||a==="paint"&&!Object.keys(r).length))}_validate(e,r,a,u,p={}){return(!p||p.validate!==!1)&&ef(this,e.call(Qp,{key:r,layerType:this.type,objectKey:a,value:u,styleSpec:Le,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const e in this.paint._values){const r=this.paint.get(e);if(r instanceof Z&&ta(r.property.specification)&&(r.value.kind==="source"||r.value.kind==="composite")&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=Mc(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const sC=_e([{name:"a_pos",components:2,type:"Int16"}],4),aC=_e([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);class jn{constructor(e=[]){this.segments=e}prepareSegment(e,r,a,u){let p=this.segments[this.segments.length-1];return e>jn.MAX_VERTEX_ARRAY_LENGTH&&vn(`Max vertices per segment is ${jn.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}`),(!p||p.vertexLength+e>jn.MAX_VERTEX_ARRAY_LENGTH||p.sortKey!==u)&&(p={vertexOffset:r.length,primitiveOffset:a.length,vertexLength:0,primitiveLength:0},u!==void 0&&(p.sortKey=u),this.segments.push(p)),p}get(){return this.segments}destroy(){for(const e of this.segments)for(const r in e.vaos)e.vaos[r].destroy()}static simpleSegment(e,r,a,u){return new jn([{vertexOffset:e,primitiveOffset:r,vertexLength:a,primitiveLength:u,vaos:{},sortKey:0}])}}jn.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,ht(jn,"SegmentVector");var vt=8192;class ha{constructor(e,r){e&&(r?this.setSouthWest(e).setNorthEast(r):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 ln?new ln(e.lng,e.lat):ln.convert(e),this}setSouthWest(e){return this._sw=e instanceof ln?new ln(e.lng,e.lat):ln.convert(e),this}extend(e){const r=this._sw,a=this._ne;let u,p;if(e instanceof ln)u=e,p=e;else{if(!(e instanceof ha))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(ha.convert(e)):this.extend(ln.convert(e)):typeof e=="object"&&e!==null&&e.hasOwnProperty("lat")&&(e.hasOwnProperty("lon")||e.hasOwnProperty("lng"))?this.extend(ln.convert(e)):this;if(u=e._sw,p=e._ne,!u||!p)return this}return r||a?(r.lng=Math.min(u.lng,r.lng),r.lat=Math.min(u.lat,r.lat),a.lng=Math.max(p.lng,a.lng),a.lat=Math.max(p.lat,a.lat)):(this._sw=new ln(u.lng,u.lat),this._ne=new ln(p.lng,p.lat)),this}getCenter(){return new ln((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 ln(this.getWest(),this.getNorth())}getSouthEast(){return new ln(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){const{lng:r,lat:a}=ln.convert(e);let u=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(u=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=a&&a<=this._ne.lat&&u}static convert(e){return!e||e instanceof ha?e:new ha(e)}}var lf=1e-6,cr=typeof Float32Array<"u"?Float32Array:Array;function Mx(){var n=new cr(9);return cr!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function kx(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=r[0],L=r[1],R=r[2],B=r[3],V=r[4],K=r[5],ie=r[6],Y=r[7],te=r[8];return n[0]=k*a+L*m+R*b,n[1]=k*u+L*y+R*A,n[2]=k*p+L*w+R*I,n[3]=B*a+V*m+K*b,n[4]=B*u+V*y+K*A,n[5]=B*p+V*w+K*I,n[6]=ie*a+Y*m+te*b,n[7]=ie*u+Y*y+te*A,n[8]=ie*p+Y*w+te*I,n}function go(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function c_(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=e[4],y=e[5],w=e[6],b=e[7],A=e[8],I=e[9],k=e[10],L=e[11],R=e[12],B=e[13],V=e[14],K=e[15],ie=r*y-a*m,Y=r*w-u*m,te=r*b-p*m,ae=a*w-u*y,se=a*b-p*y,Se=u*b-p*w,be=A*B-I*R,Re=A*V-k*R,We=A*K-L*R,Ie=I*V-k*B,Ne=I*K-L*B,Ue=k*K-L*V,$e=ie*Ue-Y*Ne+te*Ie+ae*We-se*Re+Se*be;return $e?(n[0]=(y*Ue-w*Ne+b*Ie)*($e=1/$e),n[1]=(u*Ne-a*Ue-p*Ie)*$e,n[2]=(B*Se-V*se+K*ae)*$e,n[3]=(k*se-I*Se-L*ae)*$e,n[4]=(w*We-m*Ue-b*Re)*$e,n[5]=(r*Ue-u*We+p*Re)*$e,n[6]=(V*te-R*Se-K*Y)*$e,n[7]=(A*Se-k*te+L*Y)*$e,n[8]=(m*Ne-y*We+b*be)*$e,n[9]=(a*We-r*Ne-p*be)*$e,n[10]=(R*se-B*te+K*ie)*$e,n[11]=(I*te-A*se-L*ie)*$e,n[12]=(y*Re-m*Ie-w*be)*$e,n[13]=(r*Ie-a*Re+u*be)*$e,n[14]=(B*Y-R*ae-V*ie)*$e,n[15]=(A*ae-I*Y+k*ie)*$e,n):null}function Tl(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=e[9],L=e[10],R=e[11],B=e[12],V=e[13],K=e[14],ie=e[15],Y=r[0],te=r[1],ae=r[2],se=r[3];return n[0]=Y*a+te*y+ae*I+se*B,n[1]=Y*u+te*w+ae*k+se*V,n[2]=Y*p+te*b+ae*L+se*K,n[3]=Y*m+te*A+ae*R+se*ie,n[4]=(Y=r[4])*a+(te=r[5])*y+(ae=r[6])*I+(se=r[7])*B,n[5]=Y*u+te*w+ae*k+se*V,n[6]=Y*p+te*b+ae*L+se*K,n[7]=Y*m+te*A+ae*R+se*ie,n[8]=(Y=r[8])*a+(te=r[9])*y+(ae=r[10])*I+(se=r[11])*B,n[9]=Y*u+te*w+ae*k+se*V,n[10]=Y*p+te*b+ae*L+se*K,n[11]=Y*m+te*A+ae*R+se*ie,n[12]=(Y=r[12])*a+(te=r[13])*y+(ae=r[14])*I+(se=r[15])*B,n[13]=Y*u+te*w+ae*k+se*V,n[14]=Y*p+te*b+ae*L+se*K,n[15]=Y*m+te*A+ae*R+se*ie,n}function Fh(n,e,r){var a,u,p,m,y,w,b,A,I,k,L,R,B=r[0],V=r[1],K=r[2];return e===n?(n[12]=e[0]*B+e[4]*V+e[8]*K+e[12],n[13]=e[1]*B+e[5]*V+e[9]*K+e[13],n[14]=e[2]*B+e[6]*V+e[10]*K+e[14],n[15]=e[3]*B+e[7]*V+e[11]*K+e[15]):(u=e[1],p=e[2],m=e[3],y=e[4],w=e[5],b=e[6],A=e[7],I=e[8],k=e[9],L=e[10],R=e[11],n[0]=a=e[0],n[1]=u,n[2]=p,n[3]=m,n[4]=y,n[5]=w,n[6]=b,n[7]=A,n[8]=I,n[9]=k,n[10]=L,n[11]=R,n[12]=a*B+y*V+I*K+e[12],n[13]=u*B+w*V+k*K+e[13],n[14]=p*B+b*V+L*K+e[14],n[15]=m*B+A*V+R*K+e[15]),n}function Sl(n,e,r){var a=r[0],u=r[1],p=r[2];return n[0]=e[0]*a,n[1]=e[1]*a,n[2]=e[2]*a,n[3]=e[3]*a,n[4]=e[4]*u,n[5]=e[5]*u,n[6]=e[6]*u,n[7]=e[7]*u,n[8]=e[8]*p,n[9]=e[9]*p,n[10]=e[10]*p,n[11]=e[11]*p,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n}function u_(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[4],m=e[5],y=e[6],w=e[7],b=e[8],A=e[9],I=e[10],k=e[11];return e!==n&&(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[4]=p*u+b*a,n[5]=m*u+A*a,n[6]=y*u+I*a,n[7]=w*u+k*a,n[8]=b*u-p*a,n[9]=A*u-m*a,n[10]=I*u-y*a,n[11]=k*u-w*a,n}function cf(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[0],m=e[1],y=e[2],w=e[3],b=e[8],A=e[9],I=e[10],k=e[11];return e!==n&&(n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[0]=p*u-b*a,n[1]=m*u-A*a,n[2]=y*u-I*a,n[3]=w*u-k*a,n[8]=p*a+b*u,n[9]=m*a+A*u,n[10]=y*a+I*u,n[11]=w*a+k*u,n}function Px(n,e){return n[0]=e[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=e[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function zx(n,e,r){var a,u,p,m=r[0],y=r[1],w=r[2],b=Math.hypot(m,y,w);return b0&&(p=1/Math.sqrt(p)),n[0]=e[0]*p,n[1]=e[1]*p,n[2]=e[2]*p,n}function qr(n,e){return n[0]*e[0]+n[1]*e[1]+n[2]*e[2]}function p_(n,e,r){var a=e[0],u=e[1],p=e[2],m=r[0],y=r[1],w=r[2];return n[0]=u*w-p*y,n[1]=p*m-a*w,n[2]=a*y-u*m,n}function On(n,e,r){var a=e[0],u=e[1],p=e[2],m=r[3]*a+r[7]*u+r[11]*p+r[15];return n[0]=(r[0]*a+r[4]*u+r[8]*p+r[12])/(m=m||1),n[1]=(r[1]*a+r[5]*u+r[9]*p+r[13])/m,n[2]=(r[2]*a+r[6]*u+r[10]*p+r[14])/m,n}function Dx(n,e,r){var a=r[0],u=r[1],p=r[2],m=e[0],y=e[1],w=e[2],b=u*w-p*y,A=p*m-a*w,I=a*y-u*m,k=u*I-p*A,L=p*b-a*I,R=a*A-u*b,B=2*r[3];return A*=B,I*=B,L*=2,R*=2,n[0]=m+(b*=B)+(k*=2),n[1]=y+A+L,n[2]=w+I+R,n}var Gh,_o=d_,cC=Rx,uC=Nh;function Ox(n,e,r){return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3]*r,n}function Bx(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=r*r+a*a+u*u+p*p;return m>0&&(m=1/Math.sqrt(m)),n[0]=r*m,n[1]=a*m,n[2]=u*m,n[3]=p*m,n}function Al(n,e,r){var a=e[0],u=e[1],p=e[2],m=e[3];return n[0]=r[0]*a+r[4]*u+r[8]*p+r[12]*m,n[1]=r[1]*a+r[5]*u+r[9]*p+r[13]*m,n[2]=r[2]*a+r[6]*u+r[10]*p+r[14]*m,n[3]=r[3]*a+r[7]*u+r[11]*p+r[15]*m,n}function Fx(){var n=new cr(4);return cr!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function Nx(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n}function Ux(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w+m*y,n[1]=u*w+p*y,n[2]=p*w-u*y,n[3]=m*w-a*y,n}function jx(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w-p*y,n[1]=u*w+m*y,n[2]=p*w+a*y,n[3]=m*w-u*y,n}h_(),Gh=new cr(4),cr!=Float32Array&&(Gh[0]=0,Gh[1]=0,Gh[2]=0,Gh[3]=0);var hC=Bx;h_(),Oc(1,0,0),Oc(0,1,0),Fx(),Fx(),Mx();const dC=_e([{type:"Float32",name:"a_globe_pos",components:3},{type:"Float32",name:"a_uv",components:2}]),{members:Vx}=dC,Gx=_e([{name:"a_pos_3",components:3,type:"Int16"}]);var $h=_e([{name:"a_pos",type:"Int16",components:2}]);class f_{constructor(e,r){this.pos=e,this.dir=r}intersectsPlane(e,r,a){const u=qr(r,this.dir);if(Math.abs(u)<1e-6)return!1;const p=((e[0]-this.pos[0])*r[0]+(e[1]-this.pos[1])*r[1]+(e[2]-this.pos[2])*r[2])/u;return a[0]=this.pos[0]+this.dir[0]*p,a[1]=this.pos[1]+this.dir[1]*p,a[2]=this.pos[2]+this.dir[2]*p,!0}closestPointOnSphere(e,r,a){if(function(L,R){var B=L[0],V=L[1],K=L[2],ie=R[0],Y=R[1],te=R[2];return Math.abs(B-ie)<=lf*Math.max(1,Math.abs(B),Math.abs(ie))&&Math.abs(V-Y)<=lf*Math.max(1,Math.abs(V),Math.abs(Y))&&Math.abs(K-te)<=lf*Math.max(1,Math.abs(K),Math.abs(te))}(this.pos,e)||r===0)return a[0]=a[1]=a[2]=0,!1;const[u,p,m]=this.dir,y=this.pos[0]-e[0],w=this.pos[1]-e[1],b=this.pos[2]-e[2],A=u*u+p*p+m*m,I=2*(y*u+w*p+b*m),k=I*I-4*A*(y*y+w*w+b*b-r*r);if(k<0){const L=Math.max(-I/2,0),R=y+u*L,B=w+p*L,V=b+m*L,K=Math.hypot(R,B,V);return a[0]=R*r/K,a[1]=B*r/K,a[2]=V*r/K,!1}{const L=(-I-Math.sqrt(k))/(2*A);if(L<0){const R=Math.hypot(y,w,b);return a[0]=y*r/R,a[1]=w*r/R,a[2]=b*r/R,!1}return a[0]=y+u*L,a[1]=w+p*L,a[2]=b+m*L,!0}}}class m_{constructor(e,r,a,u,p){this.TL=e,this.TR=r,this.BR=a,this.BL=u,this.horizon=p}static fromInvProjectionMatrix(e,r,a){const u=[-1,1,1],p=[1,1,1],m=[1,-1,1],y=[-1,-1,1],w=On(u,u,e),b=On(p,p,e),A=On(m,m,e),I=On(y,y,e);return new m_(w,b,A,I,r/a)}}class g_{constructor(e,r){this.points=e,this.planes=r}static fromInvProjectionMatrix(e,r,a,u){const p=Math.pow(2,a),m=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(w=>{const b=Al([],w,e),A=1/b[3]/r*p;return function(I,k,L){return I[0]=k[0]*L[0],I[1]=k[1]*L[1],I[2]=k[2]*L[2],I[3]=k[3]*L[3],I}(b,b,[A,A,u?1/b[3]:A,A])}),y=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(w=>{const b=Bi([],p_([],_o([],m[w[0]],m[w[1]]),_o([],m[w[2]],m[w[1]]))),A=-qr(b,m[w[1]]);return b.concat(A)});return new g_(m,y)}}class Fi{static fromPoints(e){const r=[1/0,1/0,1/0],a=[-1/0,-1/0,-1/0];for(const u of e)Uh(r,r,u),jh(a,a,u);return new Fi(r,a)}static applyTransform(e,r){const a=e.getCorners();for(let u=0;u=0;if(m===0)return 0;m!==r.length&&(a=!1)}if(a)return 2;for(let u=0;u<3;u++){let p=Number.MAX_VALUE,m=-Number.MAX_VALUE;for(let y=0;ythis.max[u]-this.min[u])return 0}return 1}}const __=5,$x=6,Vo=vt/Math.PI/2,pC=16383,Cl=64,qh=[Cl,32,16],Zr=-Vo,Wr=Vo,fC=[new Fi([Zr,Zr,Zr],[Wr,Wr,Wr]),new Fi([Zr,Zr,Zr],[0,0,Wr]),new Fi([0,Zr,Zr],[Wr,0,Wr]),new Fi([Zr,0,Zr],[0,Wr,Wr]),new Fi([0,0,Zr],[Wr,Wr,Wr])];function uf(n){return n*Vo/Hh}function qx(n,e,r,a=!0){const u=Sr([],n._camera.position,n.worldSize),p=[e,r,1,1];Al(p,p,n.pixelMatrixInverse),Ox(p,p,1/p[3]);const m=Bi([],_o([],p,u)),y=n.globeMatrix,w=[y[12],y[13],y[14]],b=_o([],w,u),A=Nh(b),I=Bi([],b),k=n.worldSize/(2*Math.PI),L=qr(I,m),R=Math.asin(k/A);if(R1?null:function(a,u,p,m){const y=Math.sin(p);return a*(Math.sin((1-m)*p)/y)+u*(Math.sin(m*p)/y)}(n.a[e],n.b[e],n.angle,Ke(r,0,1))+n.center[e]}function Go(n){if(n.z<=1)return fC[n.z+2*n.y+n.x];const e=v_(hf(n));return Fi.fromPoints(e)}function Il(n,e,r){return Sr(n,n,1-r),Vh(n,n,e,r)}function Zx(n,e){const r=Nc(e.zoom);if(r===0)return Go(n);const a=hf(n),u=v_(a),p=$o(a.getWest())*e.worldSize,m=$o(a.getEast())*e.worldSize,y=qo(a.getNorth())*e.worldSize,w=qo(a.getSouth())*e.worldSize,b=[p,y,0],A=[m,y,0],I=[p,w,0],k=[m,w,0],L=c_([],e.globeMatrix);return On(b,b,L),On(A,A,L),On(I,I,L),On(k,k,L),u[0]=Il(u[0],I,r),u[1]=Il(u[1],k,r),u[2]=Il(u[2],A,r),u[3]=Il(u[3],b,r),Fi.fromPoints(u)}function Wx(n,e,r){for(const a of n)On(a,a,e),Sr(a,a,r)}function gC(n,e,r){const a=e/n.worldSize,u=n.globeMatrix;if(r.z<=1){const be=Go(r).getCorners();return Wx(be,u,a),Fi.fromPoints(be)}const p=hf(r),m=v_(p);Wx(m,u,a);const y=Number.MAX_VALUE,w=[-y,-y,-y],b=[y,y,y];if(p.contains(n.center)){for(const We of m)Uh(b,b,We),jh(w,w,We);w[2]=0;const be=n.point,Re=[be.x*a,be.y*a,0];return Uh(b,b,Re),jh(w,w,Re),new Fi(b,w)}const A=[u[12]*a,u[13]*a,u[14]*a],I=p.getCenter(),k=Ke(n.center.lat,-Ei,Ei),L=Ke(I.lat,-Ei,Ei),R=$o(n.center.lng),B=qo(k);let V=R-$o(I.lng);const K=B-qo(L);V>.5?V-=1:V<-.5&&(V+=1);let ie=0;Math.abs(V)>Math.abs(K)?ie=V>=0?1:3:(ie=K>=0?0:2,Vh(A,A,[u[4]*a,u[5]*a,u[6]*a],-Math.sin(St(K>=0?p.getSouth():p.getNorth()))*Vo));const Y=m[ie],te=m[(ie+1)%4],ae=new mC(Y,te,A),se=[y_(ae,0)||Y[0],y_(ae,1)||Y[1],y_(ae,2)||Y[2]],Se=Nc(n.zoom);if(Se>0){const be=function({x:We,y:Ie,z:Ne},Ue,$e,Je,Pe){const rt=1/(1<.5?_t=-1:Ct<-.5&&(_t=1),pt=((pt+_t)*Ue-(Je*=Ue))*$e+Je,ot=((ot+_t)*Ue-Je)*$e+Je,At=(At*Ue-(Pe*=Ue))*$e+Pe,Qe=(Qe*Ue-Pe)*$e+Pe,[[pt,Qe,0],[ot,Qe,0],[ot,At,0],[pt,At,0]]}(r,e,n._pixelsPerMercatorPixel,R,B);for(let We=0;WeMath.PI/2*1.01}const Yx=St(85),_C=Math.cos(Yx),yC=Math.sin(Yx),Hh=63710088e-1,Jx=2*Math.PI*Hh;class da{constructor(e,r){if(isNaN(e)||isNaN(r))throw new Error(`Invalid LngLat object: (${e}, ${r})`);if(this.lng=+e,this.lat=+r,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new da(xt(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){const r=Math.PI/180,a=this.lat*r,u=e.lat*r,p=Math.sin(a)*Math.sin(u)+Math.cos(a)*Math.cos(u)*Math.cos((e.lng-this.lng)*r);return Hh*Math.acos(Math.min(p,1))}toBounds(e=0){const r=360*e/40075017,a=r/Math.cos(Math.PI/180*this.lat);return new ha(new da(this.lng-a,this.lat-r),new da(this.lng+a,this.lat+r))}toEcef(e){const r=uf(e);return Fc(this.lat,this.lng,Vo+r)}static convert(e){if(e instanceof da)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new da(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e=="object"&&e!==null)return new da(Number("lng"in e?e.lng:e.lon),Number(e.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}var ln=da;function b_(n){return Jx*Math.cos(n*Math.PI/180)}function $o(n){return(180+n)/360}function qo(n){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n*Math.PI/360)))/360}function yo(n,e){return n/b_(e)}function Ar(n){return 360*n-180}function bi(n){return 360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90}function Qx(n,e){return n*b_(bi(e))}const Ei=85.051129;function e1(n){return 1/Math.cos(n*Math.PI/180)}class Uc{constructor(e,r,a=0){this.x=+e,this.y=+r,this.z=+a}static fromLngLat(e,r=0){const a=ln.convert(e);return new Uc($o(a.lng),qo(a.lat),yo(r,a.lat))}toLngLat(){return new ln(Ar(this.x),bi(this.y))}toAltitude(){return Qx(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Jx*e1(bi(this.y))}}function E_(n,e,r,a,u,p,m,y,w){const b=(e+a)/2,A=(r+u)/2,I=new Ve(b,A);y(I),function(k,L,R,B,V,K){const ie=R-V,Y=B-K;return Math.abs((B-L)*ie-(R-k)*Y)/Math.hypot(ie,Y)}(I.x,I.y,p.x,p.y,m.x,m.y)>=w?(E_(n,e,r,b,A,p,I,y,w),E_(n,b,A,a,u,I,m,y,w)):n.push(m)}function t1(n,e,r){let a=n[0],u=a.x,p=a.y;e(a);const m=[a];for(let y=1;yn.x+1||an.y+1)&&vn("Geometry exceeds allowed extent, reduce your vector tile buffer size"),n}function Es(n,e,r){const a=n.loadGeometry(),u=n.extent,p=vt/u;if(e&&r&&r.projection.isReprojectedInTileSpace){const m=1<{const L=Ar((e.x+k.x/u)/m),R=bi((e.y+k.y/u)/m),B=A.project(L,R);k.x=(B.x*y-w)*u,k.y=(B.y*y-b)*u};for(let k=0;k=u||R.y<0||R.y>=u||(I(R),L.push(R));a[k]=L}}for(const m of a)for(const y of m)xC(y,p);return a}function Ml(n,e){return{type:n.type,id:n.id,properties:n.properties,geometry:e?Es(n):[]}}function pf(n,e,r,a,u){n.emplaceBack(2*e+(a+1)/2,2*r+(u+1)/2)}function ff(n,e,r){n.emplaceBack(e.x,e.y,e.z,r[0]*16384,r[1]*16384,r[2]*16384)}class A_{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.projection=e.projection,this.layoutVertexArray=new Ze,this.indexArray=new mt,this.segments=new jn,this.programConfigurations=new El(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,a,u){const p=this.layers[0],m=[];let y=null;p.type==="circle"&&(y=p.layout.get("circle-sort-key"));for(const{feature:b,id:A,index:I,sourceLayerIndex:k}of e){const L=this.layers[0]._featureFilter.needGeometry,R=Ml(b,L);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),R,a))continue;const B=y?y.evaluate(R,{},a):void 0,V={id:A,properties:b.properties,type:b.type,sourceLayerIndex:k,index:I,geometry:L?R.geometry:Es(b,a,u),patterns:{},sortKey:B};m.push(V)}y&&m.sort((b,A)=>b.sortKey-A.sortKey);let w=null;u.projection.name==="globe"&&(this.globeExtVertexArray=new He,w=u.projection);for(const b of m){const{geometry:A,index:I,sourceLayerIndex:k}=b,L=e[I].feature;this.addFeature(b,A,I,r.availableImages,a,w),r.featureIndex.insert(L,A,I,k,this.index)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,sC.members),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,aC.members))),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}addFeature(e,r,a,u,p,m){for(const y of r)for(const w of y){const b=w.x,A=w.y;if(b<0||b>=vt||A<0||A>=vt)continue;if(m){const L=m.projectTilePoint(b,A,p),R=m.upVector(p,b,A),B=this.globeExtVertexArray;ff(B,L,R),ff(B,L,R),ff(B,L,R),ff(B,L,R)}const I=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,e.sortKey),k=I.vertexLength;pf(this.layoutVertexArray,b,A,-1,-1),pf(this.layoutVertexArray,b,A,1,-1),pf(this.layoutVertexArray,b,A,1,1),pf(this.layoutVertexArray,b,A,-1,1),this.indexArray.emplaceBack(k,k+1,k+2),this.indexArray.emplaceBack(k,k+2,k+3),I.vertexLength+=4,I.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{},u,p)}}function i1(n,e){for(let r=0;r1){if(C_(n,e))return!0;for(let a=0;a1?r:r.sub(e)._mult(u)._add(e))}function s1(n,e){let r,a,u,p=!1;for(let m=0;me.y!=u.y>e.y&&e.x<(u.x-a.x)*(e.y-a.y)/(u.y-a.y)+a.x&&(p=!p)}return p}function kl(n,e){let r=!1;for(let a=0,u=n.length-1;ae.y!=m.y>e.y&&e.x<(m.x-p.x)*(e.y-p.y)/(m.y-p.y)+p.x&&(r=!r)}return r}function a1(n,e,r,a,u){for(const m of n)if(e<=m.x&&r<=m.y&&a>=m.x&&u>=m.y)return!0;const p=[new Ve(e,r),new Ve(e,u),new Ve(a,u),new Ve(a,r)];if(n.length>2){for(const m of p)if(kl(n,m))return!0}for(let m=0;mu.x&&e.x>u.x||n.yu.y&&e.y>u.y)return!1;const p=nr(n,e,r[0]);return p!==nr(n,e,r[1])||p!==nr(n,e,r[2])||p!==nr(n,e,r[3])}function jc(n,e,r){const a=e.paint.get(n).value;return a.kind==="constant"?a.value:r.programConfigurations.get(e.id).getMaxValue(n)}function mf(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function l1(n,e,r,a,u){if(!e[0]&&!e[1])return n;const p=Ve.convert(e)._mult(u);r==="viewport"&&p._rotate(-a);const m=[];for(let y=0;y0){const Y=r.projection.upVector(b,L.x,L.y);B.x+=Y[0]*A*R,B.y+=Y[1]*A*R,B.z+=Y[2]*A*R}const V=p?L:CC(B.x,B.y,B.z,a),K=p?n.tilespaceRays.map(Y=>MC(Y,R)):n.queryGeometry.screenGeometry,ie=Al([],[B.x,B.y,B.z,1],a);if(!m&&p?w*=ie[3]/r.cameraToCenterDistance:m&&!p&&(w*=r.cameraToCenterDistance/ie[3]),p){const Y=bi((k.y/vt+b.y)/(1<n.width||u.height>n.height||r.x>n.width-u.width||r.y>n.height-u.height)throw new RangeError("out of range source coordinates for image copy");if(u.width>e.width||u.height>e.height||a.x>e.width-u.width||a.y>e.height-u.height)throw new RangeError("out of range destination coordinates for image copy");const m=n.data,y=e.data;for(let w=0;w{e[n.evaluationKey]=w;const b=n.expression.evaluate(e);u.data[m+y+0]=Math.floor(255*b.r/b.a),u.data[m+y+1]=Math.floor(255*b.g/b.a),u.data[m+y+2]=Math.floor(255*b.b/b.a),u.data[m+y+3]=Math.floor(255*b.a)};if(n.clips)for(let m=0,y=0;m80*r){a=p=n[0],u=m=n[1];for(var R=r;Rp&&(p=y),w>m&&(m=w);b=(b=Math.max(p-a,m-u))!==0?32767/b:0}return Xh(k,L,r,a,u,b,0),L}function m1(n,e,r,a,u){var p,m;if(u===R_(n,e,r,a)>0)for(p=e;p=e;p-=a)m=y1(p,n[p],n[p+1],m);return m&&_f(m,m.next)&&(Yh(m),m=m.next),m}function Pl(n,e){if(!n)return n;e||(e=n);var r,a=n;do if(r=!1,a.steiner||!_f(a,a.next)&&Vn(a.prev,a,a.next)!==0)a=a.next;else{if(Yh(a),(a=e=a.prev)===a.next)break;r=!0}while(r||a!==e);return e}function Xh(n,e,r,a,u,p,m){if(n){!m&&p&&function(A,I,k,L){var R=A;do R.z===0&&(R.z=z_(R.x,R.y,I,k,L)),R.prevZ=R.prev,R.nextZ=R.next,R=R.next;while(R!==A);R.prevZ.nextZ=null,R.prevZ=null,function(B){var V,K,ie,Y,te,ae,se,Se,be=1;do{for(K=B,B=null,te=null,ae=0;K;){for(ae++,ie=K,se=0,V=0;V0||Se>0&&ie;)se!==0&&(Se===0||!ie||K.z<=ie.z)?(Y=K,K=K.nextZ,se--):(Y=ie,ie=ie.nextZ,Se--),te?te.nextZ=Y:B=Y,Y.prevZ=te,te=Y;K=ie}te.nextZ=null,be*=2}while(ae>1)}(R)}(n,a,u,p);for(var y,w,b=n;n.prev!==n.next;)if(y=n.prev,w=n.next,p?DC(n,a,u,p):RC(n))e.push(y.i/r|0),e.push(n.i/r|0),e.push(w.i/r|0),Yh(n),n=w.next,b=w.next;else if((n=w)===b){m?m===1?Xh(n=OC(Pl(n),e,r),e,r,a,u,p,2):m===2&&BC(n,e,r,a,u,p):Xh(Pl(n),e,r,a,u,p,1);break}}}function RC(n){var e=n.prev,r=n,a=n.next;if(Vn(e,r,a)>=0)return!1;for(var u=e.x,p=r.x,m=a.x,y=e.y,w=r.y,b=a.y,A=up?u>m?u:m:p>m?p:m,L=y>w?y>b?y:b:w>b?w:b,R=a.next;R!==e;){if(R.x>=A&&R.x<=k&&R.y>=I&&R.y<=L&&Vc(u,y,p,w,m,b,R.x,R.y)&&Vn(R.prev,R,R.next)>=0)return!1;R=R.next}return!0}function DC(n,e,r,a){var u=n.prev,p=n,m=n.next;if(Vn(u,p,m)>=0)return!1;for(var y=u.x,w=p.x,b=m.x,A=u.y,I=p.y,k=m.y,L=yw?y>b?y:b:w>b?w:b,V=A>I?A>k?A:k:I>k?I:k,K=z_(L,R,e,r,a),ie=z_(B,V,e,r,a),Y=n.prevZ,te=n.nextZ;Y&&Y.z>=K&&te&&te.z<=ie;){if(Y.x>=L&&Y.x<=B&&Y.y>=R&&Y.y<=V&&Y!==u&&Y!==m&&Vc(y,A,w,I,b,k,Y.x,Y.y)&&Vn(Y.prev,Y,Y.next)>=0||(Y=Y.prevZ,te.x>=L&&te.x<=B&&te.y>=R&&te.y<=V&&te!==u&&te!==m&&Vc(y,A,w,I,b,k,te.x,te.y)&&Vn(te.prev,te,te.next)>=0))return!1;te=te.nextZ}for(;Y&&Y.z>=K;){if(Y.x>=L&&Y.x<=B&&Y.y>=R&&Y.y<=V&&Y!==u&&Y!==m&&Vc(y,A,w,I,b,k,Y.x,Y.y)&&Vn(Y.prev,Y,Y.next)>=0)return!1;Y=Y.prevZ}for(;te&&te.z<=ie;){if(te.x>=L&&te.x<=B&&te.y>=R&&te.y<=V&&te!==u&&te!==m&&Vc(y,A,w,I,b,k,te.x,te.y)&&Vn(te.prev,te,te.next)>=0)return!1;te=te.nextZ}return!0}function OC(n,e,r){var a=n;do{var u=a.prev,p=a.next.next;!_f(u,p)&&g1(u,a,a.next,p)&&Kh(u,p)&&Kh(p,u)&&(e.push(u.i/r|0),e.push(a.i/r|0),e.push(p.i/r|0),Yh(a),Yh(a.next),a=n=p),a=a.next}while(a!==n);return Pl(a)}function BC(n,e,r,a,u,p){var m=n;do{for(var y=m.next.next;y!==m.prev;){if(m.i!==y.i&&VC(m,y)){var w=_1(m,y);return m=Pl(m,m.next),w=Pl(w,w.next),Xh(m,e,r,a,u,p,0),void Xh(w,e,r,a,u,p,0)}y=y.next}m=m.next}while(m!==n)}function FC(n,e){return n.x-e.x}function NC(n,e){var r=function(u,p){var m,y=p,w=u.x,b=u.y,A=-1/0;do{if(b<=y.y&&b>=y.next.y&&y.next.y!==y.y){var I=y.x+(b-y.y)*(y.next.x-y.x)/(y.next.y-y.y);if(I<=w&&I>A&&(A=I,m=y.x=y.x&&y.x>=R&&w!==y.x&&Vc(bm.x||y.x===m.x&&UC(m,y)))&&(m=y,V=k)),y=y.next;while(y!==L);return m}(n,e);if(!r)return e;var a=_1(r,n);return Pl(a,a.next),Pl(r,r.next)}function UC(n,e){return Vn(n.prev,n,e.prev)<0&&Vn(e.next,n,n.next)<0}function z_(n,e,r,a,u){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*u|0)|n<<8))|n<<4))|n<<2))|n<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-a)*u|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function jC(n){var e=n,r=n;do(e.x=(n-m)*(p-y)&&(n-m)*(a-y)>=(r-m)*(e-y)&&(r-m)*(p-y)>=(u-m)*(a-y)}function VC(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!function(r,a){var u=r;do{if(u.i!==r.i&&u.next.i!==r.i&&u.i!==a.i&&u.next.i!==a.i&&g1(u,u.next,r,a))return!0;u=u.next}while(u!==r);return!1}(n,e)&&(Kh(n,e)&&Kh(e,n)&&function(r,a){var u=r,p=!1,m=(r.x+a.x)/2,y=(r.y+a.y)/2;do u.y>y!=u.next.y>y&&u.next.y!==u.y&&m<(u.next.x-u.x)*(y-u.y)/(u.next.y-u.y)+u.x&&(p=!p),u=u.next;while(u!==r);return p}(n,e)&&(Vn(n.prev,n,e.prev)||Vn(n,e.prev,e))||_f(n,e)&&Vn(n.prev,n,n.next)>0&&Vn(e.prev,e,e.next)>0)}function Vn(n,e,r){return(e.y-n.y)*(r.x-e.x)-(e.x-n.x)*(r.y-e.y)}function _f(n,e){return n.x===e.x&&n.y===e.y}function g1(n,e,r,a){var u=vf(Vn(n,e,r)),p=vf(Vn(n,e,a)),m=vf(Vn(r,a,n)),y=vf(Vn(r,a,e));return u!==p&&m!==y||!(u!==0||!yf(n,r,e))||!(p!==0||!yf(n,a,e))||!(m!==0||!yf(r,n,a))||!(y!==0||!yf(r,e,a))}function yf(n,e,r){return e.x<=Math.max(n.x,r.x)&&e.x>=Math.min(n.x,r.x)&&e.y<=Math.max(n.y,r.y)&&e.y>=Math.min(n.y,r.y)}function vf(n){return n>0?1:n<0?-1:0}function Kh(n,e){return Vn(n.prev,n,n.next)<0?Vn(n,e,n.next)>=0&&Vn(n,n.prev,e)>=0:Vn(n,e,n.prev)<0||Vn(n,n.next,e)<0}function _1(n,e){var r=new L_(n.i,n.x,n.y),a=new L_(e.i,e.x,e.y),u=n.next,p=e.prev;return n.next=e,e.prev=n,r.next=u,u.prev=r,a.next=r,r.prev=a,p.next=a,a.prev=p,a}function y1(n,e,r,a){var u=new L_(n,e,r);return a?(u.next=a.next,u.prev=a,a.next.prev=u,a.next=u):(u.prev=u,u.next=u),u}function Yh(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function L_(n,e,r){this.i=n,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function R_(n,e,r,a){for(var u=0,p=e,m=r-a;p0&&r.holes.push(a+=n[u-1].length)}return r};var D_=le(P_.exports);function GC(n,e,r,a,u){v1(n,e,r||0,a||n.length-1,u||$C)}function v1(n,e,r,a,u){for(;a>r;){if(a-r>600){var p=a-r+1,m=e-r+1,y=Math.log(p),w=.5*Math.exp(2*y/3),b=.5*Math.sqrt(y*w*(p-w)/p)*(m-p/2<0?-1:1);v1(n,e,Math.max(r,Math.floor(e-m*w/p+b)),Math.min(a,Math.floor(e+(p-m)*w/p+b)),u)}var A=n[e],I=r,k=a;for(Jh(n,r,e),u(n[a],A)>0&&Jh(n,r,a);I0;)k--}u(n[r],A)===0?Jh(n,r,k):Jh(n,++k,a),k<=e&&(r=k+1),e<=k&&(a=k-1)}}function Jh(n,e,r){var a=n[e];n[e]=n[r],n[r]=a}function $C(n,e){return ne?1:0}function O_(n,e){const r=n.length;if(r<=1)return[n];const a=[];let u,p;for(let m=0;m1)for(let m=0;mr.id),this.index=e.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Ze,this.indexArray=new mt,this.indexArray2=new si,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.segments2=new jn,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id),this.projection=e.projection}populate(e,r,a,u){this.hasPattern=B_("fill",this.layers,r);const p=this.layers[0].layout.get("fill-sort-key"),m=[];for(const{feature:y,id:w,index:b,sourceLayerIndex:A}of e){const I=this.layers[0]._featureFilter.needGeometry,k=Ml(y,I);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),k,a))continue;const L=p?p.evaluate(k,{},a,r.availableImages):void 0,R={id:w,properties:y.properties,type:y.type,sourceLayerIndex:A,index:b,geometry:I?k.geometry:Es(y,a,u),patterns:{},sortKey:L};m.push(R)}p&&m.sort((y,w)=>y.sortKey-w.sortKey);for(const y of m){const{geometry:w,index:b,sourceLayerIndex:A}=y;if(this.hasPattern){const I=F_("fill",this.layers,y,this.zoom,r);this.patternFeatures.push(I)}else this.addFeature(y,w,b,a,{},r.availableImages);r.featureIndex.insert(e[b].feature,w,b,A,this.index)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}addFeatures(e,r,a,u,p){for(const m of this.patternFeatures)this.addFeature(m,m.geometry,m.index,r,a,u)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,LC),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(e,r,a,u,p,m=[]){for(const y of O_(r,500)){let w=0;for(const R of y)w+=R.length;const b=this.segments.prepareSegment(w,this.layoutVertexArray,this.indexArray),A=b.vertexLength,I=[],k=[];for(const R of y){if(R.length===0)continue;R!==y[0]&&k.push(I.length/2);const B=this.segments2.prepareSegment(R.length,this.layoutVertexArray,this.indexArray2),V=B.vertexLength;this.layoutVertexArray.emplaceBack(R[0].x,R[0].y),this.indexArray2.emplaceBack(V+R.length-1,V),I.push(R[0].x),I.push(R[0].y);for(let K=1;K>3}if(u--,a===1||a===2)p+=n.readSVarint(),m+=n.readSVarint(),a===1&&(e&&y.push(e),e=[]),e.push(new JC(p,m));else{if(a!==7)throw new Error("unknown command "+a);e&&e.push(e[0].clone())}}return e&&y.push(e),y},Gc.prototype.bbox=function(){var n=this._pbf;n.pos=this._geometry;for(var e=n.readVarint()+n.pos,r=1,a=0,u=0,p=0,m=1/0,y=-1/0,w=1/0,b=-1/0;n.pos>3}if(a--,r===1||r===2)(u+=n.readSVarint())y&&(y=u),(p+=n.readSVarint())b&&(b=p);else if(r!==7)throw new Error("unknown command "+r)}return[m,w,y,b]},Gc.prototype.toGeoJSON=function(n,e,r){var a,u,p=this.extent*Math.pow(2,r),m=this.extent*n,y=this.extent*e,w=this.loadGeometry(),b=Gc.types[this.type];function A(L){for(var R=0;R>3;u=m===1?a.readString():m===2?a.readFloat():m===3?a.readDouble():m===4?a.readVarint64():m===5?a.readVarint():m===6?a.readSVarint():m===7?a.readBoolean():null}return u}(r))}b1.prototype.feature=function(n){if(n<0||n>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[n];var e=this._pbf.readVarint()+this._pbf.pos;return new tI(this._pbf,e,this.extent,this._keys,this._values)};var iI=w1;function rI(n,e,r){if(n===3){var a=new iI(r,r.readVarint()+r.pos);a.length&&(e[a.name]=a)}}var N_=wf.VectorTile=function(n,e){this.layers=n.readFields(rI,{},e)},bf=wf.VectorTileFeature=x1;function Ef(n,e,r,a){const u=[],p=a===0?(m,y,w,b,A,I)=>{m.push(new Ve(I,w+(I-y)/(b-y)*(A-w)))}:(m,y,w,b,A,I)=>{m.push(new Ve(y+(I-w)/(A-w)*(b-y),I))};for(const m of n){const y=[];for(const w of m){if(w.length<=2)continue;const b=[];for(let k=0;ke&&p(b,L,R,B,V,e):K>r?ie=e&&p(b,L,R,B,V,e),ie>r&&K<=r&&p(b,L,R,B,V,r)}let A=w[w.length-1];const I=a===0?A.x:A.y;I>=e&&I<=r&&b.push(A),b.length&&(A=b[b.length-1],b[0].x===A.x&&b[0].y===A.y||b.push(b[0]),y.push(b))}y.length&&u.push(y)}return u}wf.VectorTileLayer=w1;const oI=bf.types,sI=Math.pow(2,13);function Qh(n,e,r,a,u,p,m,y){n.emplaceBack((e<<1)+m,(r<<1)+p,(Math.floor(a*sI)<<1)+u,Math.round(y))}function ed(n,e,r){n.emplaceBack(e.x,e.y,e.z,r[0]*16384,r[1]*16384,r[2]*16384)}class E1{constructor(){this.acc=new Ve(0,0),this.polyCount=[]}startRing(e){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new Ve(e.x,e.y),this.max=new Ve(e.x,e.y))}append(e,r){this.currentPolyCount.edges++,this.acc._add(e);const a=this.min,u=this.max;e.xu.x&&(u.x=e.x),e.yu.y&&(u.y=e.y),((e.x===0||e.x===vt)&&e.x===r.x)!=((e.y===0||e.y===vt)&&e.y===r.y)&&this.processBorderOverlap(e,r),r.x<0!=e.x<0&&this.addBorderIntersection(0,Zt(r.y,e.y,(0-r.x)/(e.x-r.x))),r.x>vt!=e.x>vt&&this.addBorderIntersection(1,Zt(r.y,e.y,(vt-r.x)/(e.x-r.x))),r.y<0!=e.y<0&&this.addBorderIntersection(2,Zt(r.x,e.x,(0-r.y)/(e.y-r.y))),r.y>vt!=e.y>vt&&this.addBorderIntersection(3,Zt(r.x,e.x,(vt-r.y)/(e.y-r.y)))}addBorderIntersection(e,r){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const a=this.borders[e];ra[1]&&(a[1]=r)}processBorderOverlap(e,r){if(e.x===r.x){if(e.y===r.y)return;const a=e.x===0?0:1;this.addBorderIntersection(a,r.y),this.addBorderIntersection(a,e.y)}else{const a=e.y===0?2:3;this.addBorderIntersection(a,r.x),this.addBorderIntersection(a,e.x)}}centroid(){const e=this.polyCount.reduce((r,a)=>r+a.edges,0);return e!==0?this.acc.div(e)._round():new Ve(0,0)}span(){return new Ve(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((e,r)=>e+ +(r[0]!==Number.MAX_VALUE),0)}}class td{constructor(e){this.zoom=e.zoom,this.canonical=e.canonical,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(r=>r.id),this.index=e.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=e.projection,this.layoutVertexArray=new Be,this.centroidVertexArray=new po,this.indexArray=new mt,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id),this.enableTerrain=e.enableTerrain}populate(e,r,a,u){this.features=[],this.hasPattern=B_("fill-extrusion",this.layers,r),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(p){const m=Math.exp(Math.PI*(1-p.y/(1<=0;K--){const ie=L[K];(ie.length===0||(R=ie[0]).every(Y=>Y.x<=0)||R.every(Y=>Y.x>=vt)||R.every(Y=>Y.y<=0)||R.every(Y=>Y.y>=vt))&&L.splice(K,1)}var R;let B;if(A)B=k1(L,w,u);else{B=[];for(const K of L)B.push({polygon:K,bounds:w})}const V=k?this.edgeRadius:0;for(const{polygon:K,bounds:ie}of B){let Y=0,te=0;for(const se of K)k&&!se[0].equals(se[se.length-1])&&se.push(se[0]),te+=k?se.length-1:se.length;const ae=this.segments.prepareSegment((k?5:4)*te,this.layoutVertexArray,this.indexArray);if(k){const se=[],Se=[];Y=ae.vertexLength;for(const Re of K){let We,Ie;Re.length&&Re!==K[0]&&Se.push(se.length/2),We=Re[1].sub(Re[0])._perp()._unit();for(let Ne=1;Ne4&&C1(se[se.length-2],se[0],se[1]),Ie=V?aI(se[se.length-2],se[0],se[1],V):0;be=se[1].sub(se[0])._perp()._unit();let Ne=!0;for(let Ue=1,$e=0;Ue0?1:0,Qe=Je.dist(Pe);if($e+Qe>32768&&($e=0),V){Re=rt.sub(Pe)._perp()._unit();let It=S1(Je,Pe,rt,T1(be,Re),V);isNaN(It)&&(It=0);const bt=Pe.sub(Je)._unit();Je=Je.add(bt.mult(Ie))._round(),Pe=Pe.add(bt.mult(-It))._round(),Ie=It,be=Re}const _t=ae.vertexLength,Ct=se.length>4&&C1(Je,Pe,rt);let Ht=I1($e,We,Ne);if(Qh(this.layoutVertexArray,Je.x,Je.y,ot,At,0,0,Ht),Qh(this.layoutVertexArray,Je.x,Je.y,ot,At,0,1,Ht),$e+=Qe,Ht=I1($e,Ct,!Ne),We=Ct,Qh(this.layoutVertexArray,Pe.x,Pe.y,ot,At,0,0,Ht),Qh(this.layoutVertexArray,Pe.x,Pe.y,ot,At,0,1,Ht),ae.vertexLength+=4,this.indexArray.emplaceBack(_t+0,_t+1,_t+2),this.indexArray.emplaceBack(_t+1,_t+3,_t+2),ae.primitiveLength+=2,V){const It=Y+(Ue===1?se.length-2:Ue-2),bt=Ue===1?Y:It+1;if(this.indexArray.emplaceBack(_t+1,It,_t+3),this.indexArray.emplaceBack(It,bt,_t+3),ae.primitiveLength+=2,Se===void 0&&(Se=_t),!A1(rt,se[Ue],ie)){const xn=Ue===se.length-1?Se:ae.vertexLength;this.indexArray.emplaceBack(_t+2,_t+3,xn),this.indexArray.emplaceBack(_t+3,xn+1,xn),this.indexArray.emplaceBack(_t+3,bt,xn+1),ae.primitiveLength+=3}Ne=!Ne}if(A){const It=this.layoutVertexExtArray,bt=b.projectTilePoint(Je.x,Je.y,u),xn=b.projectTilePoint(Pe.x,Pe.y,u),zt=b.upVector(u,Je.x,Je.y),Lt=b.upVector(u,Pe.x,Pe.y);ed(It,bt,zt),ed(It,bt,zt),ed(It,xn,Lt),ed(It,xn,Lt)}}k&&(Y+=se.length-1)}}if(I&&I.polyCount.length>0){if(I.borders){I.vertexArrayOffset=this.centroidVertexArray.length;const K=I.borders,ie=this.featuresOnBorder.push(I)-1;for(let Y=0;Y<4;Y++)K[Y][0]!==Number.MAX_VALUE&&this.borders[Y].push(ie)}this.encodeCentroid(I.borders?void 0:I.centroid(),I)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,p,m,u)}sortBorders(){for(let e=0;e<4;e++)this.borders[e].sort((r,a)=>this.featuresOnBorder[r].borders[e][0]-this.featuresOnBorder[a].borders[e][0])}encodeCentroid(e,r,a=!0){let u,p;if(e)if(e.y!==0){const y=r.span()._mult(this.tileToMeter);u=(Math.max(e.x,1)<<3)+Math.min(7,Math.round(y.x/10)),p=(Math.max(e.y,1)<<3)+Math.min(7,Math.round(y.y/10))}else u=Math.ceil(7*(e.x+450)),p=0;else u=0,p=+a;let m=a?this.centroidVertexArray.length:r.vertexArrayOffset;for(const y of r.polyCount){a&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*y.edges+y.top);for(let w=0;wr[1].x&&e.x>r[1].x||n.yr[1].y&&e.y>r[1].y}function C1(n,e,r){if(n.x<0||n.x>=vt||e.x<0||e.x>=vt||r.x<0||r.x>=vt)return!1;const a=r.sub(e),u=a.perp(),p=n.sub(e);return(a.x*p.x+a.y*p.y)/Math.sqrt((a.x*a.x+a.y*a.y)*(p.x*p.x+p.y*p.y))>-.866&&u.x*p.x+u.y*p.y<0}function I1(n,e,r){const a=e?2|n:-3&n;return r?1|a:-2&a}function M1(){const n=Math.PI/32,e=Math.tan(n),r=Hh;return r*Math.sqrt(1+2*e*e)-r}function k1(n,e,r){const a=1<{for(const be of se)R.push({polygon:be,bounds:Se})},V=Math.ceil(Math.log2(A)),K=Math.ceil(Math.log2(I)),ie=V-K,Y=[];for(let se=0;se0?0:1);for(let se=0;seSe+1?ae.push({polygons:$e,bounds:Pe,depth:Se+1}):B($e,Pe)}if(Je.length){const Pe=[new Ve(be===0?Ue:Re.x,be===1?Ue:Re.y),We];Y.length>Se+1?ae.push({polygons:Je,bounds:Pe,depth:Se+1}):B(Je,Pe)}}return R}(n,e,Math.ceil((p-u)/11.25),Math.ceil((m-y)/11.25),1,(w,b,A)=>{if(w===0)return .5*(b+A);{const I=bi((r.y+b/vt)/a);return(qo(.5*(bi((r.y+A/vt)/a)+I))*a-r.y)*vt}})}ht(td,"FillExtrusionBucket",{omit:["layers","features"]}),ht(E1,"PartMetadata");const lI=new Q({"fill-extrusion-edge-radius":new O(Le["layout_fill-extrusion"]["fill-extrusion-edge-radius"])});var cI={paint:new Q({"fill-extrusion-opacity":new O(Le["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new G(Le["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new O(Le["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new O(Le["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new G(Le["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new G(Le["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new G(Le["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new O(Le["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),"fill-extrusion-ambient-occlusion-intensity":new O(Le["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-intensity"]),"fill-extrusion-ambient-occlusion-radius":new O(Le["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-radius"]),"fill-extrusion-rounded-roof":new O(Le["paint_fill-extrusion"]["fill-extrusion-rounded-roof"])}),layout:lI};function P1(n,e,r){var a=2*Math.PI*6378137/256/Math.pow(2,r);return[n*a-2*Math.PI*6378137/2,e*a-2*Math.PI*6378137/2]}class Tf{constructor(e,r,a){this.z=e,this.x=r,this.y=a,this.key=nd(0,e,e,r,a)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,r){const a=function(p,m,y){var w=P1(256*p,256*(m=Math.pow(2,y)-m-1),y),b=P1(256*(p+1),256*(m+1),y);return w[0]+","+w[1]+","+b[0]+","+b[1]}(this.x,this.y,this.z),u=function(p,m,y){let w,b="";for(let A=p;A>0;A--)w=1<this.canonical.z?new Ni(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Ni(e,this.wrap,e,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(e,r=!0){if(this.overscaledZ===e&&r)return this.key;if(e>this.canonical.z)return nd(this.wrap*+r,e,this.canonical.z,this.canonical.x,this.canonical.y);{const a=this.canonical.z-e;return nd(this.wrap*+r,e,e,this.canonical.x>>a,this.canonical.y>>a)}}isChildOf(e){if(e.wrap!==this.wrap)return!1;const r=this.canonical.z-e.canonical.z;return e.overscaledZ===0||e.overscaledZ>r&&e.canonical.y===this.canonical.y>>r}children(e){if(this.overscaledZ>=e)return[new Ni(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,a=2*this.canonical.x,u=2*this.canonical.y;return[new Ni(r,this.wrap,r,a,u),new Ni(r,this.wrap,r,a+1,u),new Ni(r,this.wrap,r,a,u+1),new Ni(r,this.wrap,r,a+1,u+1)]}isLessThan(e){return this.wrape.wrap)&&(this.overscaledZe.overscaledZ)&&(this.canonical.xe.canonical.x)&&this.canonical.yr.id),this.index=e.index,this.projection=e.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(r=>{this.gradients[r.id]={}}),this.layoutVertexArray=new Ce,this.layoutVertexArray2=new qe,this.indexArray=new mt,this.programConfigurations=new El(e.layers,e.zoom),this.segments=new jn,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(r=>r.isStateDependent()).map(r=>r.id)}populate(e,r,a,u){this.hasPattern=B_("line",this.layers,r);const p=this.layers[0].layout.get("line-sort-key"),m=[];for(const{feature:A,id:I,index:k,sourceLayerIndex:L}of e){const R=this.layers[0]._featureFilter.needGeometry,B=Ml(A,R);if(!this.layers[0]._featureFilter.filter(new C(this.zoom),B,a))continue;const V=p?p.evaluate(B,{},a):void 0,K={id:I,properties:A.properties,type:A.type,sourceLayerIndex:L,index:k,geometry:R?B.geometry:Es(A,a,u),patterns:{},sortKey:V};m.push(K)}p&&m.sort((A,I)=>A.sortKey-I.sortKey);const{lineAtlas:y,featureIndex:w}=r,b=this.addConstantDashes(y);for(const A of m){const{geometry:I,index:k,sourceLayerIndex:L}=A;if(b&&this.addFeatureDashes(A,y),this.hasPattern){const R=F_("line",this.layers,A,this.zoom,r);this.patternFeatures.push(R)}else this.addFeature(A,I,k,a,y.positions,r.availableImages);w.insert(e[k].feature,I,k,L,this.index)}}addConstantDashes(e){let r=!1;for(const a of this.layers){const u=a.paint.get("line-dasharray").value,p=a.layout.get("line-cap").value;if(u.kind!=="constant"||p.kind!=="constant")r=!0;else{const m=p.value,y=u.value;if(!y)continue;e.addDash(y,m)}}return r}addFeatureDashes(e,r){const a=this.zoom;for(const u of this.layers){const p=u.paint.get("line-dasharray").value,m=u.layout.get("line-cap").value;if(p.kind==="constant"&&m.kind==="constant")continue;let y,w;if(p.kind==="constant"){if(y=p.value,!y)continue}else y=p.evaluate({zoom:a},e);w=m.kind==="constant"?m.value:m.evaluate({zoom:a},e),r.addDash(y,w),e.patterns[u.id]=r.getKey(y,w)}}update(e,r,a,u){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,r,this.stateDependentLayers,a,u)}addFeatures(e,r,a,u,p){for(const m of this.patternFeatures)this.addFeature(m,m.geometry,m.index,r,a,u)}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,pI)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hI),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(e){if(e.properties&&e.properties.hasOwnProperty("mapbox_clip_start")&&e.properties.hasOwnProperty("mapbox_clip_end"))return{start:+e.properties.mapbox_clip_start,end:+e.properties.mapbox_clip_end}}addFeature(e,r,a,u,p,m){const y=this.layers[0].layout,w=y.get("line-join").evaluate(e,{}),b=y.get("line-cap").evaluate(e,{}),A=y.get("line-miter-limit"),I=y.get("line-round-limit");this.lineClips=this.lineFeatureClips(e);for(const k of r)this.addLine(k,e,w,b,A,I);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,p,m,u)}addLine(e,r,a,u,p,m){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let K=0;K=2&&e[w-1].equals(e[w-2]);)w--;let b=0;for(;b0;if(Se&&K>b){const Ie=k.dist(L);if(Ie>2*A){const Ne=k.sub(k.sub(L)._mult(A/Ie)._round());this.updateDistance(L,Ne),this.addCurrentVertex(Ne,B,0,0,I),L=Ne}}const Re=L&&R;let We=Re?a:y?"butt":u;if(Re&&We==="round"&&(aep&&(We="bevel"),We==="bevel"&&(ae>2&&(We="flipbevel"),ae100)ie=V.mult(-1);else{const Ie=ae*B.add(V).mag()/B.sub(V).mag();ie._perp()._mult(Ie*(be?-1:1))}this.addCurrentVertex(k,ie,0,0,I),this.addCurrentVertex(k,ie.mult(-1),0,0,I)}else if(We==="bevel"||We==="fakeround"){const Ie=-Math.sqrt(ae*ae-1),Ne=be?Ie:0,Ue=be?0:Ie;if(L&&this.addCurrentVertex(k,B,Ne,Ue,I),We==="fakeround"){const $e=Math.round(180*se/Math.PI/20);for(let Je=1;Je<$e;Je++){let Pe=Je/$e;if(Pe!==.5){const pt=Pe-.5;Pe+=Pe*pt*(Pe-1)*((1.0904+Y*(Y*(3.55645-1.43519*Y)-3.2452))*pt*pt+(.848013+Y*(.215638*Y-1.06021)))}const rt=V.sub(B)._mult(Pe)._add(B)._unit()._mult(be?-1:1);this.addHalfVertex(k,rt.x,rt.y,!1,be,0,I)}}R&&this.addCurrentVertex(k,V,-Ne,-Ue,I)}else if(We==="butt")this.addCurrentVertex(k,ie,0,0,I);else if(We==="square"){const Ie=L?1:-1;L||this.addCurrentVertex(k,ie,Ie,Ie,I),this.addCurrentVertex(k,ie,0,0,I),L&&this.addCurrentVertex(k,ie,Ie,Ie,I)}else We==="round"&&(L&&(this.addCurrentVertex(k,B,0,0,I),this.addCurrentVertex(k,B,1,1,I,!0)),R&&(this.addCurrentVertex(k,V,-1,-1,I,!0),this.addCurrentVertex(k,V,0,0,I)));if(Se&&K2*A){const Ne=k.add(R.sub(k)._mult(A/Ie)._round());this.updateDistance(k,Ne),this.addCurrentVertex(Ne,V,0,0,I),k=Ne}}}}addCurrentVertex(e,r,a,u,p,m=!1){const y=r.y*u-r.x,w=-r.y-r.x*u;this.addHalfVertex(e,r.x+r.y*a,r.y-r.x*a,m,!1,a,p),this.addHalfVertex(e,y,w,m,!0,-u,p)}addHalfVertex({x:e,y:r},a,u,p,m,y,w){this.layoutVertexArray.emplaceBack((e<<1)+(p?1:0),(r<<1)+(m?1:0),Math.round(63*a)+128,Math.round(63*u)+128,1+(y===0?0:y<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);const b=w.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,b),w.primitiveLength++),m?this.e2=b:this.e1=b}updateScaledDistance(){if(this.lineClips){const e=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=e*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(e,r){this.distance+=e.dist(r),this.updateScaledDistance()}}ht(Sf,"LineBucket",{omit:["layers","patternFeatures"]});const gI=new Q({"line-cap":new G(Le.layout_line["line-cap"]),"line-join":new G(Le.layout_line["line-join"]),"line-miter-limit":new O(Le.layout_line["line-miter-limit"]),"line-round-limit":new O(Le.layout_line["line-round-limit"]),"line-sort-key":new G(Le.layout_line["line-sort-key"])});var D1={paint:new Q({"line-opacity":new G(Le.paint_line["line-opacity"]),"line-color":new G(Le.paint_line["line-color"]),"line-translate":new O(Le.paint_line["line-translate"]),"line-translate-anchor":new O(Le.paint_line["line-translate-anchor"]),"line-width":new G(Le.paint_line["line-width"]),"line-gap-width":new G(Le.paint_line["line-gap-width"]),"line-offset":new G(Le.paint_line["line-offset"]),"line-blur":new G(Le.paint_line["line-blur"]),"line-dasharray":new G(Le.paint_line["line-dasharray"]),"line-pattern":new G(Le.paint_line["line-pattern"]),"line-gradient":new J(Le.paint_line["line-gradient"]),"line-trim-offset":new O(Le.paint_line["line-trim-offset"])}),layout:gI};const O1=new class extends G{possiblyEvaluate(n,e){return e=new C(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,transition:e.transition}),super.possiblyEvaluate(n,e)}evaluate(n,e,r,a){return e=_n({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(n,e,r,a)}}(D1.paint.properties["line-width"].specification);function B1(n,e){return e>0?e+2*n:n}O1.useIntegerZoom=!0;const _I=_e([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),yI=_e([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),vI=_e([{name:"a_projected_pos",components:4,type:"Float32"}],4);_e([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const xI=_e([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),wI=_e([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const F1=_e([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),bI=_e([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);_e([{name:"triangle",components:3,type:"Uint16"}]),_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),_e([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),_e([{type:"Float32",name:"offsetX"}]),_e([{type:"Int16",name:"x"},{type:"Int16",name:"y"}]);var mi=24;const vo=128;function U_(n,e){const{expression:r}=e;if(r.kind==="constant")return{kind:"constant",layoutSize:r.evaluate(new C(n+1))};if(r.kind==="source")return{kind:"source"};{const{zoomStops:a,interpolationType:u}=r;let p=0;for(;p{a.text=function(u,p,m){const y=p.layout.get("text-transform").evaluate(m,{});return y==="uppercase"?u=u.toLocaleUpperCase():y==="lowercase"&&(u=u.toLocaleLowerCase()),S.applyArabicShaping&&(u=S.applyArabicShaping(u)),u}(a.text,e,r)}),n}const rd={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂","←":"↑","→":"↓"};function SI(n){return n==="︶"||n==="﹈"||n==="︸"||n==="﹄"||n==="﹂"||n==="︾"||n==="︼"||n==="︺"||n==="︘"||n==="﹀"||n==="︐"||n==="︓"||n==="︔"||n==="`"||n===" ̄"||n==="︑"||n==="︒"}function AI(n){return n==="︵"||n==="﹇"||n==="︷"||n==="﹃"||n==="﹁"||n==="︽"||n==="︻"||n==="︹"||n==="︗"||n==="︿"}var N1=pn,U1=function(n,e,r,a,u){var p,m,y=8*u-a-1,w=(1<>1,A=-7,I=r?u-1:0,k=r?-1:1,L=n[e+I];for(I+=k,p=L&(1<<-A)-1,L>>=-A,A+=y;A>0;p=256*p+n[e+I],I+=k,A-=8);for(m=p&(1<<-A)-1,p>>=-A,A+=a;A>0;m=256*m+n[e+I],I+=k,A-=8);if(p===0)p=1-b;else{if(p===w)return m?NaN:1/0*(L?-1:1);m+=Math.pow(2,a),p-=b}return(L?-1:1)*m*Math.pow(2,p-a)},j1=function(n,e,r,a,u,p){var m,y,w,b=8*p-u-1,A=(1<>1,k=u===23?Math.pow(2,-24)-Math.pow(2,-77):0,L=a?0:p-1,R=a?1:-1,B=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(y=isNaN(e)?1:0,m=A):(m=Math.floor(Math.log(e)/Math.LN2),e*(w=Math.pow(2,-m))<1&&(m--,w*=2),(e+=m+I>=1?k/w:k*Math.pow(2,1-I))*w>=2&&(m++,w/=2),m+I>=A?(y=0,m=A):m+I>=1?(y=(e*w-1)*Math.pow(2,u),m+=I):(y=e*Math.pow(2,I-1)*Math.pow(2,u),m=0));u>=8;n[r+L]=255&y,L+=R,y/=256,u-=8);for(m=m<0;n[r+L]=255&m,L+=R,m/=256,b-=8);n[r+L-R]|=128*B};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function pn(n){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(n)?n:new Uint8Array(n||0),this.pos=0,this.type=0,this.length=this.buf.length}pn.Varint=0,pn.Fixed64=1,pn.Bytes=2,pn.Fixed32=5;var j_=4294967296,V1=1/j_,G1=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Ss(n){return n.type===pn.Bytes?n.readVarint()+n.pos:n.pos+1}function Zc(n,e,r){return r?4294967296*e+(n>>>0):4294967296*(e>>>0)+(n>>>0)}function $1(n,e,r){var a=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(a);for(var u=r.pos-1;u>=n;u--)r.buf[u+a]=r.buf[u]}function CI(n,e){for(var r=0;r>>8,n[r+2]=e>>>16,n[r+3]=e>>>24}function q1(n,e){return(n[e]|n[e+1]<<8|n[e+2]<<16)+(n[e+3]<<24)}pn.prototype={destroy:function(){this.buf=null},readFields:function(n,e,r){for(r=r||this.length;this.pos>3,p=this.pos;this.type=7&a,n(u,e,this),this.pos===p&&this.skip(a)}return e},readMessage:function(n,e){return this.readFields(n,e,this.readVarint()+this.pos)},readFixed32:function(){var n=Cf(this.buf,this.pos);return this.pos+=4,n},readSFixed32:function(){var n=q1(this.buf,this.pos);return this.pos+=4,n},readFixed64:function(){var n=Cf(this.buf,this.pos)+Cf(this.buf,this.pos+4)*j_;return this.pos+=8,n},readSFixed64:function(){var n=Cf(this.buf,this.pos)+q1(this.buf,this.pos+4)*j_;return this.pos+=8,n},readFloat:function(){var n=U1(this.buf,this.pos,!0,23,4);return this.pos+=4,n},readDouble:function(){var n=U1(this.buf,this.pos,!0,52,8);return this.pos+=8,n},readVarint:function(n){var e,r,a=this.buf;return e=127&(r=a[this.pos++]),r<128?e:(e|=(127&(r=a[this.pos++]))<<7,r<128?e:(e|=(127&(r=a[this.pos++]))<<14,r<128?e:(e|=(127&(r=a[this.pos++]))<<21,r<128?e:function(u,p,m){var y,w,b=m.buf;if(y=(112&(w=b[m.pos++]))>>4,w<128||(y|=(127&(w=b[m.pos++]))<<3,w<128)||(y|=(127&(w=b[m.pos++]))<<10,w<128)||(y|=(127&(w=b[m.pos++]))<<17,w<128)||(y|=(127&(w=b[m.pos++]))<<24,w<128)||(y|=(1&(w=b[m.pos++]))<<31,w<128))return Zc(u,y,p);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=a[this.pos]))<<28,n,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var n=this.readVarint();return n%2==1?(n+1)/-2:n/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var n=this.readVarint()+this.pos,e=this.pos;return this.pos=n,n-e>=12&&G1?function(r,a,u){return G1.decode(r.subarray(a,u))}(this.buf,e,n):function(r,a,u){for(var p="",m=a;m239?4:A>223?3:A>191?2:1;if(m+k>u)break;k===1?A<128&&(I=A):k===2?(192&(y=r[m+1]))==128&&(I=(31&A)<<6|63&y)<=127&&(I=null):k===3?(w=r[m+2],(192&(y=r[m+1]))==128&&(192&w)==128&&((I=(15&A)<<12|(63&y)<<6|63&w)<=2047||I>=55296&&I<=57343)&&(I=null)):k===4&&(w=r[m+2],b=r[m+3],(192&(y=r[m+1]))==128&&(192&w)==128&&(192&b)==128&&((I=(15&A)<<18|(63&y)<<12|(63&w)<<6|63&b)<=65535||I>=1114112)&&(I=null)),I===null?(I=65533,k=1):I>65535&&(I-=65536,p+=String.fromCharCode(I>>>10&1023|55296),I=56320|1023&I),p+=String.fromCharCode(I),m+=k}return p}(this.buf,e,n)},readBytes:function(){var n=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,n);return this.pos=n,e},readPackedVarint:function(n,e){if(this.type!==pn.Bytes)return n.push(this.readVarint(e));var r=Ss(this);for(n=n||[];this.pos127;);else if(e===pn.Bytes)this.pos=this.readVarint()+this.pos;else if(e===pn.Fixed32)this.pos+=4;else{if(e!==pn.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(n,e){this.writeVarint(n<<3|e)},realloc:function(n){for(var e=this.length||16;e268435455||n<0?function(e,r){var a,u;if(e>=0?(a=e%4294967296|0,u=e/4294967296|0):(u=~(-e/4294967296),4294967295^(a=~(-e%4294967296))?a=a+1|0:(a=0,u=u+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");r.realloc(10),function(p,m,y){y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,p>>>=7,y.buf[y.pos++]=127&p|128,y.buf[y.pos]=127&(p>>>=7)}(a,0,r),function(p,m){var y=(7&p)<<4;m.buf[m.pos++]|=y|((p>>>=3)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p|((p>>>=7)?128:0),p&&(m.buf[m.pos++]=127&p)))))}(u,r)}(n,this):(this.realloc(4),this.buf[this.pos++]=127&n|(n>127?128:0),n<=127||(this.buf[this.pos++]=127&(n>>>=7)|(n>127?128:0),n<=127||(this.buf[this.pos++]=127&(n>>>=7)|(n>127?128:0),n<=127||(this.buf[this.pos++]=n>>>7&127))))},writeSVarint:function(n){this.writeVarint(n<0?2*-n-1:2*n)},writeBoolean:function(n){this.writeVarint(!!n)},writeString:function(n){n=String(n),this.realloc(4*n.length),this.pos++;var e=this.pos;this.pos=function(a,u,p){for(var m,y,w=0;w55295&&m<57344){if(!y){m>56319||w+1===u.length?(a[p++]=239,a[p++]=191,a[p++]=189):y=m;continue}if(m<56320){a[p++]=239,a[p++]=191,a[p++]=189,y=m;continue}m=y-55296<<10|m-56320|65536,y=null}else y&&(a[p++]=239,a[p++]=191,a[p++]=189,y=null);m<128?a[p++]=m:(m<2048?a[p++]=m>>6|192:(m<65536?a[p++]=m>>12|224:(a[p++]=m>>18|240,a[p++]=m>>12&63|128),a[p++]=m>>6&63|128),a[p++]=63&m|128)}return p}(this.buf,n,this.pos);var r=this.pos-e;r>=128&&$1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(n){this.realloc(4),j1(this.buf,n,this.pos,!0,23,4),this.pos+=4},writeDouble:function(n){this.realloc(8),j1(this.buf,n,this.pos,!0,52,8),this.pos+=8},writeBytes:function(n){var e=n.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&$1(r,a,this),this.pos=r-1,this.writeVarint(a),this.pos+=a},writeMessage:function(n,e,r){this.writeTag(n,pn.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(n,e){e.length&&this.writeMessage(n,CI,e)},writePackedSVarint:function(n,e){e.length&&this.writeMessage(n,II,e)},writePackedBoolean:function(n,e){e.length&&this.writeMessage(n,PI,e)},writePackedFloat:function(n,e){e.length&&this.writeMessage(n,MI,e)},writePackedDouble:function(n,e){e.length&&this.writeMessage(n,kI,e)},writePackedFixed32:function(n,e){e.length&&this.writeMessage(n,zI,e)},writePackedSFixed32:function(n,e){e.length&&this.writeMessage(n,LI,e)},writePackedFixed64:function(n,e){e.length&&this.writeMessage(n,RI,e)},writePackedSFixed64:function(n,e){e.length&&this.writeMessage(n,DI,e)},writeBytesField:function(n,e){this.writeTag(n,pn.Bytes),this.writeBytes(e)},writeFixed32Field:function(n,e){this.writeTag(n,pn.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(n,e){this.writeTag(n,pn.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(n,e){this.writeTag(n,pn.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(n,e){this.writeTag(n,pn.Fixed64),this.writeSFixed64(e)},writeVarintField:function(n,e){this.writeTag(n,pn.Varint),this.writeVarint(e)},writeSVarintField:function(n,e){this.writeTag(n,pn.Varint),this.writeSVarint(e)},writeStringField:function(n,e){this.writeTag(n,pn.Bytes),this.writeString(e)},writeFloatField:function(n,e){this.writeTag(n,pn.Fixed32),this.writeFloat(e)},writeDoubleField:function(n,e){this.writeTag(n,pn.Fixed64),this.writeDouble(e)},writeBooleanField:function(n,e){this.writeVarintField(n,!!e)}};var If=le(N1);const V_=3;function OI(n,e,r){e.glyphs=[],n===1&&r.readMessage(BI,e)}function BI(n,e,r){if(n===3){const{id:a,bitmap:u,width:p,height:m,left:y,top:w,advance:b}=r.readMessage(FI,{});e.glyphs.push({id:a,bitmap:new Ts({width:p+2*V_,height:m+2*V_},u),metrics:{width:p,height:m,left:y,top:w,advance:b}})}else n===4?e.ascender=r.readSVarint():n===5&&(e.descender=r.readSVarint())}function FI(n,e,r){n===1?e.id=r.readVarint():n===2?e.bitmap=r.readBytes():n===3?e.width=r.readVarint():n===4?e.height=r.readVarint():n===5?e.left=r.readSVarint():n===6?e.top=r.readSVarint():n===7&&(e.advance=r.readVarint())}const Z1=V_;function G_(n){let e=0,r=0;for(const m of n)e+=m.w*m.h,r=Math.max(r,m.w);n.sort((m,y)=>y.h-m.h);const a=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let u=0,p=0;for(const m of n)for(let y=a.length-1;y>=0;y--){const w=a[y];if(!(m.w>w.w||m.h>w.h)){if(m.x=w.x,m.y=w.y,p=Math.max(p,m.y+m.h),u=Math.max(u,m.x+m.w),m.w===w.w&&m.h===w.h){const b=a.pop();ye.hasImage(a)),e.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const a in e.updatedImages)this.patchUpdatedImage(this.iconPositions[a],e.getImage(a),r),this.patchUpdatedImage(this.patternPositions[a],e.getImage(a),r)}patchUpdatedImage(e,r,a){if(!e||!r||e.version===r.version)return;e.version=r.version;const[u,p]=e.tl;a.update(r.data,void 0,{x:u,y:p})}}ht($_,"ImagePosition"),ht(W1,"ImageAtlas");const Cr={horizontal:1,vertical:2,horizontalOnly:3},H1=-17;class od{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(e,r){const a=new od;return a.scale=e||1,a.fontStack=r,a}static forImage(e){const r=new od;return r.imageName=e,r}}class Hc{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(e,r){const a=new Hc;for(let u=0;u=0&&a>=e&&Mf[this.text.charCodeAt(a)];a--)r--;this.text=this.text.substring(e,r),this.sectionIndex=this.sectionIndex.slice(e,r)}substring(e,r){const a=new Hc;return a.text=this.text.substring(e,r),a.sectionIndex=this.sectionIndex.slice(e,r),a.sections=this.sections,a}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,r)=>Math.max(e,this.sections[r].scale),0)}addTextSection(e,r){this.text+=e.text,this.sections.push(od.forText(e.scale,e.fontStack||r));const a=this.sections.length-1;for(let u=0;u=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function q_(n,e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=Hc.fromFeature(n,u);I===Cr.vertical&&B.verticalizePunctuation(k);let V=[];const K=function(se,Se,be,Re,We,Ie){if(!se)return[];const Ne=[],Ue=function(rt,pt,ot,At,Qe,_t){let Ct=0;for(let Ht=0;Ht=0;let Je=0;for(let rt=0;rt0&&bo>un&&(un=bo)}else{const ji=be[Jn.fontStack];if(!ji)continue;ji[In]&&(gn=ji[In]);const li=Se[Jn.fontStack];if(!li)continue;const bo=li.glyphs[In];if(!bo)continue;if(qn=bo.metrics,Zn=In!==8203?mi:0,_t){const tu=li.ascender!==void 0?Math.abs(li.ascender):0,md=li.descender!==void 0?Math.abs(li.descender):0,gd=(tu+md)*Kt;Cn-r/2;){if(m--,m<0)return!1;y-=n[m].dist(p),p=n[m]}y+=n[m].dist(n[m+1]),m++;const w=[];let b=0;for(;ya;)b-=w.shift().angleDelta;if(b>u)return!1;m++,y+=A.dist(I)}return!0}function nw(n){let e=0;for(let r=0;rb){const R=(b-w)/L,B=Zt(I.x,k.x,R),V=Zt(I.y,k.y,R),K=new As(B,V,0,k.angleTo(I),A);return!m||tw(n,K,y,m,e)?K:void 0}w+=L}}function GI(n,e,r,a,u,p,m,y,w){const b=iw(a,p,m),A=rw(a,u),I=A*m,k=n[0].x===0||n[0].x===w||n[0].y===0||n[0].y===w;return e-I=0&&te=0&&ae=0&&k+b<=A){const se=new As(te,ae,0,ie,R);se._round(),a&&!tw(n,se,p,a,u)||L.push(se)}}I+=K}return y||L.length||m||(L=ow(n,I/2,r,a,u,p,m,!0,w)),L}function sw(n,e,r,a,u){const p=[];for(let m=0;m=a&&I.x>=a||(A.x>=a?A=new Ve(a,A.y+(a-A.x)/(I.x-A.x)*(I.y-A.y))._round():I.x>=a&&(I=new Ve(a,A.y+(a-A.x)/(I.x-A.x)*(I.y-A.y))._round()),A.y>=u&&I.y>=u||(A.y>=u?A=new Ve(A.x+(u-A.y)/(I.y-A.y)*(I.x-A.x),u)._round():I.y>=u&&(I=new Ve(A.x+(u-A.y)/(I.y-A.y)*(I.x-A.x),u)._round()),w&&A.equals(w[w.length-1])||(w=[A],p.push(w)),w.push(I)))))}}return p}ht(As,"Anchor");const sd=1e20;function aw(n,e,r,a,u,p,m,y,w){for(let b=e;b-1);w++,p[w]=y,m[w]=b,m[w+1]=sd}for(let y=0,w=0;y{let y=this.entries[u];y||(y=this.entries[u]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let w=y.glyphs[p];if(w!==void 0)return void m(null,{stack:u,id:p,glyph:w});if(w=this._tinySDF(y,u,p),w)return y.glyphs[p]=w,void m(null,{stack:u,id:p,glyph:w});const b=Math.floor(p/256);if(256*b>65535)return void m(new Error("glyphs > 65535 not supported"));if(y.ranges[b])return void m(null,{stack:u,id:p,glyph:w});let A=y.requests[b];A||(A=y.requests[b]=[],Xc.loadGlyphRange(u,b,this.url,this.requestManager,(I,k)=>{if(k){y.ascender=k.ascender,y.descender=k.descender;for(const L in k.glyphs)this._doesCharSupportLocalGlyph(+L)||(y.glyphs[+L]=k.glyphs[+L]);y.ranges[b]=!0}for(const L of A)L(I,k);delete y.requests[b]})),A.push((I,k)=>{I?m(I):k&&m(null,{stack:u,id:p,glyph:k.glyphs[p]||null})})},(u,p)=>{if(u)r(u);else if(p){const m={};for(const{stack:y,id:w,glyph:b}of p)m[y]===void 0&&(m[y]={}),m[y].glyphs===void 0&&(m[y].glyphs={}),m[y].glyphs[w]=b&&{id:b.id,bitmap:b.bitmap.clone(),metrics:b.metrics},m[y].ascender=this.entries[y].ascender,m[y].descender=this.entries[y].descender;r(null,m)}})}_doesCharSupportLocalGlyph(e){return this.localGlyphMode!==W_.none&&(this.localGlyphMode===W_.all?!!this.localFontFamily:!!this.localFontFamily&&(st["CJK Unified Ideographs"](e)||st["Hangul Syllables"](e)||st.Hiragana(e)||st.Katakana(e)||st["CJK Symbols and Punctuation"](e)))}_tinySDF(e,r,a){const u=this.localFontFamily;if(!u||!this._doesCharSupportLocalGlyph(a))return;let p=e.tinySDF;if(!p){let B="400";/bold/i.test(r)?B="900":/medium/i.test(r)?B="500":/light/i.test(r)&&(B="200"),p=e.tinySDF=new Xc.TinySDF({fontFamily:u,fontWeight:B,fontSize:24*xo,buffer:3*xo,radius:8*xo}),p.fontWeight=B}if(this.localGlyphs[p.fontWeight][a])return this.localGlyphs[p.fontWeight][a];const m=String.fromCharCode(a),{data:y,width:w,height:b,glyphWidth:A,glyphHeight:I,glyphLeft:k,glyphTop:L,glyphAdvance:R}=p.draw(m);return this.localGlyphs[p.fontWeight][a]={id:a,bitmap:new Ts({width:w,height:b},y),metrics:{width:A/xo,height:I/xo,left:k/xo,top:L/xo-27,advance:R/xo,localGlyph:!0}}}}Xc.loadGlyphRange=function(n,e,r,a,u){const p=256*e,m=p+255,y=a.transformRequest(a.normalizeGlyphsURL(r).replace("{fontstack}",n).replace("{range}",`${p}-${m}`),ss.Glyphs);Gs(y,(w,b)=>{if(w)u(w);else if(b){const A={},I=function(k){return new If(k).readFields(OI,{})}(b);for(const k of I.glyphs)A[k.id]=k;u(null,{glyphs:A,ascender:I.ascender,descender:I.descender})}})},Xc.TinySDF=class{constructor({fontSize:n=24,buffer:e=3,radius:r=8,cutoff:a=.25,fontFamily:u="sans-serif",fontWeight:p="normal",fontStyle:m="normal"}={}){this.buffer=e,this.cutoff=a,this.radius=r;const y=this.size=n+4*e,w=this._createCanvas(y),b=this.ctx=w.getContext("2d",{willReadFrequently:!0});b.font=`${m} ${p} ${n}px ${u}`,b.textBaseline="alphabetic",b.textAlign="left",b.fillStyle="black",this.gridOuter=new Float64Array(y*y),this.gridInner=new Float64Array(y*y),this.f=new Float64Array(y),this.z=new Float64Array(y+1),this.v=new Uint16Array(y)}_createCanvas(n){const e=document.createElement("canvas");return e.width=e.height=n,e}draw(n){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:a,actualBoundingBoxLeft:u,actualBoundingBoxRight:p}=this.ctx.measureText(n),m=Math.ceil(r),y=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(p-u))),w=Math.min(this.size-this.buffer,m+Math.ceil(a)),b=y+2*this.buffer,A=w+2*this.buffer,I=Math.max(b*A,0),k=new Uint8ClampedArray(I),L={data:k,width:b,height:A,glyphWidth:y,glyphHeight:w,glyphTop:m,glyphLeft:0,glyphAdvance:e};if(y===0||w===0)return L;const{ctx:R,buffer:B,gridInner:V,gridOuter:K}=this;R.clearRect(B,B,y,w),R.fillText(n,B,B+m);const ie=R.getImageData(B,B,y,w);K.fill(sd,0,I),V.fill(0,0,I);for(let Y=0;Y0?Se*Se:0,V[se]=Se<0?Se*Se:0}}aw(K,0,0,b,A,b,this.f,this.v,this.z),aw(V,B,B,y,w,b,this.f,this.v,this.z);for(let Y=0;YIe+Ne[1]-Ne[0],R=I.reduce(L,0),B=k.reduce(L,0),V=y-R,K=w-B;let ie=0,Y=R,te=0,ae=B,se=0,Se=V,be=0,Re=K;if(p.content&&a){const Ie=p.content;ie=kf(I,0,Ie[0]),te=kf(k,0,Ie[1]),Y=kf(I,Ie[0],Ie[2]),ae=kf(k,Ie[1],Ie[3]),se=Ie[0]-ie,be=Ie[1]-te,Se=Ie[2]-Ie[0]-Y,Re=Ie[3]-Ie[1]-ae}const We=(Ie,Ne,Ue,$e)=>{const Je=Pf(Ie.stretch-ie,Y,b,n.left),Pe=zf(Ie.fixed-se,Se,Ie.stretch,R),rt=Pf(Ne.stretch-te,ae,A,n.top),pt=zf(Ne.fixed-be,Re,Ne.stretch,B),ot=Pf(Ue.stretch-ie,Y,b,n.left),At=zf(Ue.fixed-se,Se,Ue.stretch,R),Qe=Pf($e.stretch-te,ae,A,n.top),_t=zf($e.fixed-be,Re,$e.stretch,B),Ct=new Ve(Je,rt),Ht=new Ve(ot,rt),It=new Ve(ot,Qe),bt=new Ve(Je,Qe),xn=new Ve(Pe/m,pt/m),zt=new Ve(At/m,_t/m),Lt=e*Math.PI/180;if(Lt){const mn=Math.sin(Lt),un=Math.cos(Lt),Cn=[un,-mn,mn,un];Ct._matMult(Cn),Ht._matMult(Cn),bt._matMult(Cn),It._matMult(Cn)}const cn=Ie.stretch+Ie.fixed,fn=Ne.stretch+Ne.fixed;return{tl:Ct,tr:Ht,bl:bt,br:It,tex:{x:p.paddedRect.x+Kc+cn,y:p.paddedRect.y+Kc+fn,w:Ue.stretch+Ue.fixed-cn,h:$e.stretch+$e.fixed-fn},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:xn,pixelOffsetBR:zt,minFontScaleX:Se/m/b,minFontScaleY:Re/m/A,isSDF:r}};if(a&&(p.stretchX||p.stretchY)){const Ie=uw(I,V,R),Ne=uw(k,K,B);for(let Ue=0;Ue0)for(let a=(this.length>>1)-1;a>=0;a--)this._down(a)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const e=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:r,compare:a}=this,u=r[e];for(;e>0;){const p=e-1>>1,m=r[p];if(a(u,m)>=0)break;r[e]=m,e=p}r[e]=u}_down(e){const{data:r,compare:a}=this,u=this.length>>1,p=r[e];for(;e=0)break;r[e]=y,e=m}r[e]=p}}function ZI(n,e){return ne?1:0}function WI(n,e=1,r=!1){let a=1/0,u=1/0,p=-1/0,m=-1/0;const y=n[0];for(let L=0;Lp)&&(p=R.x),(!L||R.y>m)&&(m=R.y)}const w=Math.min(p-a,m-u);let b=w/2;const A=new qI([],HI);if(w===0)return new Ve(a,u);for(let L=a;LI.d||!I.d)&&(I=L,r&&console.log("found best %d after %d probes",Math.round(1e4*L.d)/1e4,k)),L.max-I.d<=e||(b=L.h/2,A.push(new Yc(L.p.x-b,L.p.y-b,b,n)),A.push(new Yc(L.p.x+b,L.p.y-b,b,n)),A.push(new Yc(L.p.x-b,L.p.y+b,b,n)),A.push(new Yc(L.p.x+b,L.p.y+b,b,n)),k+=4)}return r&&(console.log(`num probes: ${k}`),console.log(`best distance: ${I.d}`)),I.p}function HI(n,e){return e.max-n.max}class Yc{constructor(e,r,a,u){this.p=new Ve(e,r),this.h=a,this.d=function(p,m){let y=!1,w=1/0;for(let b=0;bp.y!=B.y>p.y&&p.x<(B.x-R.x)*(p.y-R.y)/(B.y-R.y)+R.x&&(y=!y),w=Math.min(w,o1(p,R,B))}}return(y?1:-1)*Math.sqrt(w)}(this.p,u),this.max=this.d+this.h*Math.SQRT2}}const Jc=7,H_=Number.POSITIVE_INFINITY,XI=Math.sqrt(2);function hw(n,[e,r]){let a=0,u=0;if(r===H_){e<0&&(e=0);const p=e/XI;switch(n){case"top-right":case"top-left":u=p-Jc;break;case"bottom-right":case"bottom-left":u=-p+Jc;break;case"bottom":u=-e+Jc;break;case"top":u=e-Jc}switch(n){case"top-right":case"bottom-right":a=-p;break;case"top-left":case"bottom-left":a=p;break;case"left":a=e;break;case"right":a=-e}}else{switch(e=Math.abs(e),r=Math.abs(r),n){case"top-right":case"top-left":case"top":u=r-Jc;break;case"bottom-right":case"bottom-left":case"bottom":u=-r+Jc}switch(n){case"top-right":case"bottom-right":case"right":a=-e;break;case"top-left":case"bottom-left":case"left":a=e}}return[a,u]}function KI(n,e,r,a,u,p,m,y,w,b){n.createArrays(),n.tilePixelRatio=vt/(512*n.overscaling),n.compareText={},n.iconsNeedLinear=!1;const A=n.layers[0].layout,I=n.layers[0]._unevaluatedLayout._values,k={};if(n.textSizeData.kind==="composite"){const{minZoom:B,maxZoom:V}=n.textSizeData;k.compositeTextSizes=[I["text-size"].possiblyEvaluate(new C(B),y),I["text-size"].possiblyEvaluate(new C(V),y)]}if(n.iconSizeData.kind==="composite"){const{minZoom:B,maxZoom:V}=n.iconSizeData;k.compositeIconSizes=[I["icon-size"].possiblyEvaluate(new C(B),y),I["icon-size"].possiblyEvaluate(new C(V),y)]}k.layoutTextSize=I["text-size"].possiblyEvaluate(new C(w+1),y),k.layoutIconSize=I["icon-size"].possiblyEvaluate(new C(w+1),y),k.textMaxSize=I["text-size"].possiblyEvaluate(new C(18),y);const L=A.get("text-rotation-alignment")==="map"&&A.get("symbol-placement")!=="point",R=A.get("text-size");for(const B of n.features){const V=A.get("text-font").evaluate(B,{},y).join(","),K=R.evaluate(B,{},y),ie=k.layoutTextSize.evaluate(B,{},y),Y=(k.layoutIconSize.evaluate(B,{},y),{horizontal:{},vertical:void 0}),te=B.text;let ae,se=[0,0];if(te){const Re=te.toString(),We=A.get("text-letter-spacing").evaluate(B,{},y)*mi,Ie=A.get("text-line-height").evaluate(B,{},y)*mi,Ne=i_(Re)?We:0,Ue=A.get("text-anchor").evaluate(B,{},y),$e=A.get("text-variable-anchor");if(!$e){const ot=A.get("text-radial-offset").evaluate(B,{},y);se=ot?hw(Ue,[ot*mi,H_]):A.get("text-offset").evaluate(B,{},y).map(At=>At*mi)}let Je=L?"center":A.get("text-justify").evaluate(B,{},y);const Pe=A.get("symbol-placement")==="point",rt=Pe?A.get("text-max-width").evaluate(B,{},y)*mi:1/0,pt=ot=>{n.allowVerticalPlacement&&Ph(Re)&&(Y.vertical=q_(te,e,r,u,V,rt,Ie,Ue,ot,Ne,se,Cr.vertical,!0,ie,K))};if(!L&&$e){const ot=Je==="auto"?$e.map(Qe=>X_(Qe)):[Je];let At=!1;for(let Qe=0;Qe=0||!Ph(Re)){const ot=q_(te,e,r,u,V,rt,Ie,Ue,Je,Ne,se,Cr.horizontal,!1,ie,K);ot&&(Y.horizontal[Je]=ot)}pt(Pe?"left":Je)}}let Se=!1;if(B.icon&&B.icon.name){const Re=a[B.icon.name];Re&&(ae=jI(u[B.icon.name],A.get("icon-offset").evaluate(B,{},y),A.get("icon-anchor").evaluate(B,{},y)),Se=Re.sdf,n.sdfIcons===void 0?n.sdfIcons=Re.sdf:n.sdfIcons!==Re.sdf&&vn("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(Re.pixelRatio!==n.pixelRatio||A.get("icon-rotate").constantOr(1)!==0)&&(n.iconsNeedLinear=!0))}const be=pw(Y.horizontal)||Y.vertical;n.iconsInText||(n.iconsInText=!!be&&be.iconsInText),(be||ae)&&YI(n,B,Y,ae,a,k,ie,0,se,Se,m,y,b)}p&&n.generateCollisionDebugBuffers(w,n.collisionBoxArray)}function X_(n){switch(n){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function YI(n,e,r,a,u,p,m,y,w,b,A,I,k){let L=p.textMaxSize.evaluate(e,{},I);L===void 0&&(L=m);const R=n.layers[0].layout,B=R.get("icon-offset").evaluate(e,{},I),V=pw(r.horizontal)||r.vertical,K=k.name==="globe",ie=mi,Y=m/ie,te=n.tilePixelRatio*L/ie,ae=(Ue=n.overscaling,n.zoom>18&&Ue>2&&(Ue>>=1),Math.max(vt/(512*Ue),1)*R.get("symbol-spacing")),se=R.get("text-padding")*n.tilePixelRatio,Se=R.get("icon-padding")*n.tilePixelRatio,be=St(R.get("text-max-angle")),Re=R.get("text-rotation-alignment")==="map"&&R.get("symbol-placement")!=="point",We=R.get("icon-rotation-alignment")==="map"&&R.get("symbol-placement")!=="point",Ie=R.get("symbol-placement"),Ne=ae/2;var Ue;const $e=R.get("icon-text-fit");let Je;a&&$e!=="none"&&(n.allowVerticalPlacement&&r.vertical&&(Je=ew(a,r.vertical,$e,R.get("icon-text-fit-padding"),B,Y)),V&&(a=ew(a,V,$e,R.get("icon-text-fit-padding"),B,Y)));const Pe=(rt,pt,ot)=>{if(pt.x<0||pt.x>=vt||pt.y<0||pt.y>=vt)return;let At=null;if(K){const{x:Qe,y:_t,z:Ct}=k.projectTilePoint(pt.x,pt.y,ot);At={anchor:new As(Qe,_t,Ct,0,void 0),up:k.upVector(ot,pt.x,pt.y)}}(function(Qe,_t,Ct,Ht,It,bt,xn,zt,Lt,cn,fn,mn,un,Cn,zn,Gn,hn,Jn,$n,In,Kt,qn,gn,Ui,Zn){const gi=Qe.addToLineVertexArray(_t,Ht);let ai,ji,li,bo,tu,md,gd,Zw=0,Ww=0,Hw=0,Xw=0,uy=-1,hy=-1;const Xo={};let Kw=s_("");const Rl=Ct?Ct.anchor:_t;let dy=0,py=0;if(Lt._unevaluatedLayout.getValue("text-radial-offset")===void 0?[dy,py]=Lt.layout.get("text-offset").evaluate(Kt,{},Zn).map(hr=>hr*mi):(dy=Lt.layout.get("text-radial-offset").evaluate(Kt,{},Zn)*mi,py=H_),Qe.allowVerticalPlacement&&It.vertical){const hr=It.vertical;if(zn)md=K_(hr),zt&&(gd=K_(zt));else{const dr=Lt.layout.get("text-rotate").evaluate(Kt,{},Zn)+90;li=Lf(cn,Rl,_t,fn,mn,un,hr,Cn,dr,Gn),zt&&(bo=Lf(cn,Rl,_t,fn,mn,un,zt,Jn,dr))}}if(bt){const hr=Lt.layout.get("icon-rotate").evaluate(Kt,{},Zn),dr=Lt.layout.get("icon-text-fit")!=="none",_d=cw(bt,hr,gn,dr),my=zt?cw(zt,hr,gn,dr):void 0;ji=Lf(cn,Rl,_t,fn,mn,un,bt,Jn,hr),Zw=4*_d.length;const Yw=Qe.iconSizeData;let Dl=null;Yw.kind==="source"?(Dl=[vo*Lt.layout.get("icon-size").evaluate(Kt,{},Zn)],Dl[0]>pa&&vn(`${Qe.layerIds[0]}: Value for "icon-size" is >= ${ad}. Reduce your "icon-size".`)):Yw.kind==="composite"&&(Dl=[vo*qn.compositeIconSizes[0].evaluate(Kt,{},Zn),vo*qn.compositeIconSizes[1].evaluate(Kt,{},Zn)],(Dl[0]>pa||Dl[1]>pa)&&vn(`${Qe.layerIds[0]}: Value for "icon-size" is >= ${ad}. Reduce your "icon-size".`)),Qe.addSymbols(Qe.icon,_d,Dl,In,$n,Kt,!1,Ct,_t,gi.lineStartIndex,gi.lineLength,-1,Ui,Zn),uy=Qe.icon.placedSymbolArray.length-1,my&&(Ww=4*my.length,Qe.addSymbols(Qe.icon,my,Dl,In,$n,Kt,Cr.vertical,Ct,_t,gi.lineStartIndex,gi.lineLength,-1,Ui,Zn),hy=Qe.icon.placedSymbolArray.length-1)}for(const hr in It.horizontal){const dr=It.horizontal[hr];ai||(Kw=s_(dr.text),zn?tu=K_(dr):ai=Lf(cn,Rl,_t,fn,mn,un,dr,Cn,Lt.layout.get("text-rotate").evaluate(Kt,{},Zn),Gn));const _d=dr.positionedLines.length===1;if(Hw+=dw(Qe,Ct,_t,dr,xn,Lt,zn,Kt,Gn,gi,It.vertical?Cr.horizontal:Cr.horizontalOnly,_d?Object.keys(It.horizontal):[hr],Xo,uy,qn,Ui,Zn),_d)break}It.vertical&&(Xw+=dw(Qe,Ct,_t,It.vertical,xn,Lt,zn,Kt,Gn,gi,Cr.vertical,["vertical"],Xo,hy,qn,Ui,Zn));let va=-1;const fy=(hr,dr)=>hr?Math.max(hr,dr):dr;va=fy(tu,va),va=fy(md,va),va=fy(gd,va);const SM=va>-1?1:0;Qe.glyphOffsetArray.length>=ma.MAX_GLYPHS&&vn("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Kt.sortKey!==void 0&&Qe.addToSortKeyRanges(Qe.symbolInstances.length,Kt.sortKey),Qe.symbolInstances.emplaceBack(Rl.x,Rl.y,Rl.z,_t.x,_t.y,Xo.right>=0?Xo.right:-1,Xo.center>=0?Xo.center:-1,Xo.left>=0?Xo.left:-1,Xo.vertical>=0?Xo.vertical:-1,uy,hy,Kw,ai!==void 0?ai:Qe.collisionBoxArray.length,ai!==void 0?ai+1:Qe.collisionBoxArray.length,li!==void 0?li:Qe.collisionBoxArray.length,li!==void 0?li+1:Qe.collisionBoxArray.length,ji!==void 0?ji:Qe.collisionBoxArray.length,ji!==void 0?ji+1:Qe.collisionBoxArray.length,bo||Qe.collisionBoxArray.length,bo?bo+1:Qe.collisionBoxArray.length,fn,Hw,Xw,Zw,Ww,SM,0,dy,py,va)})(n,pt,At,rt,r,a,u,Je,n.layers[0],n.collisionBoxArray,e.index,e.sourceLayerIndex,n.index,se,Re,w,0,Se,We,B,e,p,b,A,I)};if(Ie==="line")for(const rt of sw(e.geometry,0,0,vt,vt)){const pt=GI(rt,ae,be,r.vertical||V,a,ie,te,n.overscaling,vt);for(const ot of pt)V&&JI(n,V.text,Ne,ot)||Pe(rt,ot,I)}else if(Ie==="line-center"){for(const rt of e.geometry)if(rt.length>1){const pt=VI(rt,be,r.vertical||V,a,ie,te);pt&&Pe(rt,pt,I)}}else if(e.type==="Polygon")for(const rt of O_(e.geometry,0)){const pt=WI(rt,16);Pe(rt[0],new As(pt.x,pt.y,0,0,void 0),I)}else if(e.type==="LineString")for(const rt of e.geometry)Pe(rt,new As(rt[0].x,rt[0].y,0,0,void 0),I);else if(e.type==="Point")for(const rt of e.geometry)for(const pt of rt)Pe([pt],new As(pt.x,pt.y,0,0,void 0),I)}const ad=255,pa=ad*vo;function dw(n,e,r,a,u,p,m,y,w,b,A,I,k,L,R,B,V){const K=function(te,ae,se,Se,be,Re,We,Ie){const Ne=[];if(ae.positionedLines.length===0)return Ne;const Ue=Se.layout.get("text-rotate").evaluate(Re,{})*Math.PI/180,$e=function(ot){const At=ot[0],Qe=ot[1],_t=At*Qe;return _t>0?[At,-Qe]:_t<0?[-At,Qe]:At===0?[Qe,At]:[Qe,-At]}(se);let Je=Math.abs(ae.top-ae.bottom);for(const ot of ae.positionedLines)Je-=ot.lineOffset;const Pe=ae.positionedLines.length,rt=Je/Pe;let pt=ae.top-se[1];for(let ot=0;otpa&&vn(`${n.layerIds[0]}: Value for "text-size" is >= ${ad}. Reduce your "text-size".`)):ie.kind==="composite"&&(Y=[vo*R.compositeTextSizes[0].evaluate(y,{},V),vo*R.compositeTextSizes[1].evaluate(y,{},V)],(Y[0]>pa||Y[1]>pa)&&vn(`${n.layerIds[0]}: Value for "text-size" is >= ${ad}. Reduce your "text-size".`)),n.addSymbols(n.text,K,Y,w,m,y,A,e,r,b.lineStartIndex,b.lineLength,L,B,V);for(const te of I)k[te]=n.text.placedSymbolArray.length-1;return 4*K.length}function pw(n){for(const e in n)return n[e];return null}function Lf(n,e,r,a,u,p,m,y,w,b){let A=m.top,I=m.bottom,k=m.left,L=m.right;const R=m.collisionPadding;if(R&&(k-=R[0],A-=R[1],L+=R[2],I+=R[3]),w){const B=new Ve(k,A),V=new Ve(L,A),K=new Ve(k,I),ie=new Ve(L,I),Y=St(w);let te=new Ve(0,0);b&&(te=new Ve(b[0],b[1])),B._rotateAround(Y,te),V._rotateAround(Y,te),K._rotateAround(Y,te),ie._rotateAround(Y,te),k=Math.min(B.x,V.x,K.x,ie.x),L=Math.max(B.x,V.x,K.x,ie.x),A=Math.min(B.y,V.y,K.y,ie.y),I=Math.max(B.y,V.y,K.y,ie.y)}return n.emplaceBack(e.x,e.y,e.z,r.x,r.y,k,A,L,I,y,a,u,p),n.length-1}function K_(n){n.collisionPadding&&(n.top-=n.collisionPadding[1],n.bottom+=n.collisionPadding[3]);const e=n.bottom-n.top;return e>0?Math.max(10,e):null}function JI(n,e,r,a){const u=n.compareText;if(e in u){const p=u[e];for(let m=p.length-1;m>=0;m--)if(a.dist(p[m])Y&&(te(se,$e,be,Re,Ne,Ue),te($e,Se,Ne,Ue,We,Ie))}te(I,k,a,p,u,p),te(k,L,u,p,u,m),te(L,R,u,m,a,m),te(R,I,a,m,a,p),B-=Y,V-=Y,K+=Y,ie+=Y;const ae=1/Math.max(K-B,ie-V);return{scale:ae,x:B*ae,y:V*ae,x2:K*ae,y2:ie*ae,projection:e}}const QI=go(new Float32Array(16));class fa{constructor(e){this.spec=e,this.name=e.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7]}project(e,r){return{x:0,y:0,z:0}}unproject(e,r){return new ln(0,0)}projectTilePoint(e,r,a){return{x:e,y:r,z:0}}locationPoint(e,r,a=!0){return e._coordinatePoint(e.locationCoordinate(r),a)}pixelsPerMeter(e,r){return yo(1,e)*r}pixelSpaceConversion(e,r,a){return 1}farthestPixelDistance(e){return fw(e,e.pixelsPerMeter)}pointCoordinate(e,r,a,u){const p=e.horizonLineFromTop(!1),m=new Ve(r,Math.max(p,a));return e.rayIntersectionCoordinate(e.pointRayIntersection(m,u))}pointCoordinate3D(e,r,a){const u=new Ve(r,a);if(e.elevation)return e.elevation.pointCoordinate(u);{const p=this.pointCoordinate(e,u.x,u.y,0);return[p.x,p.y,p.z]}}isPointAboveHorizon(e,r){if(e.elevation)return!this.pointCoordinate3D(e,r.x,r.y);const a=e.horizonLineFromTop();return r.y0?r<-Qc+a&&(r=-Qc+a):r>Qc-a&&(r=Qc-a);const m=p/Math.pow(Df(r),u);let y=m*Math.sin(u*e),w=p-m*Math.cos(u*e);return y=.5*(y/Math.PI+.5),w=.5*(w/Math.PI+.5),{x:y,y:this.southernCenter?w:1-w,z:0}}unproject(e,r){e=(2*e-.5)*Math.PI,this.southernCenter&&(r=1-r),r=(2*(1-r)-.5)*Math.PI;const{n:a,f:u}=this,p=u-r,m=Math.sign(p),y=Math.sign(a)*Math.sqrt(e*e+p*p);let w=Math.atan2(e,Math.abs(p))*m;p*a<0&&(w-=Math.PI*Math.sign(e)*m);const b=Ke(Vt(w/a)+this.center[0],-180,180),A=Ke(Vt(2*Math.atan(Math.pow(u/y,1/a))-Qc),-Ei,Ei);return new ln(b,this.southernCenter?-A:A)}}class mw extends fa{constructor(e){super(e),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null}project(e,r){return{x:$o(e),y:qo(r),z:0}}unproject(e,r){const a=Ar(e),u=bi(r);return new ln(a,u)}}const gw=St(Ei);class rM extends fa{project(e,r){const a=(r=St(r))*r,u=a*a;return{x:.5*((e=St(e))*(.8707-.131979*a+u*(u*(.003971*a-.001529*u)-.013791))/Math.PI+.5),y:1-.5*(r*(1.007226+a*(.015085+u*(.028874*a-.044475-.005916*u)))/Math.PI+1),z:0}}unproject(e,r){e=(2*e-.5)*Math.PI;let a=r=(2*(1-r)-1)*Math.PI,u=25,p=0,m=a*a;do{m=a*a;const b=m*m;p=(a*(1.007226+m*(.015085+b*(.028874*m-.044475-.005916*b)))-r)/(1.007226+m*(.045255+b*(.259866*m-.311325-.005916*11*b))),a=Ke(a-p,-gw,gw)}while(Math.abs(p)>1e-6&&--u>0);m=a*a;const y=Ke(Vt(e/(.8707+m*(m*(m*m*m*(.003971-.001529*m)-.013791)-.131979))),-180,180),w=Vt(a);return new ln(y,w)}}const _w=St(Ei);class oM extends fa{project(e,r){r=St(r),e=St(e);const a=Math.cos(r),u=2/Math.PI,p=Math.acos(a*Math.cos(e/2)),m=Math.sin(p)/p,y=.5*(e*u+2*a*Math.sin(e/2)/m)||0,w=.5*(r+Math.sin(r)/m)||0;return{x:.5*(y/Math.PI+.5),y:1-.5*(w/Math.PI+1),z:0}}unproject(e,r){let a=e=(2*e-.5)*Math.PI,u=r=(2*(1-r)-1)*Math.PI,p=25;const m=1e-6;let y=0,w=0;do{const b=Math.cos(u),A=Math.sin(u),I=2*A*b,k=A*A,L=b*b,R=Math.cos(a/2),B=Math.sin(a/2),V=2*R*B,K=B*B,ie=1-L*R*R,Y=ie?1/ie:0,te=ie?Math.acos(b*R)*Math.sqrt(1/ie):0,ae=.5*(2*te*b*B+2*a/Math.PI)-e,se=.5*(te*A+u)-r,Se=.5*Y*(L*K+te*b*R*k)+1/Math.PI,be=Y*(V*I/4-te*A*B),Re=.125*Y*(I*B-te*A*L*V),We=.5*Y*(k*R+te*K*b)+.5,Ie=be*Re-We*Se;y=(se*be-ae*We)/Ie,w=(ae*Re-se*Se)/Ie,a=Ke(a-y,-Math.PI,Math.PI),u=Ke(u-w,-_w,_w)}while((Math.abs(y)>m||Math.abs(w)>m)&&--p>0);return new ln(Vt(a),Vt(u))}}class yw extends fa{constructor(e){super(e),this.center=e.center||[0,0],this.parallels=e.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(St(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0}project(e,r){const{scale:a,cosPhi:u}=this;return{x:St(e)*u*a+.5,y:-Math.sin(St(r))/u*a+.5,z:0}}unproject(e,r){const{scale:a,cosPhi:u}=this,p=-(r-.5)/a,m=Ke(Vt((e-.5)/a)/u,-180,180),y=Math.asin(Ke(p*u,-1,1)),w=Ke(Vt(y),-Ei,Ei);return new ln(m,w)}}class sM extends mw{constructor(e){super(e),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug"],this.range=[3,5]}projectTilePoint(e,r,a){const u=Zh(e,r,a);return On(u,u,Wh(Go(a))),{x:u[0],y:u[1],z:u[2]}}locationPoint(e,r){const a=Fc(r.lat,r.lng),u=Bi([],a),p=e.elevation?e.elevation.getAtPointOrZero(e.locationCoordinate(r),e._centerAltitude):e._centerAltitude;Vh(a,a,u,yo(1,0)*vt*p);const m=go(new Float64Array(16));return Tl(m,e.pixelMatrix,e.globeMatrix),On(a,a,m),new Ve(a[0],a[1])}pixelsPerMeter(e,r){return yo(1,0)*r}pixelSpaceConversion(e,r,a){const u=yo(1,e)*r,p=Zt(yo(1,45)*r,u,a);return this.pixelsPerMeter(e,r)/p}createTileMatrix(e,r,a){const u=x_(Go(a.canonical));return Tl(new Float64Array(16),e.globeMatrix,u)}createInversionMatrix(e,r){const{center:a}=e,u=Wh(Go(r));return cf(u,u,St(a.lng)),u_(u,u,St(a.lat)),Sl(u,u,[e._pixelsPerMercatorPixel,e._pixelsPerMercatorPixel,1]),Float32Array.from(u)}pointCoordinate(e,r,a,u){return qx(e,r,a,!0)||new Uc(0,0)}pointCoordinate3D(e,r,a){const u=this.pointCoordinate(e,r,a,0);return[u.x,u.y,u.z]}isPointAboveHorizon(e,r){return!qx(e,r.x,r.y,!1)}farthestPixelDistance(e){const r=function(u,p){const m=u.cameraToCenterDistance,y=u._centerAltitude*p,w=u._camera,b=u._camera.forward(),A=bs([],Sr([],b,-m),[0,0,y]),I=u.worldSize/(2*Math.PI),k=[0,0,-I],L=u.width/u.height,R=Math.tan(u.fovAboveCenter),B=Sr([],w.up(),R),V=Sr([],w.right(),R*L),K=Bi([],bs([],bs([],b,B),V)),ie=[];let Y;if(new f_(A,K).closestPointOnSphere(k,I,ie)){const te=bs([],ie,k),ae=_o([],te,A);Y=Math.cos(u.fovAboveCenter)*Nh(ae)}else{const te=_o([],A,k),ae=_o([],k,A);Bi(ae,ae);const se=Nh(te)-I;Y=Math.sqrt(se*(se+2*I));const Se=Math.acos(Y/(I+se))-Math.acos(qr(b,ae));Y*=Math.cos(Se)}return 1.01*Y}(e,this.pixelsPerMeter(e.center.lat,e.worldSize)),a=Nc(e.zoom);if(a>0){const u=fw(e,yo(1,e.center.lat)*e.worldSize),p=e.worldSize/(2*Math.PI),m=Math.max(e.width,e.height)/e.worldSize*Math.PI;return Zt(r,u+p*(1-Math.cos(m)),Math.pow(a,10))}return r}upVector(e,r,a){return Zh(r,a,e,1)}upVectorScale(e){return{metersToTile:uf(df(Go(e)))}}}function vw(n){const e=n.parallels,r=!!e&&Math.abs(e[0]+e[1])<.01;switch(n.name){case"mercator":return new mw(n);case"equirectangular":return new nM(n);case"naturalEarth":return new rM(n);case"equalEarth":return new tM(n);case"winkelTripel":return new oM(n);case"albers":return r?new yw(n):new eM(n);case"lambertConformalConic":return r?new yw(n):new iM(n);case"globe":return new sM(n)}throw new Error(`Invalid projection name: ${n.name}`)}const aM=bf.types,lM=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function Of(n,e,r,a,u,p,m,y,w,b,A,I,k){const L=y?Math.min(pa,Math.round(y[0])):0,R=y?Math.min(pa,Math.round(y[1])):0;n.emplaceBack(e,r,Math.round(32*a),Math.round(32*u),p,m,(L<<1)+(w?1:0),R,16*b,16*A,256*I,256*k)}function Bf(n,e,r,a,u,p,m){n.emplaceBack(e,r,a,u,p,m)}function Ff(n,e,r,a,u){n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u),n.emplaceBack(e,r,a,u)}function cM(n){for(const e of n.sections)if(o_(e.text))return!0;return!1}class Y_{constructor(e){this.layoutVertexArray=new Ge,this.indexArray=new mt,this.programConfigurations=e,this.segments=new jn,this.dynamicLayoutVertexArray=new qe,this.opacityVertexArray=new gt,this.placedSymbolArray=new Un,this.globeExtVertexArray=new Xe}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,r,a,u){this.isEmpty()||(a&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,_I.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,vI.members,!0),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,lM,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,yI.members,!0)),this.opacityVertexBuffer.itemSize=1),(a||u)&&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(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}}ht(Y_,"SymbolBuffers");class J_{constructor(e,r,a){this.layoutVertexArray=new e,this.layoutAttributes=r,this.indexArray=new a,this.segments=new jn,this.collisionVertexArray=new Ut,this.collisionVertexArrayExt=new Ot}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,xI.members,!0),this.collisionVertexBufferExt=e.createVertexBuffer(this.collisionVertexArrayExt,wI.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}ht(J_,"CollisionBuffers");class ma{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(m=>m.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=go([]),this.placementViewportMatrix=go([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=U_(this.zoom,r["text-size"]),this.iconSizeData=U_(this.zoom,r["icon-size"]);const a=this.layers[0].layout,u=a.get("symbol-sort-key"),p=a.get("symbol-z-order");this.canOverlap=a.get("text-allow-overlap")||a.get("icon-allow-overlap")||a.get("text-ignore-placement")||a.get("icon-ignore-placement"),this.sortFeaturesByKey=p!=="viewport-y"&&u.constantOr(1)!==void 0,this.sortFeaturesByY=(p==="viewport-y"||p==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=a.get("text-writing-mode").map(m=>Cr[m]),this.stateDependentLayerIds=this.layers.filter(m=>m.isStateDependent()).map(m=>m.id),this.sourceID=e.sourceID,this.projection=e.projection}createArrays(){this.text=new Y_(new El(this.layers,this.zoom,e=>/^text/.test(e))),this.icon=new Y_(new El(this.layers,this.zoom,e=>/^icon/.test(e))),this.glyphOffsetArray=new Oi,this.lineVertexArray=new Lc,this.symbolInstances=new wn}calculateGlyphDependencies(e,r,a,u,p){for(let m=0;m0)&&(w.value.kind!=="constant"||w.value.value.length>0),k=A.value.kind!=="constant"||!!A.value.value||Object.keys(A.parameters).length>0,L=m.get("symbol-sort-key");if(this.features=[],!I&&!k)return;const R=r.iconDependencies,B=r.glyphDependencies,V=r.availableImages,K=new C(this.zoom);for(const{feature:ie,id:Y,index:te,sourceLayerIndex:ae}of e){const se=p._featureFilter.needGeometry,Se=Ml(ie,se);if(!p._featureFilter.filter(K,Se,a))continue;if(se||(Se.geometry=Es(ie,a,u)),y&&ie.type!==1&&a.z<=5){const Ie=Se.geometry,Ne=.98078528056,Ue=($e,Je)=>qr(Zh($e.x,$e.y,a,1),Zh(Je.x,Je.y,a,1))=0;for(const Ue of be.sections)if(Ue.image)R[Ue.image.name]=!0;else{const $e=Ph(be.toString()),Je=Ue.fontStack||Ie,Pe=B[Je]=B[Je]||{};this.calculateGlyphDependencies(Ue.text,Pe,Ne,this.allowVerticalPlacement,$e)}}}m.get("symbol-placement")==="line"&&(this.features=function(ie){const Y={},te={},ae=[];let se=0;function Se(Ie){ae.push(ie[Ie]),se++}function be(Ie,Ne,Ue){const $e=te[Ie];return delete te[Ie],te[Ne]=$e,ae[$e].geometry[0].pop(),ae[$e].geometry[0]=ae[$e].geometry[0].concat(Ue[0]),$e}function Re(Ie,Ne,Ue){const $e=Y[Ne];return delete Y[Ne],Y[Ie]=$e,ae[$e].geometry[0].shift(),ae[$e].geometry[0]=Ue[0].concat(ae[$e].geometry[0]),$e}function We(Ie,Ne,Ue){const $e=Ue?Ne[0][Ne[0].length-1]:Ne[0][0];return`${Ie}:${$e.x}:${$e.y}`}for(let Ie=0;IeIe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((ie,Y)=>ie.sortKey-Y.sortKey)}update(e,r,a,u){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,r,this.layers,a,u),this.icon.programConfigurations.updatePaintArrays(e,r,this.layers,a,u))}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=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}getProjection(){return this.projectionInstance||(this.projectionInstance=vw(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(e,r){const a=this.lineVertexArray.length;if(e.segment!==void 0)for(const{x:u,y:p}of r)this.lineVertexArray.emplaceBack(u,p);return{lineStartIndex:a,lineLength:this.lineVertexArray.length-a}}addSymbols(e,r,a,u,p,m,y,w,b,A,I,k,L,R){const B=e.indexArray,V=e.layoutVertexArray,K=e.globeExtVertexArray,ie=e.segments.prepareSegment(4*r.length,V,B,this.canOverlap?m.sortKey:void 0),Y=this.glyphOffsetArray.length,te=ie.vertexLength,ae=this.allowVerticalPlacement&&y===Cr.vertical?Math.PI/2:0,se=m.text&&m.text.sections;for(let be=0;be=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:u),m=Af(this.textSizeData,e,p)/mi;return this.tilePixelRatio*m}getSymbolInstanceIconSize(e,r,a){const u=this.icon.placedSymbolArray.get(a),p=Af(this.iconSizeData,e,u);return this.tilePixelRatio*p}_commitDebugCollisionVertexUpdate(e,r,a){e.emplaceBack(r,-a,-a),e.emplaceBack(r,a,-a),e.emplaceBack(r,a,a),e.emplaceBack(r,-a,a)}_updateTextDebugCollisionBoxes(e,r,a,u,p,m){for(let y=u;y0}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,r){const a=e.placedSymbolArray.get(r),u=a.vertexStartIndex+4*a.numGlyphs;for(let p=a.vertexStartIndex;pu[y]-u[w]||p[w]-p[y]),m}addToSortKeyRanges(e,r){const a=this.sortKeyRanges[this.sortKeyRanges.length-1];a&&a.sortKey===r?a.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:r,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(const r of this.symbolInstanceIndexes){const a=this.symbolInstances.get(r);this.featureSortOrder.push(a.featureIndex);const{rightJustifiedTextSymbolIndex:u,centerJustifiedTextSymbolIndex:p,leftJustifiedTextSymbolIndex:m,verticalPlacedTextSymbolIndex:y,placedIconSymbolIndex:w,verticalPlacedIconSymbolIndex:b}=a;u>=0&&this.addIndicesForPlacedSymbol(this.text,u),p>=0&&p!==u&&this.addIndicesForPlacedSymbol(this.text,p),m>=0&&m!==p&&m!==u&&this.addIndicesForPlacedSymbol(this.text,m),y>=0&&this.addIndicesForPlacedSymbol(this.text,y),w>=0&&this.addIndicesForPlacedSymbol(this.icon,w),b>=0&&this.addIndicesForPlacedSymbol(this.icon,b)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}ht(ma,"SymbolBucket",{omit:["layers","collisionBoxArray","features","compareText"]}),ma.MAX_GLYPHS=65535,ma.addDynamicAttributes=Ff;const uM=new Q({"symbol-placement":new O(Le.layout_symbol["symbol-placement"]),"symbol-spacing":new O(Le.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new O(Le.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new G(Le.layout_symbol["symbol-sort-key"]),"symbol-z-order":new O(Le.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new O(Le.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new O(Le.layout_symbol["icon-ignore-placement"]),"icon-optional":new O(Le.layout_symbol["icon-optional"]),"icon-rotation-alignment":new O(Le.layout_symbol["icon-rotation-alignment"]),"icon-size":new G(Le.layout_symbol["icon-size"]),"icon-text-fit":new O(Le.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new O(Le.layout_symbol["icon-text-fit-padding"]),"icon-image":new G(Le.layout_symbol["icon-image"]),"icon-rotate":new G(Le.layout_symbol["icon-rotate"]),"icon-padding":new O(Le.layout_symbol["icon-padding"]),"icon-keep-upright":new O(Le.layout_symbol["icon-keep-upright"]),"icon-offset":new G(Le.layout_symbol["icon-offset"]),"icon-anchor":new G(Le.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new O(Le.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new O(Le.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new O(Le.layout_symbol["text-rotation-alignment"]),"text-field":new G(Le.layout_symbol["text-field"]),"text-font":new G(Le.layout_symbol["text-font"]),"text-size":new G(Le.layout_symbol["text-size"]),"text-max-width":new G(Le.layout_symbol["text-max-width"]),"text-line-height":new G(Le.layout_symbol["text-line-height"]),"text-letter-spacing":new G(Le.layout_symbol["text-letter-spacing"]),"text-justify":new G(Le.layout_symbol["text-justify"]),"text-radial-offset":new G(Le.layout_symbol["text-radial-offset"]),"text-variable-anchor":new O(Le.layout_symbol["text-variable-anchor"]),"text-anchor":new G(Le.layout_symbol["text-anchor"]),"text-max-angle":new O(Le.layout_symbol["text-max-angle"]),"text-writing-mode":new O(Le.layout_symbol["text-writing-mode"]),"text-rotate":new G(Le.layout_symbol["text-rotate"]),"text-padding":new O(Le.layout_symbol["text-padding"]),"text-keep-upright":new O(Le.layout_symbol["text-keep-upright"]),"text-transform":new G(Le.layout_symbol["text-transform"]),"text-offset":new G(Le.layout_symbol["text-offset"]),"text-allow-overlap":new O(Le.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new O(Le.layout_symbol["text-ignore-placement"]),"text-optional":new O(Le.layout_symbol["text-optional"])});var Q_={paint:new Q({"icon-opacity":new G(Le.paint_symbol["icon-opacity"]),"icon-color":new G(Le.paint_symbol["icon-color"]),"icon-halo-color":new G(Le.paint_symbol["icon-halo-color"]),"icon-halo-width":new G(Le.paint_symbol["icon-halo-width"]),"icon-halo-blur":new G(Le.paint_symbol["icon-halo-blur"]),"icon-translate":new O(Le.paint_symbol["icon-translate"]),"icon-translate-anchor":new O(Le.paint_symbol["icon-translate-anchor"]),"text-opacity":new G(Le.paint_symbol["text-opacity"]),"text-color":new G(Le.paint_symbol["text-color"],{runtimeType:Xi,getOverride:n=>n.textColor,hasOverride:n=>!!n.textColor}),"text-halo-color":new G(Le.paint_symbol["text-halo-color"]),"text-halo-width":new G(Le.paint_symbol["text-halo-width"]),"text-halo-blur":new G(Le.paint_symbol["text-halo-blur"]),"text-translate":new O(Le.paint_symbol["text-translate"]),"text-translate-anchor":new O(Le.paint_symbol["text-translate-anchor"])}),layout:uM};class xw{constructor(e){this.type=e.property.overrides?e.property.overrides.runtimeType:qs,this.defaultValue=e}evaluate(e){if(e.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(e.formattedSection))return r.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){this.defaultValue.isConstant()||e(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}ht(xw,"FormatSectionOverride",{omit:["defaultValue"]});class Nf extends mo{constructor(e){super(e,Q_)}recalculate(e,r){super.recalculate(e,r),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const a=this.layout.get("text-writing-mode");if(a){const u=[];for(const p of a)u.indexOf(p)<0&&u.push(p);this.layout._values["text-writing-mode"]=u}else this.layout._values["text-writing-mode"]=this.layout.get("symbol-placement")==="point"?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(e,r,a,u){const p=this.layout.get(e).evaluate(r,{},a,u),m=this._unevaluatedLayout._values[e];return m.isDataDriven()||ia(m.value)||!p?p:function(y,w){return w.replace(/{([^{}]+)}/g,(b,A)=>A in y?String(y[A]):"")}(r.properties,p)}createBucket(e){return new ma(e)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const e of Q_.paint.overridableProperties){if(!Nf.hasPaintOverride(this.layout,e))continue;const r=this.paint.get(e),a=new xw(r),u=new Sc(a,r.property.specification);let p=null;p=r.value.kind==="constant"||r.value.kind==="source"?new xh("source",u):new fl("composite",u,r.value.zoomStops,r.value._interpolationType),this.paint._values[e]=new Z(r.property,p,r.parameters)}}_handleOverridablePaintPropertyUpdate(e,r,a){return!(!this.layout||r.isDataDriven()||a.isDataDriven())&&Nf.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,r){const a=e.get("text-field"),u=Q_.paint.properties[r];let p=!1;const m=y=>{for(const w of y)if(u.overrides&&u.overrides.hasOverride(w))return void(p=!0)};if(a.value.kind==="constant"&&a.value.value instanceof Di)m(a.value.value.sections);else if(a.value.kind==="source"){const y=b=>{p||(b instanceof hs&&Pn(b.value)===Ya?m(b.value.sections):b instanceof No?m(b.sections):b.eachChild(y))},w=a.value;w._styleExpression&&y(w._styleExpression.expression)}return p}getProgramConfiguration(e){return new ua(this,e)}}var hM={paint:new Q({"background-color":new O(Le.paint_background["background-color"]),"background-pattern":new O(Le.paint_background["background-pattern"]),"background-opacity":new O(Le.paint_background["background-opacity"])})},dM={paint:new Q({"raster-opacity":new O(Le.paint_raster["raster-opacity"]),"raster-hue-rotate":new O(Le.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new O(Le.paint_raster["raster-brightness-min"]),"raster-brightness-max":new O(Le.paint_raster["raster-brightness-max"]),"raster-saturation":new O(Le.paint_raster["raster-saturation"]),"raster-contrast":new O(Le.paint_raster["raster-contrast"]),"raster-resampling":new O(Le.paint_raster["raster-resampling"]),"raster-fade-duration":new O(Le.paint_raster["raster-fade-duration"])})};class pM extends mo{constructor(e){super(e,{}),this.implementation=e}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}isLayerDraped(){return this.implementation.renderToTile!==void 0}shouldRedrape(){return!!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){}onAdd(e){this.implementation.onAdd&&this.implementation.onAdd(e,e.painter.context.gl)}onRemove(e){this.implementation.onRemove&&this.implementation.onRemove(e,e.painter.context.gl)}}var fM={paint:new Q({"sky-type":new O(Le.paint_sky["sky-type"]),"sky-atmosphere-sun":new O(Le.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new O(Le.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new O(Le.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new O(Le.paint_sky["sky-gradient-radius"]),"sky-gradient":new J(Le.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new O(Le.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new O(Le.paint_sky["sky-atmosphere-color"]),"sky-opacity":new O(Le.paint_sky["sky-opacity"])})};function ey(n,e,r){const a=[0,0,1],u=Nx([]);return jx(u,u,r?-St(n)+Math.PI:St(n)),Ux(u,u,-St(e)),Dx(a,a,u),Bi(a,a)}const mM={circle:class extends mo{constructor(n){super(n,AC)}createBucket(n){return new A_(n)}queryRadius(n){const e=n;return jc("circle-radius",this,e)+jc("circle-stroke-width",this,e)+mf(this.paint.get("circle-translate"))}queryIntersectsFeature(n,e,r,a,u,p,m,y){const w=c1(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),b=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r);return u1(n,a,p,m,y,this.paint.get("circle-pitch-alignment")==="map",this.paint.get("circle-pitch-scale")==="map",w,b)}getProgramIds(){return["circle"]}getProgramConfiguration(n){return new ua(this,n)}},heatmap:class extends mo{createBucket(n){return new d1(n)}constructor(n){super(n,kC),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(n){n==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=k_({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(n){return jc("heatmap-radius",this,n)}queryIntersectsFeature(n,e,r,a,u,p,m,y){const w=this.paint.get("heatmap-radius").evaluate(e,r);return u1(n,a,p,m,y,!0,!0,new Ve(0,0),w)}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(n){return new ua(this,n)}},hillshade:class extends mo{constructor(n){super(n,PC)}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"}getProgramIds(){return["hillshade","hillshadePrepare"]}},fill:class extends mo{constructor(n){super(n,WC)}getProgramIds(){const n=this.paint.get("fill-pattern"),e=n&&n.constantOr(1),r=[e?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&r.push(e&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),r}getProgramConfiguration(n){return new ua(this,n)}recalculate(n,e){super.recalculate(n,e);const r=this.paint._values["fill-outline-color"];r.value.kind==="constant"&&r.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(n){return new xf(n)}queryRadius(){return mf(this.paint.get("fill-translate"))}queryIntersectsFeature(n,e,r,a,u,p){return!n.queryGeometry.isAboveHorizon&&r1(l1(n.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),a)}isTileClipped(){return!0}},"fill-extrusion":class extends mo{constructor(n){super(n,cI)}createBucket(n){return new td(n)}queryRadius(){return mf(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(n){return new ua(this,n)}queryIntersectsFeature(n,e,r,a,u,p,m,y,w){const b=c1(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),p.angle,n.pixelToTileUnitsFactor),A=this.paint.get("fill-extrusion-height").evaluate(e,r),I=this.paint.get("fill-extrusion-base").evaluate(e,r),k=[0,0],L=y&&p.elevation,R=p.elevation?p.elevation.exaggeration():1,B=n.tile.getBucket(this);if(L&&B instanceof td){const te=B.centroidVertexArray,ae=w+1;aete.polygon).flat());const V=L?y:null,[K,ie]=function(te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e){return te.projection.name==="globe"?function(Je,Pe,rt,pt,ot,At,Qe,_t,Ct,Ht,It){const bt=[],xn=[],zt=Je.projection.upVectorScale(It,Je.center.lat,Je.worldSize).metersToTile,Lt=[0,0,0,1],cn=[0,0,0,1],fn=(un,Cn,zn,Gn)=>{un[0]=Cn,un[1]=zn,un[2]=Gn,un[3]=1},mn=M1();rt>0&&(rt+=mn),pt+=mn;for(const un of Pe){const Cn=[],zn=[];for(const Gn of un){const hn=Gn.x+ot.x,Jn=Gn.y+ot.y,$n=Je.projection.projectTilePoint(hn,Jn,It),In=Je.projection.upVector(It,Gn.x,Gn.y);let Kt=rt,qn=pt;if(Qe){const gn=R1(hn,Jn,rt,pt,Qe,_t,Ct,Ht);Kt+=gn.base,qn+=gn.top}rt!==0?fn(Lt,$n.x+In[0]*zt*Kt,$n.y+In[1]*zt*Kt,$n.z+In[2]*zt*Kt):fn(Lt,$n.x,$n.y,$n.z),fn(cn,$n.x+In[0]*zt*qn,$n.y+In[1]*zt*qn,$n.z+In[2]*zt*qn),On(Lt,Lt,At),On(cn,cn,At),Cn.push(new $c(Lt[0],Lt[1],Lt[2])),zn.push(new $c(cn[0],cn[1],cn[2]))}bt.push(Cn),xn.push(zn)}return[bt,xn]}(te,ae,se,Se,be,Re,We,Ie,Ne,Ue,$e):We?function(Je,Pe,rt,pt,ot,At,Qe,_t,Ct){const Ht=[],It=[],bt=[0,0,0,1];for(const xn of Je){const zt=[],Lt=[];for(const cn of xn){const fn=cn.x+pt.x,mn=cn.y+pt.y,un=R1(fn,mn,Pe,rt,At,Qe,_t,Ct);bt[0]=fn,bt[1]=mn,bt[2]=un.base,bt[3]=1,Al(bt,bt,ot),bt[3]=Math.max(bt[3],1e-5);const Cn=new $c(bt[0]/bt[3],bt[1]/bt[3],bt[2]/bt[3]);bt[0]=fn,bt[1]=mn,bt[2]=un.top,bt[3]=1,Al(bt,bt,ot),bt[3]=Math.max(bt[3],1e-5);const zn=new $c(bt[0]/bt[3],bt[1]/bt[3],bt[2]/bt[3]);zt.push(Cn),Lt.push(zn)}Ht.push(zt),It.push(Lt)}return[Ht,It]}(ae,se,Se,be,Re,We,Ie,Ne,Ue):function(Je,Pe,rt,pt,ot){const At=[],Qe=[],_t=ot[8]*Pe,Ct=ot[9]*Pe,Ht=ot[10]*Pe,It=ot[11]*Pe,bt=ot[8]*rt,xn=ot[9]*rt,zt=ot[10]*rt,Lt=ot[11]*rt;for(const cn of Je){const fn=[],mn=[];for(const un of cn){const Cn=un.x+pt.x,zn=un.y+pt.y,Gn=ot[0]*Cn+ot[4]*zn+ot[12],hn=ot[1]*Cn+ot[5]*zn+ot[13],Jn=ot[2]*Cn+ot[6]*zn+ot[14],$n=ot[3]*Cn+ot[7]*zn+ot[15],In=Gn+_t,Kt=hn+Ct,qn=Jn+Ht,gn=Math.max($n+It,1e-5),Ui=Gn+bt,Zn=hn+xn,gi=Jn+zt,ai=Math.max($n+Lt,1e-5);fn.push(new $c(In/gn,Kt/gn,qn/gn)),mn.push(new $c(Ui/ai,Zn/ai,gi/ai))}At.push(fn),Qe.push(mn)}return[At,Qe]}(ae,se,Se,be,Re)}(p,a,I,A,b,m,V,k,R,p.center.lat,n.tileID.canonical),Y=n.queryGeometry;return function(te,ae,se){let Se=1/0;r1(se,ae)&&(Se=L1(se,ae[0]));for(let be=0;be=3){for(let R=0;R{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){this._channel=void 0,this._callback=()=>{}}}class _M{constructor(){this.tasks={},this.taskQueue=[],Br(["process"],this),this.invoker=new gM(this.process),this.nextId=0}add(e,r){const a=this.nextId++,u=function({type:p,isSymbolTile:m,zoom:y}){return y=y||0,p==="message"?0:p!=="maybePrepare"||m?p!=="parseTile"||m?p==="parseTile"&&m?300-y:p==="maybePrepare"&&m?400-y:500:200-y:100-y}(r);if(u===0){to();try{e()}finally{}return{cancel:()=>{}}}return this.tasks[a]={fn:e,metadata:r,priority:u,id:a},this.taskQueue.push(a),this.invoker.trigger(),{cancel:()=>{delete this.tasks[a]}}}process(){to();try{if(this.taskQueue=this.taskQueue.filter(a=>!!this.tasks[a]),!this.taskQueue.length)return;const e=this.pick();if(e===null)return;const r=this.tasks[e];if(delete this.tasks[e],this.taskQueue.length&&this.invoker.trigger(),!r)return;r.fn()}finally{}}pick(){let e=null,r=1/0;for(let u=0;u>=1)>1;){const b=r+u>>1,A=a+p>>1;1&e?(u=r,p=a,r=m,a=y):(r=u,a=p,u=m,p=y),m=b,y=A}const w=4*n;ga[w+0]=r,ga[w+1]=a,ga[w+2]=u,ga[w+3]=p}const Wo=new Uint16Array(2178),_a=new Uint8Array(1089),Uf=new Uint16Array(1089);function Ew(n){return n===0?-.03125:n===32?.03125:0}var Tw=_e([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const Sw={type:2,extent:vt,loadGeometry:()=>[[new Ve(0,0),new Ve(vt+1,0),new Ve(vt+1,vt+1),new Ve(0,vt+1),new Ve(0,0)]]};class ty{constructor(e,r,a,u,p){this.tileID=e,this.uid=Wi(),this.uses=0,this.tileSize=r,this.tileZoom=a,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=p,this.expiredRequestCount=0,this.state="loading",u&&u.transform&&(this.projection=u.transform.projection)}registerFadeDuration(e){const r=e+this.timeAdded;rp.getLayer(b)).filter(Boolean);if(w.length!==0){y.layers=w,y.stateDependentLayerIds&&(y.stateDependentLayers=y.stateDependentLayerIds.map(b=>w.filter(A=>A.id===b)[0]));for(const b of w)m[b.id]=y}}return m}(e.buckets,r.style),this.hasSymbolBuckets=!1;for(const u in this.buckets){const p=this.buckets[u];if(p instanceof ma){if(this.hasSymbolBuckets=!0,!a)break;p.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const u in this.buckets){const p=this.buckets[u];if(p instanceof ma&&p.hasRTLText){this.hasRTLText=!0,S.isLoading()||S.isLoaded()||v()!=="deferred"||E();break}}this.queryPadding=0;for(const u in this.buckets){const p=this.buckets[u];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(u).queryRadius(p))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage),e.lineAtlas&&(this.lineAtlas=e.lineAtlas)}else this.collisionBoxArray=new an}unloadVectorData(){if(this.hasData()){for(const e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(e){return this.buckets[e.id]}upload(e){for(const a in this.buckets){const u=this.buckets[a];u.uploadPending()&&u.upload(e)}const r=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new dd(e,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new dd(e,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new dd(e,this.lineAtlas.image,r.ALPHA),this.lineAtlas.uploaded=!0)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,r,a,u,p,m,y,w){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:u,pixelPosMatrix:y,transform:m,params:p,tileTransform:this.tileTransform},e,r,a):{}}querySourceFeatures(e,r){const a=this.latestFeatureIndex;if(!a||!a.rawTileData)return;const u=a.loadVTLayers(),p=r?r.sourceLayer:"",m=u._geojsonTileLayer||u[p];if(!m)return;const y=Mc(r&&r.filter),{z:w,x:b,y:A}=this.tileID.canonical,I={z:w,x:b,y:A};for(let k=0;ka)u=!1;else if(r)if(this.expirationTime=0;V--){const K=4*V,ie=ga[K+0],Y=ga[K+1],te=ga[K+2],ae=ga[K+3],se=ie+te>>1,Se=Y+ae>>1,be=se+Se-Y,Re=Se+ie-se,We=Y*Zo+ie,Ie=ae*Zo+te,Ne=Se*Zo+se,Ue=Math.hypot((Wo[2*We+0]+Wo[2*Ie+0])/2-Wo[2*Ne+0],(Wo[2*We+1]+Wo[2*Ie+1])/2-Wo[2*Ne+1])>=16;_a[Ne]=_a[Ne]||(Ue?1:0),V<1022&&(_a[Ne]=_a[Ne]||_a[(Y+Re>>1)*Zo+(ie+be>>1)]||_a[(ae+Re>>1)*Zo+(te+be>>1)])}const I=new Be,k=new mt;let L=0;function R(V,K){const ie=K*Zo+V;return Uf[ie]===0&&(I.emplaceBack(Wo[2*ie+0],Wo[2*ie+1],V*vt/Hr,K*vt/Hr),Uf[ie]=++L),Uf[ie]-1}function B(V,K,ie,Y,te,ae){const se=V+ie>>1,Se=K+Y>>1;if(Math.abs(V-te)+Math.abs(K-ae)>1&&_a[Se*Zo+se])B(te,ae,V,K,se,Se),B(ie,Y,te,ae,se,Se);else{const be=R(V,K),Re=R(ie,Y),We=R(te,ae);k.emplaceBack(be,Re,We)}}return B(0,0,Hr,Hr,Hr,0),B(Hr,Hr,0,0,0,Hr),{vertices:I,indices:k}}(this.tileID.canonical,r);u=m.vertices,p=m.indices}else{u=new Be,p=new mt;for(const{x:y,y:w}of a)u.emplaceBack(y,w,0,0);const m=D_(u.int16,void 0,4);for(let y=0;y0&&(y=c_(new Float64Array(16),r.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(e,u,r,p,y,m),this._makeGlobeTileDebugTextBuffer(e,u,r,p,y,m)}_globePoint(e,r,a,u,p,m,y){let w=Zh(e,r,a);if(m){const b=1<.5?L=-1:k<-.5&&(L=1);let R=(e/vt+a.x)/b+L,B=(r/vt+a.y)/b;R=(R-A)*u._pixelsPerMercatorPixel+A,B=(B-I)*u._pixelsPerMercatorPixel+I;const V=[R*u.worldSize,B*u.worldSize,0];On(V,V,m),w=Il(w,V,y)}return On(w,w,p)}_makeGlobeTileDebugBorderBuffer(e,r,a,u,p,m){const y=new Ze,w=new lr,b=new we,A=(k,L,R,B,V)=>{const K=(R-k)/(V-1),ie=(B-L)/(V-1),Y=y.length;for(let te=0;teI*L+R;for(let L=0;Le[m])return null}else{const y=1/a[m];let w=(n[m]-r[m])*y,b=(e[m]-r[m])*y;if(w>b){const A=w;w=b,b=A}if(w>u&&(u=w),bp)return null}return u}function Iw(n,e,r,a,u,p,m,y,w,b,A){const I=a-n,k=u-e,L=p-r,R=m-n,B=y-e,V=w-r,K=A[1]*V-A[2]*B,ie=A[2]*R-A[0]*V,Y=A[0]*B-A[1]*R,te=I*K+k*ie+L*Y;if(Math.abs(te)<1e-15)return null;const ae=1/te,se=b[0]-n,Se=b[1]-e,be=b[2]-r,Re=(se*K+Se*ie+be*Y)*ae;if(Re<0||Re>1)return null;const We=Se*L-be*k,Ie=be*I-se*L,Ne=se*k-Se*I,Ue=(A[0]*We+A[1]*Ie+A[2]*Ne)*ae;return Ue<0||Re+Ue>1?null:(R*We+B*Ie+V*Ne)*ae}function Mw(n,e,r){return(n-e)/(r-e)}function kw(n,e,r,a,u,p,m,y,w){const b=1<{const ie=V?1:0,Y=(L+1)*B-ie,te=R*B,ae=(R+1)*B-ie;K[0]=L*B,K[1]=te,K[2]=Y,K[3]=ae};let I=new Aw(w);const k=[];for(let L=0;L=1;w/=2){const L=y[y.length-1];I=new Aw(w);for(let R=0;R0;){const{idx:R,t:B,nodex:V,nodey:K,depth:ie}=L.pop();if(this.leaves[R]){kw(V,K,ie,e,r,a,u,I,k);const te=1<=Pe[2])return B}continue}let Y=0;for(let te=0;te=b[A[be]]&&(A.splice(be,0,te),Se=!0);Se||(A[Y]=te),Y++}}for(let te=0;te=this.dim+1||r<-1||r>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(e+1)}static pack(e,r){const a=[0,0,0,0],u=jf.getUnpackVector(r);let p=Math.floor((e+u[3])/u[2]);return a[2]=p%256,p=Math.floor(p/256),a[1]=p%256,p=Math.floor(p/256),a[0]=p,a}getPixels(){return new ur({width:this.stride,height:this.stride},this.pixels)}backfillBorder(e,r,a){if(this.dim!==e.dim)throw new Error("dem dimension mismatch");let u=r*this.dim,p=r*this.dim+this.dim,m=a*this.dim,y=a*this.dim+this.dim;switch(r){case-1:u=p-1;break;case 1:p=u+1}switch(a){case-1:m=y-1;break;case 1:y=m+1}const w=-r*this.dim,b=-a*this.dim;for(let A=m;A{this.remove(e,p)},a)),this.data[u].push(p),this.order.push(u),this.order.length>this.max){const m=this._getAndRemoveByKey(this.order[0]);m&&this.onRemove(m)}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){const r=this.data[e].shift();return r.timeout&&clearTimeout(r.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),r.value}getByKey(e){const r=this.data[e];return r?r[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,r){if(!this.has(e))return this;const a=e.wrapped().key,u=r===void 0?0:this.data[a].indexOf(r),p=this.data[a][u];return this.data[a].splice(u,1),p.timeout&&clearTimeout(p.timeout),this.data[a].length===0&&delete this.data[a],this.onRemove(p.value),this.order.splice(this.order.indexOf(a),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(e){const r=[];for(const a in this.data)for(const u of this.data[a])e(u.value)||r.push(u);for(const a of r)this.remove(a.value.tileID,a)}}class eu{constructor(e,r,a){this.func=e,this.mask=r,this.range=a}}eu.ReadOnly=!1,eu.ReadWrite=!0,eu.disabled=new eu(519,eu.ReadOnly,[0,1]);const ny=7680;class iy{constructor(e,r,a,u,p,m){this.test=e,this.ref=r,this.mask=a,this.fail=u,this.depthFail=p,this.pass=m}}iy.disabled=new iy({func:519,mask:0},0,0,ny,ny,ny);class Ho{constructor(e,r,a){this.blendFunction=e,this.blendColor=r,this.mask=a}}Ho.Replace=[1,0],Ho.disabled=new Ho(Ho.Replace,Dn.transparent,[!1,!1,!1,!1]),Ho.unblended=new Ho(Ho.Replace,Dn.transparent,[!0,!0,!0,!0]),Ho.alphaBlended=new Ho([1,771],Dn.transparent,[!0,!0,!0,!0]);const ry=1029,oy=2305;class wo{constructor(e,r,a){this.enable=e,this.mode=r,this.frontFace=a}}wo.disabled=new wo(!1,ry,oy),wo.backCCW=new wo(!0,ry,oy),wo.backCW=new wo(!0,ry,2304),wo.frontCW=new wo(!0,1028,2304),wo.frontCCW=new wo(!0,1028,oy);class Ll extends Ka{constructor(e,r,a){super(),this.id=e,this._onlySymbols=a,r.on("data",u=>{u.dataType==="source"&&u.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&u.dataType==="source"&&u.sourceDataType==="content"&&(this.reload(),this.transform&&this.update(this.transform))}),r.on("error",()=>{this._sourceErrored=!0}),this._source=r,this._tiles={},this._cache=new bM(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=r.minTileCacheSize,this._maxTileCacheSize=r.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new vM,this._isRaster=this._source.type==="raster"||this._source.type==="raster-dem"||this._source.type==="custom"&&this._source._dataType==="raster"}onAdd(e){this.map=e,this._minTileCacheSize=this._minTileCacheSize===void 0&&e?e._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=this._maxTileCacheSize===void 0&&e?e._maxTileCacheSize:this._maxTileCacheSize}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const e in this._tiles){const r=this._tiles[e];if(r.state!=="loaded"&&r.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(e,r){return e.isSymbolTile=this._onlySymbols,this._source.loadTile(e,r)}_unloadTile(e){if(this._source.unloadTile)return this._source.unloadTile(e,()=>{})}_abortTile(e){if(this._source.abortTile)return this._source.abortTile(e,()=>{})}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const r in this._tiles){const a=this._tiles[r];a.upload(e),a.prepare(this.map.style.imageManager)}}getIds(){return dn(this._tiles).map(e=>e.tileID).sort(Rw).map(e=>e.key)}getRenderableIds(e){const r=[];for(const a in this._tiles)this._isIdRenderable(+a,e)&&r.push(this._tiles[a]);return e?r.sort((a,u)=>{const p=a.tileID,m=u.tileID,y=new Ve(p.canonical.x,p.canonical.y)._rotate(this.transform.angle),w=new Ve(m.canonical.x,m.canonical.y)._rotate(this.transform.angle);return p.overscaledZ-m.overscaledZ||w.y-y.y||w.x-y.x}).map(a=>a.tileID.key):r.map(a=>a.tileID).sort(Rw).map(a=>a.key)}hasRenderableParent(e){const r=this.findLoadedParent(e,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(e,r){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(r||!this._tiles[e].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const e in this._tiles)this._tiles[e].state!=="errored"&&this._reloadTile(+e,"reloading")}}_reloadTile(e,r){const a=this._tiles[e];a&&(a.state!=="loading"&&(a.state=r),this._loadTile(a,this._tileLoaded.bind(this,a,e,r)))}_tileLoaded(e,r,a,u){if(u)if(e.state="errored",u.status!==404)this._source.fire(new io(u,{tile:e}));else if(this._source.type==="raster-dem"&&this.usedForTerrain&&this.map.painter.terrain){const p=this.map.painter.terrain;this.update(this.transform,p.getScaledDemTileSize(),!0),p.resetTileLookupCache(this.id)}else this.update(this.transform);else e.timeAdded=no.now(),a==="expired"&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),this._source.type==="raster-dem"&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),this._source.fire(new cs("data",{dataType:"source",tile:e,coord:e.tileID,sourceCacheId:this.id}))}_backfillDEM(e){const r=this.getRenderableIds();for(let u=0;u1||(Math.abs(m)>1&&(Math.abs(m+w)===1?m+=w:Math.abs(m-w)===1&&(m-=w)),p.dem&&u.dem&&(u.dem.backfillBorder(p.dem,m,y),u.neighboringTiles&&u.neighboringTiles[b]&&(u.neighboringTiles[b].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,r,a,u){for(const p in this._tiles){let m=this._tiles[p];if(u[p]||!m.hasData()||m.tileID.overscaledZ<=r||m.tileID.overscaledZ>a)continue;let y=m.tileID;for(;m&&m.tileID.overscaledZ>r+1;){const b=m.tileID.scaledTo(m.tileID.overscaledZ-1);m=this._tiles[b.key],m&&m.hasData()&&(y=b)}let w=y;for(;w.overscaledZ>r;)if(w=w.scaledTo(w.overscaledZ-1),e[w.key]){u[y.key]=y;break}}}findLoadedParent(e,r){if(e.key in this._loadedParentTiles){const a=this._loadedParentTiles[e.key];return a&&a.tileID.overscaledZ>=r?a:null}for(let a=e.overscaledZ-1;a>=r;a--){const u=e.scaledTo(a),p=this._getLoadedTile(u);if(p)return p}}_getLoadedTile(e){const r=this._tiles[e.key];return r&&r.hasData()?r:this._cache.getByKey(this._source.reparseOverscaled?e.wrapped().key:e.canonical.key)}updateCacheSize(e,r){r=r||this._source.tileSize;const a=Math.ceil(e.width/r)+1,u=Math.ceil(e.height/r)+1,p=Math.floor(a*u*5),m=typeof this._minTileCacheSize=="number"?Math.max(this._minTileCacheSize,p):p,y=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,m):m;this._cache.setMaxSize(y)}handleWrapJump(e){const r=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,r){const a={};for(const u in this._tiles){const p=this._tiles[u];p.tileID=p.tileID.unwrapTo(p.tileID.wrap+r),a[p.tileID.key]=p}this._tiles=a;for(const u in this._timers)clearTimeout(this._timers[u]),delete this._timers[u];for(const u in this._tiles)this._setTileReloadTimer(+u,this._tiles[u])}}update(e,r,a){if(this.transform=e,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!a)return;let u;this.updateCacheSize(e,r),this.transform.projection.name!=="globe"&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?u=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(y=>new Ni(y.canonical.z,y.wrap,y.canonical.z,y.canonical.x,y.canonical.y)):(u=e.coveringTiles({tileSize:r||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!a,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(u=u.filter(y=>this._source.hasTile(y)))):u=[];const p=this._updateRetainedTiles(u);if(Dw(this._source.type)&&u.length!==0){const y={},w={},b=Object.keys(p);for(const I of b){const k=p[I],L=this._tiles[I];if(!L||L.fadeEndTime&&L.fadeEndTime<=no.now())continue;const R=this.findLoadedParent(k,Math.max(k.overscaledZ-Ll.maxOverzooming,this._source.minzoom));R&&(this._addTile(R.tileID),y[R.tileID.key]=R.tileID),w[I]=k}const A=u[u.length-1].overscaledZ;for(const I in this._tiles){const k=this._tiles[I];if(p[I]||!k.hasData())continue;let L=k.tileID;for(;L.overscaledZ>A;){L=L.scaledTo(L.overscaledZ-1);const R=this._tiles[L.key];if(R&&R.hasData()&&w[L.key]){p[I]=k.tileID;break}}}for(const I in y)p[I]||(this._coveredTiles[I]=!0,p[I]=y[I])}for(const y in p)this._tiles[y].clearFadeHold();const m=function(y,w){const b=[];for(const A in y)A in w||b.push(A);return b}(this._tiles,p);for(const y of m){const w=this._tiles[y];w.hasSymbolBuckets&&!w.holdingForFade()?w.setHoldDuration(this.map._fadeDuration):w.hasSymbolBuckets&&!w.symbolFadeFinished()||this._removeTile(+y)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(+e)}_updateRetainedTiles(e){const r={};if(e.length===0)return r;const a={},u=e.reduce((b,A)=>Math.min(b,A.overscaledZ),1/0),p=e[0].overscaledZ,m=Math.max(p-Ll.maxOverzooming,this._source.minzoom),y=Math.max(p+Ll.maxUnderzooming,this._source.minzoom),w={};for(const b of e){const A=this._addTile(b);r[b.key]=b,A.hasData()||u=this._source.maxzoom){const k=b.children(this._source.maxzoom)[0],L=this.getTile(k);if(L&&L.hasData()){r[k.key]=k;continue}}else{const k=b.children(this._source.maxzoom);if(r[k[0].key]&&r[k[1].key]&&r[k[2].key]&&r[k[3].key])continue}let I=A.wasRequested();for(let k=b.overscaledZ-1;k>=m;--k){const L=b.scaledTo(k);if(a[L.key]||(a[L.key]=!0,A=this.getTile(L),!A&&I&&(A=this._addTile(L)),A&&(r[L.key]=L,I=A.wasRequested(),A.hasData())))break}}return r}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const r=[];let a,u=this._tiles[e].tileID;for(;u.overscaledZ>0;){if(u.key in this._loadedParentTiles){a=this._loadedParentTiles[u.key];break}r.push(u.key);const p=u.scaledTo(u.overscaledZ-1);if(a=this._getLoadedTile(p),a)break;u=p}for(const p of r)this._loadedParentTiles[p]=a}}_addTile(e){let r=this._tiles[e.key];if(r)return r;r=this._cache.getAndRemove(e),r&&(this._setTileReloadTimer(e.key,r),r.tileID=e,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,r)));const a=!!r;if(!a){const u=this.map?this.map.painter:null;r=new ty(e,this._source.tileSize*e.overscaleFactor(),this.transform.tileZoom,u,this._isRaster),this._loadTile(r,this._tileLoaded.bind(this,r,e.key,r.state))}return r?(r.uses++,this._tiles[e.key]=r,a||this._source.fire(new cs("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null}_setTileReloadTimer(e,r){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const a=r.getExpiryTimeout();a&&(this._timers[e]=setTimeout(()=>{this._reloadTile(e,"expired"),delete this._timers[e]},a))}_removeTile(e){const r=this._tiles[e];r&&(r.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),r.uses>0||(r.hasData()&&r.state!=="reloading"?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(+e);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id)}tilesIn(e,r,a){const u=[],p=this.transform;if(!p)return u;const m=p.projection.name==="globe",y=$o(p.center.lng);for(const w in this._tiles){const b=this._tiles[w];if(a&&b.clearQueryDebugViz(),b.holdingForFade())continue;let A;if(m){const I=b.tileID.canonical;if(I.z===0){const k=[Math.abs(Ke(y,...pd(I,-1))-y),Math.abs(Ke(y,...pd(I,1))-y)];A=[0,2*k.indexOf(Math.min(...k))-1]}else{const k=[Math.abs(Ke(y,...pd(I,-1))-y),Math.abs(Ke(y,...pd(I,0))-y),Math.abs(Ke(y,...pd(I,1))-y)];A=[k.indexOf(Math.min(...k))-1]}}else A=[0];for(const I of A){const k=e.containsTile(b,p,r,I);k&&u.push(k)}}return u}getVisibleCoordinates(e){const r=this.getRenderableIds(e).map(a=>this._tiles[a].tileID);for(const a of r)a.projMatrix=this.transform.calculateProjMatrix(a.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(Dw(this._source.type))for(const e in this._tiles){const r=this._tiles[e];if(r.fadeEndTime!==void 0&&r.fadeEndTime>=no.now())return!0}return!1}setFeatureState(e,r,a){this._state.updateState(e=e||"_geojsonTileLayer",r,a)}removeFeatureState(e,r,a){this._state.removeFeatureState(e=e||"_geojsonTileLayer",r,a)}getFeatureState(e,r){return this._state.getState(e=e||"_geojsonTileLayer",r)}setDependencies(e,r,a){const u=this._tiles[e];u&&u.setDependencies(r,a)}reloadTilesForDependencies(e,r){for(const a in this._tiles)this._tiles[a].hasDependency(e,r)&&this._reloadTile(+a,"reloading");this._cache.filter(a=>!a.hasDependency(e,r))}_preloadTiles(e,r){if(!this._sourceLoaded){const y=()=>{this._sourceLoaded&&(this._source.off("data",y),this._preloadTiles(e,r))};return void this._source.on("data",y)}const a=new Map,u=Array.isArray(e)?e:[e],p=this.map.painter.terrain,m=this.usedForTerrain&&p?p.getScaledDemTileSize():this._source.tileSize;for(const y of u){const w=y.coveringTiles({tileSize:m,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const b of w)a.set(b.key,b);this.usedForTerrain&&y.updateElevation(!1)}Bt(Array.from(a.values()),(y,w)=>{const b=new ty(y,this._source.tileSize*y.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(b,A=>{this._source.type==="raster-dem"&&b.dem&&this._backfillDEM(b),w(A,b)})},r)}}function Rw(n,e){const r=Math.abs(2*n.wrap)-+(n.wrap<0),a=Math.abs(2*e.wrap)-+(e.wrap<0);return n.overscaledZ-e.overscaledZ||a-r||e.canonical.y-n.canonical.y||e.canonical.x-n.canonical.x}function Dw(n){return n==="raster"||n==="image"||n==="video"||n==="custom"}function pd(n,e){const r=1<=0&&I[3]>=0&&w.insert(y,I[0],I[1],I[2],I[3])}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new N_(new If(this.rawTileData)).layers,this.sourceLayerCoder=new ww(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={};for(const e in this.vtLayers)this.vtFeatures[e]=[]}return this.vtLayers}query(e,r,a,u){this.loadVTLayers();const p=e.params||{},m=Mc(p.filter),y=e.tileResult,w=e.transform,b=y.bufferedTilespaceBounds,A=this.grid.query(b.min.x,b.min.y,b.max.x,b.max.y,(R,B,V,K)=>a1(y.bufferedTilespaceGeometry,R,B,V,K));A.sort(EM);let I=null;w.elevation&&A.length>0&&(I=Vf.create(w.elevation,this.tileID));const k={};let L;for(let R=0;R(K||(K=Es(ie,this.tileID.canonical,e.tileTransform)),Y.queryIntersectsFeature(y,ie,te,K,this.z,e.transform,e.pixelPosMatrix,I,ae)))}return k}loadMatchingFeature(e,r,a,u,p,m,y,w,b){const{featureIndex:A,bucketIndex:I,sourceLayerIndex:k,layoutVertexArrayOffset:L}=r,R=this.bucketLayerIDs[I];if(u&&!function(ie,Y){for(let te=0;te=0)return!0;return!1}(u,R))return;const B=this.sourceLayerCoder.decode(k),V=this.vtLayers[B].feature(A);if(a.needGeometry){const ie=Ml(V,!0);if(!a.filter(new C(this.tileID.overscaledZ),ie,this.tileID.canonical))return}else if(!a.filter(new C(this.tileID.overscaledZ),V))return;const K=this.getId(V,B);for(let ie=0;ie{const y=e instanceof H?e.get(m):null;return y&&y.evaluate?y.evaluate(r,a,u):y})}function EM(n,e){return e-n}ht(Ow,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});class Fw{constructor(e,r){this.width=e,this.height=r,this.nextRow=0,this.image=new Ts({width:e,height:r}),this.positions={},this.uploaded=!1}getDash(e,r){const a=this.getKey(e,r);return this.positions[a]}trim(){const e=this.width,r=this.height=pi(this.nextRow);this.image.resize({width:e,height:r})}getKey(e,r){return e.join(",")+r}getDashRanges(e,r,a){const u=[];let p=e.length%2==1?-e[e.length-1]*a:0,m=e[0]*a,y=!0;u.push({left:p,right:m,isDash:y,zeroLength:e[0]===0});let w=e[0];for(let b=1;b1&&(w=e[++y]);const A=Math.abs(b-w.left),I=Math.abs(b-w.right),k=Math.min(A,I);let L;const R=p/a*(u+1);if(w.isDash){const B=u-Math.abs(R);L=Math.sqrt(k*k+B*B)}else L=u-Math.sqrt(k*k+R*R);this.image.data[m+b]=Math.max(0,Math.min(255,L+128))}}}addRegularDash(e,r){for(let w=e.length-1;w>=0;--w){const b=e[w],A=e[w+1];b.zeroLength?e.splice(w,1):A&&A.isDash===b.isDash&&(A.left=b.left,e.splice(w,1))}const a=e[0],u=e[e.length-1];a.isDash===u.isDash&&(a.left=u.left-this.width,u.right=a.right+this.width);const p=this.width*this.nextRow;let m=0,y=e[m];for(let w=0;w1&&(y=e[++m]);const b=Math.abs(w-y.left),A=Math.abs(w-y.right),I=Math.min(b,A);this.image.data[p+w]=Math.max(0,Math.min(255,(y.isDash?I:-I)+r+128))}}addDash(e,r){const a=this.getKey(e,r);if(this.positions[a])return this.positions[a];const u=r==="round",p=u?7:0,m=2*p+1;if(this.nextRow+m>this.height)return vn("LineAtlas out of space"),null;e.length===0&&e.push(1);let y=0;for(let A=0;A=Ne.maxzoom||Ne.visibility!=="none"&&(sy(Ie,this.zoom,a),(w[Ne.id]=Ne.createBucket({index:y.bucketLayerIDs.length,layers:Ie,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Re,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:a})).populate(We,A,this.tileID.canonical,this.tileTransform),y.bucketLayerIDs.push(Ie.map(Ue=>Ue.id)))}}let k,L,R,B;b.trim();const V={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},K=()=>{if(k)return p(k);if(L&&R&&B){const ae=new Uw(L),se=new W1(R,B);for(const Se in w){const be=w[Se];be instanceof ma?(sy(be.layers,this.zoom,a),KI(be,L,ae.positions,R,se.iconPositions,this.showCollisionBoxes,a,this.tileID.canonical,this.tileZoom,this.projection)):be.hasPattern&&(be instanceof Sf||be instanceof xf||be instanceof td)&&(sy(be.layers,this.zoom,a),be.addFeatures(A,this.tileID.canonical,se.patternPositions,a,this.tileTransform))}this.status="done",p(null,{buckets:dn(w).filter(Se=>!Se.isEmpty()),featureIndex:y,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ae.image,lineAtlas:b,imageAtlas:se,glyphMap:this.returnDependencies?L:null,iconMap:this.returnDependencies?R:null,glyphPositions:this.returnDependencies?ae.positions:null})}},ie=Mt(A.glyphDependencies,ae=>Object.keys(ae).map(Number));Object.keys(ie).length?u.send("getGlyphs",{uid:this.uid,stacks:ie},(ae,se)=>{k||(k=ae,L=se,K())},void 0,!1,V):L={};const Y=Object.keys(A.iconDependencies);Y.length?u.send("getImages",{icons:Y,source:this.source,tileID:this.tileID,type:"icons"},(ae,se)=>{k||(k=ae,R=se,K())},void 0,!1,V):R={};const te=Object.keys(A.patternDependencies);te.length?u.send("getImages",{icons:te,source:this.source,tileID:this.tileID,type:"patterns"},(ae,se)=>{k||(k=ae,B=se,K())},void 0,!1,V):B={},K()}}function sy(n,e,r){const a=new C(e);for(const u of n)u.recalculate(a,r)}class jw{constructor(e){this.entries={},this.scheduler=e}request(e,r,a,u){const p=this.entries[e]=this.entries[e]||{callbacks:[]};if(p.result){const[m,y]=p.result;return this.scheduler?this.scheduler.add(()=>{u(m,y)},r):u(m,y),()=>{}}return p.callbacks.push(u),p.cancel||(p.cancel=a((m,y)=>{p.result=[m,y];for(const w of p.callbacks)this.scheduler?this.scheduler.add(()=>{w(m,y)},r):w(m,y);setTimeout(()=>delete this.entries[e],3e3)})),()=>{p.result||(p.callbacks=p.callbacks.filter(m=>m!==u),p.callbacks.length||(p.cancel(),delete this.entries[e]))}}}function Vw(n,e,r){const a=JSON.stringify(n.request);return n.data&&(this.deduped.entries[a]={result:[null,n.data]}),this.deduped.request(a,{type:"parseTile",isSymbolTile:n.isSymbolTile,zoom:n.tileZoom},u=>{const p=Gs(n.request,(m,y,w,b)=>{m?u(m):y&&u(null,{vectorTile:r?void 0:new N_(new If(y)),rawData:y,cacheControl:w,expires:b})});return()=>{p.cancel(),u()}},e)}const Gw=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class ay{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[r,a]=new Uint8Array(e,0,2);if(r!==219)throw new Error("Data does not appear to be in a KDBush format.");const u=a>>4;if(u!==1)throw new Error(`Got v${u} data when expected v1.`);const p=Gw[15&a];if(!p)throw new Error("Unrecognized array type.");const[m]=new Uint16Array(e,2,1),[y]=new Uint32Array(e,4,1);return new ay(y,m,p,e)}constructor(e,r=64,a=Float64Array,u){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=a,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const p=Gw.indexOf(this.ArrayType),m=2*e*this.ArrayType.BYTES_PER_ELEMENT,y=e*this.IndexArrayType.BYTES_PER_ELEMENT,w=(8-y%8)%8;if(p<0)throw new Error(`Unexpected typed array class: ${a}.`);u&&u instanceof ArrayBuffer?(this.data=u,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+m+y+w),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+y+w,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+p]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=e)}add(e,r){const a=this._pos>>1;return this.ids[a]=a,this.coords[this._pos++]=e,this.coords[this._pos++]=r,a}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return ly(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,r,a,u){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:p,coords:m,nodeSize:y}=this,w=[0,p.length-1,0],b=[];for(;w.length;){const A=w.pop()||0,I=w.pop()||0,k=w.pop()||0;if(I-k<=y){for(let V=k;V<=I;V++){const K=m[2*V],ie=m[2*V+1];K>=e&&K<=a&&ie>=r&&ie<=u&&b.push(p[V])}continue}const L=k+I>>1,R=m[2*L],B=m[2*L+1];R>=e&&R<=a&&B>=r&&B<=u&&b.push(p[L]),(A===0?e<=R:r<=B)&&(w.push(k),w.push(L-1),w.push(1-A)),(A===0?a>=R:u>=B)&&(w.push(L+1),w.push(I),w.push(1-A))}return b}within(e,r,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:u,coords:p,nodeSize:m}=this,y=[0,u.length-1,0],w=[],b=a*a;for(;y.length;){const A=y.pop()||0,I=y.pop()||0,k=y.pop()||0;if(I-k<=m){for(let V=k;V<=I;V++)qw(p[2*V],p[2*V+1],e,r)<=b&&w.push(u[V]);continue}const L=k+I>>1,R=p[2*L],B=p[2*L+1];qw(R,B,e,r)<=b&&w.push(u[L]),(A===0?e-a<=R:r-a<=B)&&(y.push(k),y.push(L-1),y.push(1-A)),(A===0?e+a>=R:r+a>=B)&&(y.push(L+1),y.push(I),y.push(1-A))}return w}}function ly(n,e,r,a,u,p){if(u-a<=r)return;const m=a+u>>1;$w(n,e,m,a,u,p),ly(n,e,r,a,m-1,1-p),ly(n,e,r,m+1,u,1-p)}function $w(n,e,r,a,u,p){for(;u>a;){if(u-a>600){const b=u-a+1,A=r-a+1,I=Math.log(b),k=.5*Math.exp(2*I/3),L=.5*Math.sqrt(I*k*(b-k)/b)*(A-b/2<0?-1:1);$w(n,e,r,Math.max(a,Math.floor(r-A*k/b+L)),Math.min(u,Math.floor(r+(b-A)*k/b+L)),p)}const m=e[2*r+p];let y=a,w=u;for(fd(n,e,a,r),e[2*u+p]>m&&fd(n,e,a,u);ym;)w--}e[2*a+p]===m?fd(n,e,a,w):(w++,fd(n,e,w,u)),w<=r&&(a=w+1),r<=w&&(u=w-1)}}function fd(n,e,r,a){cy(n,r,a),cy(e,2*r,2*a),cy(e,2*r+1,2*a+1)}function cy(n,e,r){const a=n[e];n[e]=n[r],n[r]=a}function qw(n,e,r,a){const u=n-r,p=e-a;return u*u+p*p}s.ARRAY_TYPE=cr,s.AUTH_ERR_MSG=ce,s.Aabb=Fi,s.Actor=class{constructor(n,e,r){this.target=n,this.parent=e,this.mapId=r,this.callbacks={},this.cancelCallbacks={},Br(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=to()?n:M,this.scheduler=new _M}send(n,e,r,a,u=!1,p){const m=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(r.metadata=p,this.callbacks[m]=r);const y=Us(this.globalScope)?void 0:[];return this.target.postMessage({id:m,type:n,hasCallback:!!r,targetMapId:a,mustQueue:u,sourceMapId:this.mapId,data:aa(e,y)},y),{cancel:()=>{r&&delete this.callbacks[m],this.target.postMessage({id:m,type:"",targetMapId:a,sourceMapId:this.mapId})}}}receive(n){const e=n.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(e.type===""){const a=this.cancelCallbacks[r];delete this.cancelCallbacks[r],a&&a.cancel()}else if(e.mustQueue||to()){const a=this.callbacks[r];this.cancelCallbacks[r]=this.scheduler.add(()=>this.processTask(r,e),a&&a.metadata||{type:"message"})}else this.processTask(r,e)}processTask(n,e){if(e.type===""){const r=this.callbacks[n];delete this.callbacks[n],r&&(e.error?r(_s(e.error)):r(null,_s(e.data)))}else{const r=Us(this.globalScope)?void 0:[],a=e.hasCallback?(p,m)=>{delete this.cancelCallbacks[n],this.target.postMessage({id:n,type:"",sourceMapId:this.mapId,error:p?aa(p):null,data:aa(m,r)},r)}:p=>{},u=_s(e.data);if(this.parent[e.type])this.parent[e.type](e.sourceMapId,u,a);else if(this.parent.getWorkerSource){const p=e.type.split(".");this.parent.getWorkerSource(e.sourceMapId,p[0],u.source)[p[1]](u,a)}else a(new Error(`Could not find function ${e.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},s.CanonicalTileID=Tf,s.Color=Dn,s.ColorMode=Ho,s.CullFaceMode=wo,s.DEMData=jf,s.DataConstantProperty=O,s.DedupedRequest=jw,s.DepthMode=eu,s.EXTENT=vt,s.Elevation=class{isDataAvailableAtPoint(n){const e=this._source();if(this.isUsingMockSource()||!e||n.y<0||n.y>1)return!1;const r=e.getSource().maxzoom,a=1<1)return e;const u=a.getSource().maxzoom,p=1<{const p=this.getAtTileOffset(n,u.x,u.y),m=a.upVector(n.canonical,u.x,u.y);return Sr(m,m,p*a.upVectorScale(n.canonical,e,r).metersToTile),m}}getForTilePoints(n,e,r,a){if(this.isUsingMockSource())return!1;const u=Vf.create(this,n,a);return!!u&&(e.forEach(p=>{p[2]=this.exaggeration()*u.getElevationAt(p[0],p[1],r)}),!0)}getMinMaxForTile(n){if(this.isUsingMockSource())return null;const e=this.findDEMTileFor(n);if(!e||!e.dem)return null;const r=e.dem.tree,a=e.tileID,u=1<{let k=b===p-1?b-2:b===0?b:b-1;return k+=I?24575:0,[k,A]};for(let b=0;bthis._skuTokenExpiresAt}transformRequest(n,e){return this._transformRequestFn&&this._transformRequestFn(n,e)||{url:n}}normalizeStyleURL(n,e){if(!ge(n))return n;const r=nt(n);return r.path=`/styles/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeGlyphsURL(n,e){if(!ge(n))return n;const r=nt(n);return r.path=`/fonts/v1${r.path}`,this._makeAPIURL(r,this._customAccessToken||e)}normalizeSourceURL(n,e,r,a){if(!ge(n))return n;const u=nt(n);return u.path=`/v4/${u.authority}.json`,u.params.push("secure"),r&&u.params.push(`language=${r}`),a&&u.params.push(`worldview=${a}`),this._makeAPIURL(u,this._customAccessToken||e)}normalizeSpriteURL(n,e,r,a){const u=nt(n);return ge(n)?(u.path=`/styles/v1${u.path}/sprite${e}${r}`,this._makeAPIURL(u,this._customAccessToken||a)):(u.path+=`${e}${r}`,Ye(u))}normalizeTileURL(n,e,r){if(this._isSkuTokenExpired()&&this._createSkuToken(),n&&!ge(n))return n;const a=nt(n);a.path=a.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${e||r&&a.authority!=="raster"&&r===512?"@2x":""}${oe.supported?".webp":"$1"}`),a.authority==="raster"?a.path=`/${X.RASTER_URL_PREFIX}${a.path}`:(a.path=a.path.replace(/^.+\/v4\//,"/"),a.path=`/${X.TILE_URL_VERSION}${a.path}`);const u=this._customAccessToken||function(p){for(const m of p){const y=m.match(/^access_token=(.*)$/);if(y)return y[1]}return null}(a.params)||X.ACCESS_TOKEN;return X.REQUIRE_ACCESS_TOKEN&&u&&this._skuToken&&a.params.push(`sku=${this._skuToken}`),this._makeAPIURL(a,u)}canonicalizeTileURL(n,e){const r=nt(n);if(!r.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!r.path.match(/\.[\w]+$/))return n;let a="mapbox://";r.path.match(/^\/raster\/v1\//)?a+=`raster/${r.path.replace(`/${X.RASTER_URL_PREFIX}/`,"")}`:a+=`tiles/${r.path.replace(`/${X.TILE_URL_VERSION}/`,"")}`;let u=r.params;return e&&(u=u.filter(p=>!p.match(/^access_token=/))),u.length&&(a+=`?${u.join("&")}`),a}canonicalizeTileset(n,e){const r=!!e&&ge(e),a=[];for(const u of n.tiles||[])xe(u)?a.push(this.canonicalizeTileURL(u,r)):a.push(u);return a}_makeAPIURL(n,e){const r="See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes",a=nt(X.API_URL);if(n.protocol=a.protocol,n.authority=a.authority,n.protocol==="http"){const u=n.params.indexOf("secure");u>=0&&n.params.splice(u,1)}if(a.path!=="/"&&(n.path=`${a.path}${n.path}`),!X.REQUIRE_ACCESS_TOKEN)return Ye(n);if(e=e||X.ACCESS_TOKEN,!this._silenceAuthErrors){if(!e)throw new Error(`An API access token is required to use Mapbox GL. ${r}`);if(e[0]==="s")throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${r}`)}return n.params=n.params.filter(u=>u.indexOf("access_token")===-1),n.params.push(`access_token=${e||""}`),Ye(n)}},s.ResourceType=ss,s.SegmentVector=jn,s.SourceCache=Ll,s.StencilMode=iy,s.StructArrayLayout1ui2=lr,s.StructArrayLayout2f1f2i16=wt,s.StructArrayLayout2i4=Ze,s.StructArrayLayout2ui4=si,s.StructArrayLayout3f12=Ot,s.StructArrayLayout3ui6=mt,s.StructArrayLayout4i8=Be,s.StructArrayLayout5f20=sn,s.Texture=dd,s.Tile=ty,s.Transitionable=D,s.Uniform1f=af,s.Uniform1i=class extends xs{constructor(n){super(n),this.current=0}set(n,e,r){this.fetchUniformLocation(n,e)&&this.current!==r&&(this.current=r,this.gl.uniform1i(this.location,r))}},s.Uniform2f=class extends xs{constructor(n){super(n),this.current=[0,0]}set(n,e,r){this.fetchUniformLocation(n,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1])))}},s.Uniform3f=class extends xs{constructor(n){super(n),this.current=[0,0,0]}set(n,e,r){this.fetchUniformLocation(n,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2])))}},s.Uniform4f=Sx,s.UniformColor=Ax,s.UniformMatrix2f=class extends xs{constructor(n){super(n),this.current=tC}set(n,e,r){if(this.fetchUniformLocation(n,e)){for(let a=0;a<4;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix2fv(this.location,!1,r);break}}}},s.UniformMatrix3f=class extends xs{constructor(n){super(n),this.current=eC}set(n,e,r){if(this.fetchUniformLocation(n,e)){for(let a=0;a<9;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix3fv(this.location,!1,r);break}}}},s.UniformMatrix4f=class extends xs{constructor(n){super(n),this.current=QA}set(n,e,r){if(this.fetchUniformLocation(n,e)){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let a=1;a<16;a++)if(r[a]!==this.current[a]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}}},s.UnwrappedTileID=z1,s.ValidationError=ct,s.VectorTileFeature=bf,s.VectorTileWorkerSource=class extends Ka{constructor(n,e,r,a,u){super(),this.actor=n,this.layerIndex=e,this.availableImages=r,this.loadVectorData=u||Vw,this.loading={},this.loaded={},this.deduped=new jw(n.scheduler),this.isSpriteLoaded=a,this.scheduler=n.scheduler}loadTile(n,e){const r=n.uid,a=n&&n.request,u=a&&a.collectResourceTiming,p=this.loading[r]=new TM(n);p.abort=this.loadVectorData(n,(m,y)=>{const w=!this.loading[r];if(delete this.loading[r],w||m||!y)return p.status="done",w||(this.loaded[r]=p),e(m);const b=y.rawData,A={};y.expires&&(A.expires=y.expires),y.cacheControl&&(A.cacheControl=y.cacheControl),p.vectorTile=y.vectorTile||new N_(new If(b));const I=()=>{p.parse(p.vectorTile,this.layerIndex,this.availableImages,this.actor,(k,L)=>{if(k||!L)return e(k);const R={};if(u){const B=ju(a);B.length>0&&(R.resourceTiming=JSON.parse(JSON.stringify(B)))}e(null,_n({rawTileData:b.slice(0)},L,A,R))})};this.isSpriteLoaded?I():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(I,{type:"parseTile",isSymbolTile:n.isSymbolTile,zoom:n.tileZoom}):I()}),this.loaded=this.loaded||{},this.loaded[r]=p})}reloadTile(n,e){const r=this.loaded,a=n.uid,u=this;if(r&&r[a]){const p=r[a];p.showCollisionBoxes=n.showCollisionBoxes,p.enableTerrain=!!n.enableTerrain,p.projection=n.projection,p.tileTransform=zl(n.tileID.canonical,n.projection);const m=(y,w)=>{const b=p.reloadCallback;b&&(delete p.reloadCallback,p.parse(p.vectorTile,u.layerIndex,this.availableImages,u.actor,b)),e(y,w)};p.status==="parsing"?p.reloadCallback=m:p.status==="done"&&(p.vectorTile?p.parse(p.vectorTile,this.layerIndex,this.availableImages,this.actor,m):m())}}abortTile(n,e){const r=n.uid,a=this.loading[r];a&&(a.abort&&a.abort(),delete this.loading[r]),e()}removeTile(n,e){const r=this.loaded,a=n.uid;r&&r[a]&&delete r[a],e()}},s.WritingMode=Cr,s.ZoomDependentExpression=fl,s.add=bs,s.addDynamicAttributes=Ff,s.adjoint=function(n,e){var r=e[0],a=e[1],u=e[2],p=e[3],m=e[4],y=e[5],w=e[6],b=e[7],A=e[8];return n[0]=m*A-y*b,n[1]=u*b-a*A,n[2]=a*y-u*m,n[3]=y*w-p*A,n[4]=r*A-u*w,n[5]=u*p-r*y,n[6]=p*b-m*w,n[7]=a*w-r*b,n[8]=r*m-a*p,n},s.asyncAll=Bt,s.bezier=wr,s.bindAll=Br,s.boundsAttributes=Tw,s.bufferConvexPolygon=function(n,e){const r=[];for(let a=0;aic&&(n.getActor().send("enforceCacheSizeLimit",nc),Ha=0)},s.calculateGlobeLabelMatrix=function(n,e){const{x:r,y:a}=n.point,u=Xx(r,a,n.worldSize/n._pixelsPerMercatorPixel,0,0);return Tl(u,u,x_(Go(e)))},s.calculateGlobeMatrix=function(n){const{x:e,y:r}=n.point,{lng:a,lat:u}=n._center;return Xx(e,r,n.worldSize,a,u)},s.calculateGlobeMercatorMatrix=function(n){const e=n.pixelsPerMeter,r=e/yo(1,n.center.lat),a=go(new Float64Array(16));return Fh(a,a,[n.point.x,n.point.y,0]),Sl(a,a,[r,r,e]),Float32Array.from(a)},s.circumferenceAtLatitude=b_,s.clamp=Ke,s.clearTileCache=function(n){if(!Wa())return;const e=M.caches.delete(js);n&&e.catch(n).then(()=>n())},s.clipLine=sw,s.clone=function(n){var e=new cr(16);return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],e},s.clone$1=Ai,s.collisionCircleLayout=bI,s.config=X,s.conjugate=function(n,e){return n[0]=-e[0],n[1]=-e[1],n[2]=-e[2],n[3]=e[3],n},s.create=function(){var n=new cr(16);return cr!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n},s.create$1=Mx,s.createExpression=ra,s.createLayout=_e,s.createStyleLayer=function(n){return n.type==="custom"?new pM(n):new mM[n.type](n)},s.cross=p_,s.degToRad=St,s.distance=function(n,e){return Math.hypot(e[0]-n[0],e[1]-n[1],e[2]-n[2])},s.div=function(n,e,r){return n[0]=e[0]/r[0],n[1]=e[1]/r[1],n[2]=e[2]/r[2],n},s.dot=qr,s.earthRadius=Hh,s.ease=Or,s.easeCubicInOut=Li,s.ecefToLatLng=function([n,e,r]){const a=Math.hypot(n,e,r),u=Math.atan2(n,r),p=.5*Math.PI-Math.acos(-e/a);return new ln(Vt(u),Vt(p))},s.emitValidationErrors=ef,s.endsWith=yn,s.enforceCacheSizeLimit=function(n){os(),ir&&ir.then(e=>{e.keys().then(r=>{for(let a=0;ap&&(a+=(n[u]-p)*(n[u]-p)),e[u]0){const R=180/a;kx(L,L,[R/b+1,0,0,0,R/A+1,0,-.5*R/I,.5*R/k,1])}return L[2]=w,L[5]=n.x,L[8]=n.y,L},s.getImage=ee,s.getJSON=function(n,e){return ls(_n(n,{type:"json"}),e)},s.getLatitudinalLod=function(n){const e=Ei-5;n=Ke(n,-e,e)/e*90;const r=Math.pow(Math.abs(Math.sin(St(n))),3);return Math.round(r*(qh.length-1))},s.getMapSessionAPI=ii,s.getPerformanceMeasurement=ju,s.getProjection=vw,s.getRTLTextPluginStatus=v,s.getReferrer=as,s.getTilePoint=function(n,{x:e,y:r},a=0){return new Ve(((e-a)*n.scale-n.x)*vt,(r*n.scale-n.y)*vt)},s.getTileVec3=function(n,e,r=0){return Oc(((e.x-r)*n.scale-n.x)*vt,(e.y*n.scale-n.y)*vt,Qx(e.z,e.y))},s.getVideo=function(n,e){const r=M.document.createElement("video");r.muted=!0,r.onloadstart=function(){e(null,r)};for(let a=0;a{}}},s.globeCenterToScreenPoint=function(n){const e=[0,0,0],r=go(new Float64Array(16));return Tl(r,n.pixelMatrix,n.globeMatrix),On(e,e,r),new Ve(e[0],e[1])},s.globeDenormalizeECEF=x_,s.globeECEFOrigin=function(n,e){const r=[0,0,0];return On(r,r,Wh(Go(e.canonical))),On(r,r,n),r},s.globeMetersToEcef=uf,s.globeNormalizeECEF=Wh,s.globePixelsToTileUnits=function(n,e){return vt/(512*Math.pow(2,n))*df(Go(e))},s.globePoleMatrixForTile=function(n,e,r){const a=go(new Float64Array(16)),u=(e/(1<0;return a===0&&!u&&!m&&p},s.identity=go,s.identity$1=Nx,s.invert=c_,s.isFullscreen=function(){return!!M.document.fullscreenElement||!!M.document.webkitFullscreenElement},s.isLngLatBehindGlobe=w_,s.isMapAuthenticated=function(n){return Ci.has(n)},s.isMapboxURL=ge,s.isSafariWithAntialiasingBug=function(n){const e=n.navigator?n.navigator.userAgent:null;return!!Us(n)&&e&&(e.match("Version/15.4")||e.match("Version/15.5")||e.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},s.latFromMercatorY=bi,s.latLngToECEF=Fc,s.len=uC,s.length=Nh,s.length$1=function(n){return Math.hypot(n[0],n[1],n[2],n[3])},s.lngFromMercatorX=Ar,s.loadVectorTile=Vw,s.makeRequest=ls,s.mapValue=function(n,e,r,a,u){return Ke((n-e)/(r-e)*(u-a)+a,a,u)},s.mercatorScale=e1,s.mercatorXfromLng=$o,s.mercatorYfromLat=qo,s.mercatorZfromAltitude=yo,s.mul=lC,s.mul$1=cC,s.multiply=Tl,s.multiply$1=kx,s.multiply$2=Rx,s.nextPowerOfTwo=pi,s.normalize=Bi,s.normalize$1=hC,s.normalize$2=Bx,s.number=Zt,s.ortho=function(n,e,r,a,u,p,m){var y=1/(e-r),w=1/(a-u),b=1/(p-m);return n[0]=-2*y,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*w,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*b,n[11]=0,n[12]=(e+r)*y,n[13]=(u+a)*w,n[14]=(m+p)*b,n[15]=1,n},s.pbf=N1,s.perspective=function(n,e,r,a,u){var p,m=1/Math.tan(e/2);return n[0]=m/r,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=m,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,u!=null&&u!==1/0?(n[10]=(u+a)*(p=1/(a-u)),n[14]=2*u*a*p):(n[10]=-1,n[14]=-2*a),n},s.pick=function(n,e){const r={};for(let a=0;a0&&r[0]<=n.width&&r[1]>0&&r[1]<=n.height&&!w_(n,new ln(n.center.lat,90)),a[0]>0&&a[0]<=n.width&&a[1]>0&&a[1]<=n.height&&!w_(n,new ln(n.center.lat,-90))]},s.polygonContainsPoint=kl,s.polygonIntersectsBox=a1,s.polygonIntersectsPolygon=i1,s.polygonizeBounds=function(n,e,r=0,a=!0){const u=new Ve(r,r),p=n.sub(u),m=e.add(u),y=[p,new Ve(m.x,p.y),m,new Ve(p.x,m.y)];return a&&y.push(p.clone()),y},s.posAttributes=$h,s.postMapLoadEvent=Fn,s.postPerformanceEvent=Yn,s.postTurnstileEvent=$t,s.potpack=G_,s.prevPowerOfTwo=function(n){return n<=1?1:Math.pow(2,Math.floor(Math.log(n)/Math.LN2))},s.radToDeg=Vt,s.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],s.registerForPluginStateChange=function(n){return n({pluginStatus:d,pluginURL:o}),_.on("pluginStateChange",n),n},s.removeAuthState=function(n){Ci.delete(n)},s.renderColorRamp=k_,s.resample=t1,s.rotateX=u_,s.rotateX$1=Ux,s.rotateY=cf,s.rotateY$1=jx,s.rotateZ=function(n,e,r){var a=Math.sin(r),u=Math.cos(r),p=e[0],m=e[1],y=e[2],w=e[3],b=e[4],A=e[5],I=e[6],k=e[7];return e!==n&&(n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]),n[0]=p*u+b*a,n[1]=m*u+A*a,n[2]=y*u+I*a,n[3]=w*u+k*a,n[4]=b*u-p*a,n[5]=A*u-m*a,n[6]=I*u-y*a,n[7]=k*u-w*a,n},s.rotateZ$1=function(n,e,r){r*=.5;var a=e[0],u=e[1],p=e[2],m=e[3],y=Math.sin(r),w=Math.cos(r);return n[0]=a*w+u*y,n[1]=u*w-a*y,n[2]=p*w+m*y,n[3]=m*w-p*y,n},s.scale=Sl,s.scale$1=Ox,s.scale$2=Sr,s.scaleAndAdd=Vh,s.set=function(n,e,r,a){return n[0]=e,n[1]=r,n[2]=a,n},s.setCacheLimits=function(n,e){nc=n,ic=e},s.setColumn=function(n,e,r){n[4*e+0]=r[0],n[4*e+1]=r[1],n[4*e+2]=r[2],n[4*e+3]=r[3]},s.setRTLTextPlugin=function(n,e,r=!1){if(d===Lh||d===Rh||d===Dh)throw new Error("setRTLTextPlugin cannot be called multiple times.");o=no.resolveURL(n),d=Lh,la=e,f(),r||E()},s.smoothstep=Tt,s.spec=Le,s.squaredLength=function(n){var e=n[0],r=n[1],a=n[2];return e*e+r*r+a*a},s.storeAuthState=function(n,e){e?Ci.add(n):Ci.delete(n)},s.sub=_o,s.subtract=d_,s.symbolSize=EI,s.tileAABB=function(n,e,r,a,u,p,m,y,w){if(w.name==="globe")return gC(n,e,new Tf(r,a,u));const b=zl({z:r,x:a,y:u},w);return new Fi([(p+b.x/b.scale)*e,e*(b.y/b.scale),m],[(p+b.x2/b.scale)*e,e*(b.y2/b.scale),y])},s.tileCornersToBounds=hf,s.tileTransform=zl,s.transformMat3=function(n,e,r){var a=e[0],u=e[1],p=e[2];return n[0]=a*r[0]+u*r[3]+p*r[6],n[1]=a*r[1]+u*r[4]+p*r[7],n[2]=a*r[2]+u*r[5]+p*r[8],n},s.transformMat4=On,s.transformMat4$1=Al,s.transformQuat=Dx,s.transitionTileAABBinECEF=Zx,s.translate=Fh,s.transpose=function(n,e){if(n===e){var r=e[1],a=e[2],u=e[5];n[1]=e[3],n[2]=e[6],n[3]=r,n[5]=e[7],n[6]=a,n[7]=u}else n[0]=e[0],n[1]=e[3],n[2]=e[6],n[3]=e[1],n[4]=e[4],n[5]=e[7],n[6]=e[2],n[7]=e[5],n[8]=e[8];return n},s.triggerPluginCompletionEvent=c,s.uniqueId=Wi,s.updateGlobeVertexNormal=function(n,e,r,a,u){const p=5*e+2;n.float32[p+0]=r,n.float32[p+1]=a,n.float32[p+2]=u},s.validateCustomStyleLayer=function(n){const e=[],r=n.id;return r===void 0&&e.push({message:`layers.${r}: missing required property "id"`}),n.render===void 0&&e.push({message:`layers.${r}: missing required method "render"`}),n.renderingMode&&n.renderingMode!=="2d"&&n.renderingMode!=="3d"&&e.push({message:`layers.${r}: property "renderingMode" must be either "2d" or "3d"`}),e},s.validateFilter=n=>ar(vl(n)),s.validateFog=n=>ar(Yp(n)),s.validateLayer=n=>ar(Wp(n)),s.validateLight=n=>ar(Kp(n)),s.validateSource=n=>ar(Xp(n)),s.validateStyle=Qp,s.validateTerrain=n=>ar(Ih(n)),s.values=dn,s.vectorTile=wf,s.version=F,s.warnOnce=vn,s.window=M,s.wrap=xt}),x(["./shared"],function(s){function M(ne){if(typeof ne=="number"||typeof ne=="boolean"||typeof ne=="string"||ne==null)return JSON.stringify(ne);if(Array.isArray(ne)){let U="[";for(const ee of ne)U+=`${M(ee)},`;return`${U}]`}let N="{";for(const U of Object.keys(ne).sort())N+=`${U}:${M(ne[U])},`;return`${N}}`}function F(ne){let N="";for(const U of s.refProperties)N+=`/${M(ne[U])}`;return N}class q{constructor(N){this.keyCache={},N&&this.replace(N)}replace(N){this._layerConfigs={},this._layers={},this.update(N,[])}update(N,U){for(const ce of N)this._layerConfigs[ce.id]=ce,(this._layers[ce.id]=s.createStyleLayer(ce)).compileFilter(),this.keyCache[ce.id]&&delete this.keyCache[ce.id];for(const ce of U)delete this.keyCache[ce],delete this._layerConfigs[ce],delete this._layers[ce];this.familiesBySource={};const ee=function(ce,ge){const xe={};for(let me=0;methis._layers[nt.id]),xe=ge[0];if(xe.visibility==="none")continue;const ve=xe.source||"";let me=this.familiesBySource[ve];me||(me=this.familiesBySource[ve]={});const Me=xe.sourceLayer||"_geojsonTileLayer";let et=me[Me];et||(et=me[Me]=[]),et.push(ge)}}}class X{loadTile(N,U){const{uid:ee,encoding:ce,rawImageData:ge,padding:xe,buildQuadTree:ve}=N,me=s.window.ImageBitmap&&ge instanceof s.window.ImageBitmap?this.getImageData(ge,xe):ge;U(null,new s.DEMData(ee,me,ce,xe<1,ve))}getImageData(N,U){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(N.width,N.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=N.width,this.offscreenCanvas.height=N.height,this.offscreenCanvasContext.drawImage(N,0,0,N.width,N.height);const ee=this.offscreenCanvasContext.getImageData(-U,-U,N.width+2*U,N.height+2*U);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),ee}}function oe(ne,N){if(ne.length!==0){Ae(ne[0],N);for(var U=1;U=Math.abs(ve)?U-me+ve:ve-me+U,U=me}U+ee>=0!=!!N&&ne.reverse()}var fe=s.getDefaultExportFromCjs(function ne(N,U){var ee,ce=N&&N.type;if(ce==="FeatureCollection")for(ee=0;ee>31}function zi(ne,N){for(var U=ne.loadGeometry(),ee=ne.type,ce=0,ge=0,xe=U.length,ve=0;vene},Ke=Math.fround||(Tt=new Float32Array(1),ne=>(Tt[0]=+ne,Tt[0]));var Tt;const xt=3,Bt=5,dn=6;class _n{constructor(N){this.options=Object.assign(Object.create(Or),N),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(N){const{log:U,minZoom:ee,maxZoom:ce}=this.options;U&&console.time("total time");const ge=`prepare ${N.length} points`;U&&console.time(ge),this.points=N;const xe=[];for(let me=0;me=ee;me--){const Me=+Date.now();ve=this.trees[me]=this._createTree(this._cluster(ve,me)),U&&console.log("z%d: %d clusters in %dms",me,ve.numItems,+Date.now()-Me)}return U&&console.timeEnd("total time"),this}getClusters(N,U){let ee=((N[0]+180)%360+360)%360-180;const ce=Math.max(-90,Math.min(90,N[1]));let ge=N[2]===180?180:((N[2]+180)%360+360)%360-180;const xe=Math.max(-90,Math.min(90,N[3]));if(N[2]-N[0]>=360)ee=-180,ge=180;else if(ee>ge){const nt=this.getClusters([ee,ce,180,xe],U),Ye=this.getClusters([-180,ce,ge,xe],U);return nt.concat(Ye)}const ve=this.trees[this._limitZoom(U)],me=ve.range(ti(ee),pi(xe),ti(ge),pi(ce)),Me=ve.data,et=[];for(const nt of me){const Ye=this.stride*nt;et.push(Me[Ye+Bt]>1?ei(Me,Ye,this.clusterProps):this.points[Me[Ye+xt]])}return et}getChildren(N){const U=this._getOriginId(N),ee=this._getOriginZoom(N),ce="No cluster with the specified id.",ge=this.trees[ee];if(!ge)throw new Error(ce);const xe=ge.data;if(U*this.stride>=xe.length)throw new Error(ce);const ve=this.options.radius/(this.options.extent*Math.pow(2,ee-1)),me=ge.within(xe[U*this.stride],xe[U*this.stride+1],ve),Me=[];for(const et of me){const nt=et*this.stride;xe[nt+4]===N&&Me.push(xe[nt+Bt]>1?ei(xe,nt,this.clusterProps):this.points[xe[nt+xt]])}if(Me.length===0)throw new Error(ce);return Me}getLeaves(N,U,ee){const ce=[];return this._appendLeaves(ce,N,U=U||10,ee=ee||0,0),ce}getTile(N,U,ee){const ce=this.trees[this._limitZoom(N)],ge=Math.pow(2,N),{extent:xe,radius:ve}=this.options,me=ve/xe,Me=(ee-me)/ge,et=(ee+1+me)/ge,nt={features:[]};return this._addTileFeatures(ce.range((U-me)/ge,Me,(U+1+me)/ge,et),ce.data,U,ee,ge,nt),U===0&&this._addTileFeatures(ce.range(1-me/ge,Me,1,et),ce.data,ge,ee,ge,nt),U===ge-1&&this._addTileFeatures(ce.range(0,Me,me/ge,et),ce.data,-1,ee,ge,nt),nt.features.length?nt:null}getClusterExpansionZoom(N){let U=this._getOriginZoom(N)-1;for(;U<=this.options.maxZoom;){const ee=this.getChildren(N);if(U++,ee.length!==1)break;N=ee[0].properties.cluster_id}return U}_appendLeaves(N,U,ee,ce,ge){const xe=this.getChildren(U);for(const ve of xe){const me=ve.properties;if(me&&me.cluster?ge+me.point_count<=ce?ge+=me.point_count:ge=this._appendLeaves(N,me.cluster_id,ee,ce,ge):ge1;let et,nt,Ye;if(Me)et=Wi(U,me,this.clusterProps),nt=U[me],Ye=U[me+1];else{const Pt=this.points[U[me+xt]];et=Pt.properties;const[Dt,$t]=Pt.geometry.coordinates;nt=ti(Dt),Ye=pi($t)}const kt={type:1,geometry:[[Math.round(this.options.extent*(nt*ge-ee)),Math.round(this.options.extent*(Ye*ge-ce))]],tags:et};let Rt;Rt=Me||this.options.generateId?U[me+xt]:this.points[U[me+xt]].id,Rt!==void 0&&(kt.id=Rt),xe.features.push(kt)}}_limitZoom(N){return Math.max(this.options.minZoom,Math.min(Math.floor(+N),this.options.maxZoom+1))}_cluster(N,U){const{radius:ee,extent:ce,reduce:ge,minPoints:xe}=this.options,ve=ee/(ce*Math.pow(2,U)),me=N.data,Me=[],et=this.stride;for(let nt=0;ntU&&(Dt+=me[An+Bt])}if(Dt>Pt&&Dt>=xe){let $t,An=Ye*Pt,Fn=kt*Pt,vi=-1;const Yn=((nt/et|0)<<5)+(U+1)+this.points.length;for(const Fr of Rt){const ii=Fr*et;if(me[ii+2]<=U)continue;me[ii+2]=U;const Ci=me[ii+Bt];An+=me[ii]*Ci,Fn+=me[ii+1]*Ci,me[ii+4]=Yn,ge&&($t||($t=this._map(me,nt,!0),vi=this.clusterProps.length,this.clusterProps.push($t)),ge($t,this._map(me,ii)))}me[nt+4]=Yn,Me.push(An/Dt,Fn/Dt,1/0,Yn,-1,Dt),ge&&Me.push(vi)}else{for(let $t=0;$t1)for(const $t of Rt){const An=$t*et;if(!(me[An+2]<=U)){me[An+2]=U;for(let Fn=0;Fn>5}_getOriginZoom(N){return(N-this.points.length)%32}_map(N,U,ee){if(N[U+Bt]>1){const xe=this.clusterProps[N[U+dn]];return ee?Object.assign({},xe):xe}const ce=this.points[N[U+xt]].properties,ge=this.options.map(ce);return ee&&ge===ce?Object.assign({},ge):ge}}function ei(ne,N,U){return{type:"Feature",id:ne[N+xt],properties:Wi(ne,N,U),geometry:{type:"Point",coordinates:[(ee=ne[N],360*(ee-.5)),rs(ne[N+1])]}};var ee}function Wi(ne,N,U){const ee=ne[N+Bt],ce=ee>=1e4?`${Math.round(ee/1e3)}k`:ee>=1e3?Math.round(ee/100)/10+"k":ee,ge=ne[N+dn],xe=ge===-1?{}:Object.assign({},U[ge]);return Object.assign(xe,{cluster:!0,cluster_id:ne[N+xt],point_count:ee,point_count_abbreviated:ce})}function ti(ne){return ne/360+.5}function pi(ne){const N=Math.sin(ne*Math.PI/180),U=.5-.25*Math.log((1+N)/(1-N))/Math.PI;return U<0?0:U>1?1:U}function rs(ne){const N=(180-360*ne)*Math.PI/180;return 360*Math.atan(Math.exp(N))/Math.PI-90}function Br(ne,N,U,ee){for(var ce,ge=ee,xe=U-N>>1,ve=U-N,me=ne[N],Me=ne[N+1],et=ne[U],nt=ne[U+1],Ye=N+3;Yege)ce=Ye,ge=kt;else if(kt===ge){var Rt=Math.abs(Ye-xe);Rtee&&(ce-N>3&&Br(ne,N,ce,ee),ne[ce+2]=ge,U-ce>3&&Br(ne,ce,U,ee))}function yn(ne,N,U,ee,ce,ge){var xe=ce-U,ve=ge-ee;if(xe!==0||ve!==0){var me=((ne-U)*xe+(N-ee)*ve)/(xe*xe+ve*ve);me>1?(U=ce,ee=ge):me>0&&(U+=xe*me,ee+=ve*me)}return(xe=ne-U)*xe+(ve=N-ee)*ve}function Mt(ne,N,U,ee){var ce={id:ne===void 0?null:ne,type:N,geometry:U,tags:ee,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(ge){var xe=ge.geometry,ve=ge.type;if(ve==="Point"||ve==="MultiPoint"||ve==="LineString")Ro(ge,xe);else if(ve==="Polygon"||ve==="MultiLineString")for(var me=0;me0&&(xe+=ee?(ce*Me-me*ge)/2:Math.sqrt(Math.pow(me-ce,2)+Math.pow(Me-ge,2))),ce=me,ge=Me}var et=N.length-3;N[2]=1,Br(N,0,et,U),N[et+2]=1,N.size=Math.abs(xe),N.start=0,N.end=N.size}function nr(ne,N,U,ee){for(var ce=0;ce1?1:U}function Hi(ne,N,U,ee,ce,ge,xe,ve){if(ee/=N,ge>=(U/=N)&&xe=ee)return null;for(var me=[],Me=0;Me=U&&Rt=ee)){var Pt=[];if(Ye==="Point"||Ye==="MultiPoint")qa(nt,Pt,U,ee,ce);else if(Ye==="LineString")Us(nt,Pt,U,ee,ce,!1,ve.lineMetrics);else if(Ye==="MultiLineString")Oo(nt,Pt,U,ee,ce,!1);else if(Ye==="Polygon")Oo(nt,Pt,U,ee,ce,!0);else if(Ye==="MultiPolygon")for(var Dt=0;Dt=U&&xe<=ee&&(N.push(ne[ge]),N.push(ne[ge+1]),N.push(ne[ge+2]))}}function Us(ne,N,U,ee,ce,ge,xe){for(var ve,me,Me=Za(ne),et=ce===0?nc:ic,nt=ne.start,Ye=0;YeU&&(me=et(Me,kt,Rt,Dt,$t,U),xe&&(Me.start=nt+ve*me)):An>ee?Fn=U&&(me=et(Me,kt,Rt,Dt,$t,U),vi=!0),Fn>ee&&An<=ee&&(me=et(Me,kt,Rt,Dt,$t,ee),vi=!0),!ge&&vi&&(xe&&(Me.end=nt+ve*me),N.push(Me),Me=Za(ne)),xe&&(nt+=ve)}var Yn=ne.length-3;kt=ne[Yn],Rt=ne[Yn+1],Pt=ne[Yn+2],(An=ce===0?kt:Rt)>=U&&An<=ee&&js(Me,kt,Rt,Pt),Yn=Me.length-3,ge&&Yn>=3&&(Me[Yn]!==Me[0]||Me[Yn+1]!==Me[1])&&js(Me,Me[0],Me[1],Me[2]),Me.length&&N.push(Me)}function Za(ne){var N=[];return N.size=ne.size,N.start=ne.start,N.end=ne.end,N}function Oo(ne,N,U,ee,ce,ge){for(var xe=0;xexe.maxX&&(xe.maxX=et),nt>xe.maxY&&(xe.maxY=nt)}return xe}function Ha(ne,N,U,ee){var ce=N.geometry,ge=N.type,xe=[];if(ge==="Point"||ge==="MultiPoint")for(var ve=0;ve0&&N.size<(ce?xe:ee))U.numPoints+=N.length/3;else{for(var ve=[],me=0;mexe)&&(U.numSimplified++,ve.push(N[me]),ve.push(N[me+1])),U.numPoints++;ce&&function(Me,et){for(var nt=0,Ye=0,kt=Me.length,Rt=kt-2;Ye0===et)for(Ye=0,kt=Me.length;Ye24)throw new Error("maxZoom should be in the 0-24 range");if(N.promoteId&&N.generateId)throw new Error("promoteId and generateId cannot be used together.");var ee=function(ce,ge){var xe=[];if(ce.type==="FeatureCollection")for(var ve=0;ve1&&console.time("creation"),Ye=this.tiles[nt]=Vs(ne,N,U,ee,me),this.tileCoords.push({z:N,x:U,y:ee}),Me)){Me>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",N,U,ee,Ye.numFeatures,Ye.numPoints,Ye.numSimplified),console.timeEnd("creation"));var kt="z"+N;this.stats[kt]=(this.stats[kt]||0)+1,this.total++}if(Ye.source=ne,ce){if(N===me.maxZoom||N===ce)continue;var Rt=1<1&&console.time("clipping");var Pt,Dt,$t,An,Fn,vi,Yn=.5*me.buffer/me.extent,Fr=.5-Yn,ii=.5+Yn,Ci=1+Yn;Pt=Dt=$t=An=null,Fn=Hi(ne,et,U-Yn,U+ii,0,Ye.minX,Ye.maxX,me),vi=Hi(ne,et,U+Fr,U+Ci,0,Ye.minX,Ye.maxX,me),ne=null,Fn&&(Pt=Hi(Fn,et,ee-Yn,ee+ii,1,Ye.minY,Ye.maxY,me),Dt=Hi(Fn,et,ee+Fr,ee+Ci,1,Ye.minY,Ye.maxY,me),Fn=null),vi&&($t=Hi(vi,et,ee-Yn,ee+ii,1,Ye.minY,Ye.maxY,me),An=Hi(vi,et,ee+Fr,ee+Ci,1,Ye.minY,Ye.maxY,me),vi=null),Me>1&&console.timeEnd("clipping"),ve.push(Pt||[],N+1,2*U,2*ee),ve.push(Dt||[],N+1,2*U,2*ee+1),ve.push($t||[],N+1,2*U+1,2*ee),ve.push(An||[],N+1,2*U+1,2*ee+1)}}},Fo.prototype.getTile=function(ne,N,U){var ee=this.options,ce=ee.extent,ge=ee.debug;if(ne<0||ne>24)return null;var xe=1<1&&console.log("drilling down to z%d-%d-%d",ne,N,U);for(var me,Me=ne,et=N,nt=U;!me&&Me>0;)Me--,et=Math.floor(et/2),nt=Math.floor(nt/2),me=this.tiles[as(Me,et,nt)];return me&&me.source?(ge>1&&console.log("found parent tile z%d-%d-%d",Me,et,nt),ge>1&&console.time("drilling down"),this.splitTile(me.source,Me,et,nt,ne,N,U),ge>1&&console.timeEnd("drilling down"),this.tiles[ve]?Wa(this.tiles[ve],ce):null):null};class Gs extends s.VectorTileWorkerSource{constructor(N,U,ee,ce,ge){super(N,U,ee,ce,ls),ge&&(this.loadGeoJSON=ge)}loadData(N,U){const ee=N&&N.request,ce=ee&&ee.collectResourceTiming;this.loadGeoJSON(N,(ge,xe)=>{if(ge||!xe)return U(ge);if(typeof xe!="object")return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`));{fe(xe,!0);try{if(N.filter){const me=s.createExpression(N.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(me.result==="error")throw new Error(me.value.map(et=>`${et.key}: ${et.message}`).join(", "));xe={type:"FeatureCollection",features:xe.features.filter(et=>me.value.evaluate({zoom:0},et))}}this._geoJSONIndex=N.cluster?new _n(function({superclusterOptions:me,clusterProperties:Me}){if(!Me||!me)return me;const et={},nt={},Ye={accumulated:null,zoom:0},kt={properties:null},Rt=Object.keys(Me);for(const Pt of Rt){const[Dt,$t]=Me[Pt],An=s.createExpression($t),Fn=s.createExpression(typeof Dt=="string"?[Dt,["accumulated"],["get",Pt]]:Dt);et[Pt]=An.value,nt[Pt]=Fn.value}return me.map=Pt=>{kt.properties=Pt;const Dt={};for(const $t of Rt)Dt[$t]=et[$t].evaluate(Ye,kt);return Dt},me.reduce=(Pt,Dt)=>{kt.properties=Dt;for(const $t of Rt)Ye.accumulated=Pt[$t],Pt[$t]=nt[$t].evaluate(Ye,kt)},me}(N)).load(xe.features):function(me,Me){return new Fo(me,Me)}(xe,N.geojsonVtOptions)}catch(me){return U(me)}this.loaded={};const ve={};if(ce){const me=s.getPerformanceMeasurement(ee);me&&(ve.resourceTiming={},ve.resourceTiming[N.source]=JSON.parse(JSON.stringify(me)))}U(null,ve)}})}reloadTile(N,U){const ee=this.loaded;return ee&&ee[N.uid]?super.reloadTile(N,U):this.loadTile(N,U)}loadGeoJSON(N,U){if(N.request)s.getJSON(N.request,U);else{if(typeof N.data!="string")return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`));try{return U(null,JSON.parse(N.data))}catch{return U(new Error(`Input data given to '${N.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(N,U){try{U(null,this._geoJSONIndex.getClusterExpansionZoom(N.clusterId))}catch(ee){U(ee)}}getClusterChildren(N,U){try{U(null,this._geoJSONIndex.getChildren(N.clusterId))}catch(ee){U(ee)}}getClusterLeaves(N,U){try{U(null,this._geoJSONIndex.getLeaves(N.clusterId,N.limit,N.offset))}catch(ee){U(ee)}}}class rc{constructor(N){this.self=N,this.actor=new s.Actor(N,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=s.getProjection({name:"mercator"}),this.workerSourceTypes={vector:s.VectorTileWorkerSource,geojson:Gs},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(U,ee)=>{if(this.workerSourceTypes[U])throw new Error(`Worker source with name "${U}" already registered.`);this.workerSourceTypes[U]=ee},this.self.registerRTLTextPlugin=U=>{if(s.plugin.isParsed())throw new Error("RTL text plugin already registered.");s.plugin.applyArabicShaping=U.applyArabicShaping,s.plugin.processBidirectionalText=U.processBidirectionalText,s.plugin.processStyledBidirectionalText=U.processStyledBidirectionalText}}clearCaches(N,U,ee){delete this.layerIndexes[N],delete this.availableImages[N],delete this.workerSources[N],delete this.demWorkerSources[N],ee()}checkIfReady(N,U,ee){ee()}setReferrer(N,U){this.referrer=U}spriteLoaded(N,U){this.isSpriteLoaded[N]=U;for(const ee in this.workerSources[N]){const ce=this.workerSources[N][ee];for(const ge in ce)ce[ge]instanceof s.VectorTileWorkerSource&&(ce[ge].isSpriteLoaded=U,ce[ge].fire(new s.Event("isSpriteLoaded")))}}setImages(N,U,ee){this.availableImages[N]=U;for(const ce in this.workerSources[N]){const ge=this.workerSources[N][ce];for(const xe in ge)ge[xe].availableImages=U}ee()}enableTerrain(N,U,ee){this.terrain=U,ee()}setProjection(N,U){this.projections[N]=s.getProjection(U)}setLayers(N,U,ee){this.getLayerIndex(N).replace(U),ee()}updateLayers(N,U,ee){this.getLayerIndex(N).update(U.layers,U.removedIds),ee()}loadTile(N,U,ee){const ce=this.enableTerrain?s.extend({enableTerrain:this.terrain},U):U;ce.projection=this.projections[N]||this.defaultProjection,this.getWorkerSource(N,U.type,U.source).loadTile(ce,ee)}loadDEMTile(N,U,ee){const ce=this.enableTerrain?s.extend({buildQuadTree:this.terrain},U):U;this.getDEMWorkerSource(N,U.source).loadTile(ce,ee)}reloadTile(N,U,ee){const ce=this.enableTerrain?s.extend({enableTerrain:this.terrain},U):U;ce.projection=this.projections[N]||this.defaultProjection,this.getWorkerSource(N,U.type,U.source).reloadTile(ce,ee)}abortTile(N,U,ee){this.getWorkerSource(N,U.type,U.source).abortTile(U,ee)}removeTile(N,U,ee){this.getWorkerSource(N,U.type,U.source).removeTile(U,ee)}removeSource(N,U,ee){if(!this.workerSources[N]||!this.workerSources[N][U.type]||!this.workerSources[N][U.type][U.source])return;const ce=this.workerSources[N][U.type][U.source];delete this.workerSources[N][U.type][U.source],ce.removeSource!==void 0?ce.removeSource(U,ee):ee()}loadWorkerSource(N,U,ee){try{this.self.importScripts(U.url),ee()}catch(ce){ee(ce.toString())}}syncRTLPluginState(N,U,ee){try{s.plugin.setState(U);const ce=s.plugin.getPluginURL();if(s.plugin.isLoaded()&&!s.plugin.isParsed()&&ce!=null){this.self.importScripts(ce);const ge=s.plugin.isParsed();ee(ge?void 0:new Error(`RTL Text Plugin failed to import scripts from ${ce}`),ge)}}catch(ce){ee(ce.toString())}}getAvailableImages(N){let U=this.availableImages[N];return U||(U=[]),U}getLayerIndex(N){let U=this.layerIndexes[N];return U||(U=this.layerIndexes[N]=new q),U}getWorkerSource(N,U,ee){if(this.workerSources[N]||(this.workerSources[N]={}),this.workerSources[N][U]||(this.workerSources[N][U]={}),!this.workerSources[N][U][ee]){const ce={send:(ge,xe,ve,me,Me,et)=>{this.actor.send(ge,xe,ve,N,Me,et)},scheduler:this.actor.scheduler};this.workerSources[N][U][ee]=new this.workerSourceTypes[U](ce,this.getLayerIndex(N),this.getAvailableImages(N),this.isSpriteLoaded[N])}return this.workerSources[N][U][ee]}getDEMWorkerSource(N,U){return this.demWorkerSources[N]||(this.demWorkerSources[N]={}),this.demWorkerSources[N][U]||(this.demWorkerSources[N][U]=new X),this.demWorkerSources[N][U]}enforceCacheSizeLimit(N,U){s.enforceCacheSizeLimit(U)}getWorkerPerformanceMetrics(N,U,ee){ee(void 0,void 0)}}return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope&&(self.worker=new rc(self)),rc}),x(["./shared"],function(s){function M(d,o){if(Array.isArray(d)){if(!Array.isArray(o)||d.length!==o.length)return!1;for(let c=0;c"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var f,_,v=new Blob([""],{type:"text/javascript"}),E=URL.createObjectURL(v);try{_=new Worker(E),f=!0}catch{f=!1}return _&&_.terminate(),URL.revokeObjectURL(E),f}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var f=document.createElement("canvas");f.width=f.height=1;var _=f.getContext("2d");if(!_)return!1;var v=_.getImageData(0,0,1,1);return v&&v.width===f.width}()?(X[c=o&&o.failIfMajorPerformanceCaveat]===void 0&&(X[c]=function(f){var _,v=function(E){var S=document.createElement("canvas"),C=Object.create(q.webGLContextAttributes);return C.failIfMajorPerformanceCaveat=E,S.getContext("webgl",C)||S.getContext("experimental-webgl",C)}(f);if(!v)return!1;try{_=v.createShader(v.VERTEX_SHADER)}catch{return!1}return!(!_||v.isContextLost())&&(v.shaderSource(_,"void main() {}"),v.compileShader(_),v.getShaderParameter(_,v.COMPILE_STATUS)===!0)}(c)),X[c]?document.documentMode?"insufficient ECMAScript 6 support":void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var c}(d)}var X={};function oe(d,o,c){const f=s.window.document.createElement(d);return o!==void 0&&(f.className=o),c&&c.appendChild(f),f}function Ae(d,o,c){const f=s.window.document.createElementNS("http://www.w3.org/2000/svg",d);for(const _ of Object.keys(o))f.setAttributeNS(null,_,o[_]);return c&&c.appendChild(f),f}q.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0};const fe=s.window.document&&s.window.document.documentElement.style,ke=fe&&fe.userSelect!==void 0?"userSelect":"WebkitUserSelect";let ze;function ue(){fe&&ke&&(ze=fe[ke],fe[ke]="none")}function re(){fe&&ke&&(fe[ke]=ze)}function le(d){d.preventDefault(),d.stopPropagation(),s.window.removeEventListener("click",le,!0)}function De(){s.window.addEventListener("click",le,!0),s.window.setTimeout(()=>{s.window.removeEventListener("click",le,!0)},0)}function je(d,o){const c=d.getBoundingClientRect();return ut(d,c,o)}function tt(d,o){const c=d.getBoundingClientRect(),f=[];for(let _=0;_=0?0:d.button}function ut(d,o,c){const f=d.offsetWidth===o.width?1:d.offsetWidth/o.width;return new s.Point((c.clientX-o.left)*f,(c.clientY-o.top)*f)}function Ve(d,o){var c=o[0],f=o[1],_=o[2],v=o[3],E=c*v-_*f;return E?(d[0]=v*(E=1/E),d[1]=-f*E,d[2]=-_*E,d[3]=c*E,d):null}function jt(d){const{userImage:o}=d;return!!(o&&o.render&&o.render())&&(d.data.replace(new Uint8Array(o.data.buffer)),!0)}class di extends s.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(o){if(this.loaded!==o&&(this.loaded=o,o)){for(const{ids:c,callback:f}of this.requestors)this._notify(c,f);this.requestors=[]}}hasImage(o){return!!this.getImage(o)}getImage(o){return this.images[o]}addImage(o,c){this._validate(o,c)&&(this.images[o]=c)}_validate(o,c){let f=!0;return this._validateStretch(c.stretchX,c.data&&c.data.width)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "stretchX" value`))),f=!1),this._validateStretch(c.stretchY,c.data&&c.data.height)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "stretchY" value`))),f=!1),this._validateContent(c.content,c)||(this.fire(new s.ErrorEvent(new Error(`Image "${o}" has invalid "content" value`))),f=!1),f}_validateStretch(o,c){if(!o)return!0;let f=0;for(const _ of o){if(_[0]{this.ready=!0})}broadcast(o,c,f){s.asyncAll(this.actors,(_,v)=>{_.send(o,c,v)},f=f||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(o=>{o.remove()}),this.actors=[],this.workerPool.release(this.id)}}function Bt(d,o,c){return o*(s.EXTENT/(d.tileSize*Math.pow(2,c-d.tileID.overscaledZ)))}xt.Actor=s.Actor;class dn{constructor(o,c,f,_){this.screenBounds=o,this.cameraPoint=c,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=f,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,_)}static createFromScreenPoints(o,c){let f,_;if(o instanceof s.Point||typeof o[0]=="number"){const v=s.Point.convert(o);f=[v],_=c.isPointAboveHorizon(v)}else{const v=s.Point.convert(o[0]),E=s.Point.convert(o[1]);f=[v,E],_=s.polygonizeBounds(v,E).every(S=>c.isPointAboveHorizon(S))}return new dn(f,c.getCameraPoint(),_,c)}isPointQuery(){return this.screenBounds.length===1}bufferedScreenGeometry(o){return s.polygonizeBounds(this.screenBounds[0],this.screenBounds.length===1?this.screenBounds[0]:this.screenBounds[1],o)}bufferedCameraGeometry(o){const c=this.screenBounds[0],f=this.screenBounds.length===1?this.screenBounds[0].add(new s.Point(1,1)):this.screenBounds[1],_=s.polygonizeBounds(c,f,0,!1);return this.cameraPoint.y>f.y&&(this.cameraPoint.x>c.x&&this.cameraPoint.x=f.x?_[2]=this.cameraPoint:this.cameraPoint.x<=c.x&&(_[3]=this.cameraPoint)),s.bufferConvexPolygon(_,o)}bufferedCameraGeometryGlobe(o){const c=this.screenBounds[0],f=this.screenBounds.length===1?this.screenBounds[0].add(new s.Point(1,1)):this.screenBounds[1],_=s.polygonizeBounds(c,f,o),v=this.cameraPoint.clone();switch(3*((v.y>c.y)+(v.y>f.y))+((v.x>c.x)+(v.x>f.x))){case 0:_[0]=v,_[4]=v.clone();break;case 1:_.splice(1,0,v);break;case 2:_[1]=v;break;case 3:_.splice(4,0,v);break;case 5:_.splice(2,0,v);break;case 6:_[3]=v;break;case 7:_.splice(3,0,v);break;case 8:_[2]=v}return _}containsTile(o,c,f,_=0){const v=o.queryPadding/c._pixelsPerMercatorPixel+1,E=f?this._bufferedCameraMercator(v,c):this._bufferedScreenMercator(v,c);let S=o.tileID.wrap+(E.unwrapped?_:0);const C=E.polygon.map(H=>s.getTilePoint(o.tileTransform,H,S));if(!s.polygonIntersectsBox(C,0,0,s.EXTENT,s.EXTENT))return;S=o.tileID.wrap+(this.screenGeometryMercator.unwrapped?_:0);const z=this.screenGeometryMercator.polygon.map(H=>s.getTileVec3(o.tileTransform,H,S)),P=z.map(H=>new s.Point(H[0],H[1])),D=c.getFreeCameraOptions().position||new s.MercatorCoordinate(0,0,0),j=s.getTileVec3(o.tileTransform,D,S),$=z.map(H=>{const O=s.sub(H,H,j);return s.normalize(O,O),new s.Ray(j,O)}),W=Bt(o,1,c.zoom)*c._pixelsPerMercatorPixel;return{queryGeometry:this,tilespaceGeometry:P,tilespaceRays:$,bufferedTilespaceGeometry:C,bufferedTilespaceBounds:(Z=s.getBounds(C),Z.min.x=s.clamp(Z.min.x,0,s.EXTENT),Z.min.y=s.clamp(Z.min.y,0,s.EXTENT),Z.max.x=s.clamp(Z.max.x,0,s.EXTENT),Z.max.y=s.clamp(Z.max.y,0,s.EXTENT),Z),tile:o,tileID:o.tileID,pixelToTileUnitsFactor:W};var Z}_bufferedScreenMercator(o,c){const f=Wi(o);if(this._screenRaycastCache[f])return this._screenRaycastCache[f];{let _;return _=c.projection.name==="globe"?this._projectAndResample(this.bufferedScreenGeometry(o),c):{polygon:this.bufferedScreenGeometry(o).map(v=>c.pointCoordinate3D(v)),unwrapped:!0},this._screenRaycastCache[f]=_,_}}_bufferedCameraMercator(o,c){const f=Wi(o);if(this._cameraRaycastCache[f])return this._cameraRaycastCache[f];{let _;return _=c.projection.name==="globe"?this._projectAndResample(this.bufferedCameraGeometryGlobe(o),c):{polygon:this.bufferedCameraGeometry(o).map(v=>c.pointCoordinate3D(v)),unwrapped:!0},this._cameraRaycastCache[f]=_,_}}_projectAndResample(o,c){const f=function(v,E){const S=s.multiply([],E.pixelMatrix,E.globeMatrix),C=[0,-s.GLOBE_RADIUS,0,1],z=[0,s.GLOBE_RADIUS,0,1],P=[0,0,0,1];s.transformMat4$1(C,C,S),s.transformMat4$1(z,z,S),s.transformMat4$1(P,P,S);const D=new s.Point(C[0]/C[3],C[1]/C[3]),j=new s.Point(z[0]/z[3],z[1]/z[3]),$=s.polygonContainsPoint(v,D)&&C[3]1?_n(v.slice(0,H),E):[],J=Hnew s.Point(ei(de.x),de.y)),J=J.map(de=>new s.Point(ei(de.x),de.y));const Q=[...G];Q.length===0&&Q.push(J[J.length-1]);const he=s.number(Q[Q.length-1].y,(J.length===0?G[0]:J[0]).y,O);let pe;return pe=$?[new s.Point(0,he),new s.Point(0,0),new s.Point(1,0),new s.Point(1,he)]:[new s.Point(1,he),new s.Point(1,1),new s.Point(0,1),new s.Point(0,he)],Q.push(...pe),J.length===0?Q.push(G[0]):Q.push(...J),{polygon:Q.map(de=>new s.MercatorCoordinate(de.x,de.y)),unwrapped:!1}}(o,c);if(f)return f;const _=function(v,E){let S=!1,C=-1/0,z=0;for(let D=0;DC&&(C=v[D].x,z=D);for(let D=0;D.5&&($.x{D.x-=1}),{polygon:v,unwrapped:S}}(_n(o,c).map(v=>new s.Point(ei(v.x),v.y)),c);return{polygon:_.polygon.map(v=>new s.MercatorCoordinate(v.x,v.y)),unwrapped:_.unwrapped}}}function _n(d,o){return s.resample(d,c=>{const f=o.pointCoordinate3D(c);c.x=f.x,c.y=f.y},1/256)}function ei(d){return d<0?1+d%1:d%1}function Wi(d){return 100*d|0}function ti(d,o,c,f,_){const v=function(E,S){if(E)return _(E);if(S){d.url&&S.tiles&&d.tiles&&delete d.tiles;const C=s.pick(s.extend(S,d),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);S.vector_layers&&(C.vectorLayers=S.vector_layers,C.vectorLayerIds=C.vectorLayers.map(z=>z.id)),C.tiles=o.canonicalizeTileset(C,d.url),_(null,C)}};return d.url?s.getJSON(o.transformRequest(o.normalizeSourceURL(d.url,null,c,f),s.ResourceType.Source),v):s.exported.frame(()=>v(null,d))}class pi{constructor(o,c,f){this.bounds=s.LngLatBounds.convert(this.validateBounds(o)),this.minzoom=c||0,this.maxzoom=f||24}validateBounds(o){return Array.isArray(o)&&o.length===4?[Math.max(-180,o[0]),Math.max(-90,o[1]),Math.min(180,o[2]),Math.min(90,o[3])]:[-180,-90,180,90]}contains(o){const c=Math.pow(2,o.z),f=Math.floor(s.mercatorXfromLng(this.bounds.getWest())*c),_=Math.floor(s.mercatorYfromLat(this.bounds.getNorth())*c),v=Math.ceil(s.mercatorXfromLng(this.bounds.getEast())*c),E=Math.ceil(s.mercatorYfromLat(this.bounds.getSouth())*c);return o.x>=f&&o.x=_&&o.y{this._tileJSONRequest=null,this._loaded=!0,_?(c&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${c}`),f&&f.length!==2&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${f}`),this.fire(new s.ErrorEvent(_))):v&&(s.extend(this,v),v.bounds&&(this.tileBounds=new pi(v.bounds,this.minzoom,this.maxzoom)),s.postTurnstileEvent(v.tiles,this.map._requestManager._customAccessToken),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))),o&&o(_)})}loaded(){return this._loaded}hasTile(o){return!this.tileBounds||this.tileBounds.contains(o.canonical)}onAdd(o){this.map=o,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>this.map.style._clearSource(this.id))}setTiles(o){return this._options.tiles=o,this.reload(),this}setUrl(o){return this.url=o,this._options.url=o,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return s.extend({},this._options)}loadTile(o,c){const f=this.map._requestManager.normalizeTileURL(o.tileID.canonical.url(this.tiles,this.scheme)),_={request:this.map._requestManager.transformRequest(f,s.ResourceType.Tile),data:void 0,uid:o.uid,tileID:o.tileID,tileZoom:o.tileZoom,zoom:o.tileID.overscaledZ,tileSize:this.tileSize*o.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:s.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:o.isSymbolTile};if(_.request.collectResourceTiming=this._collectResourceTiming,o.actor&&o.state!=="expired")o.state==="loading"?o.reloadCallback=c:o.request=o.actor.send("reloadTile",_,v.bind(this));else if(o.actor=this._tileWorkers[f]=this._tileWorkers[f]||this.dispatcher.getActor(),this.dispatcher.ready)o.request=o.actor.send("loadTile",_,v.bind(this),void 0,!0);else{const E=s.loadVectorTile.call({deduped:this._deduped},_,(S,C)=>{S||!C?v.call(this,S):(_.data={cacheControl:C.cacheControl,expires:C.expires,rawData:C.rawData.slice(0)},o.actor&&o.actor.send("loadTile",_,v.bind(this),void 0,!0))},!0);o.request={cancel:E}}function v(E,S){return delete o.request,o.aborted?c(null):E&&E.status!==404?c(E):(S&&S.resourceTiming&&(o.resourceTiming=S.resourceTiming),this.map._refreshExpiredTiles&&S&&o.setExpiryData(S),o.loadVectorData(S,this.map.painter),s.cacheEntryPossiblyAdded(this.dispatcher),c(null),void(o.reloadCallback&&(this.loadTile(o,o.reloadCallback),o.reloadCallback=null)))}}abortTile(o){o.request&&(o.request.cancel(),delete o.request),o.actor&&o.actor.send("abortTile",{uid:o.uid,type:this.type,source:this.id})}unloadTile(o){o.unloadVectorData(),o.actor&&o.actor.send("removeTile",{uid:o.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}class Ye extends s.Evented{constructor(o,c,f,_){super(),this.id=o,this.dispatcher=f,this.setEventedParent(_),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=s.extend({type:"raster"},c),s.extend(this,s.pick(c,["url","scheme","tileSize"]))}load(o){this._loaded=!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=ti(this._options,this.map._requestManager,null,null,(c,f)=>{this._tileJSONRequest=null,this._loaded=!0,c?this.fire(new s.ErrorEvent(c)):f&&(s.extend(this,f),f.bounds&&(this.tileBounds=new pi(f.bounds,this.minzoom,this.maxzoom)),s.postTurnstileEvent(f.tiles),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))),o&&o(c)})}loaded(){return this._loaded}onAdd(o){this.map=o,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>this.map.style._clearSource(this.id))}setTiles(o){return this._options.tiles=o,this.reload(),this}setUrl(o){return this.url=o,this._options.url=o,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return s.extend({},this._options)}hasTile(o){return!this.tileBounds||this.tileBounds.contains(o.canonical)}loadTile(o,c){const f=s.exported.devicePixelRatio>=2,_=this.map._requestManager.normalizeTileURL(o.tileID.canonical.url(this.tiles,this.scheme),f,this.tileSize);o.request=s.getImage(this.map._requestManager.transformRequest(_,s.ResourceType.Tile),(v,E,S,C)=>(delete o.request,o.aborted?(o.state="unloaded",c(null)):v?(o.state="errored",c(v)):E?(this.map._refreshExpiredTiles&&o.setExpiryData({cacheControl:S,expires:C}),o.setTexture(E,this.map.painter),o.state="loaded",s.cacheEntryPossiblyAdded(this.dispatcher),void c(null)):c(null)))}static loadTileData(o,c,f){o.setTexture(c,f)}static unloadTileData(o,c){o.texture&&c.saveTileTexture(o.texture)}abortTile(o,c){o.request&&(o.request.cancel(),delete o.request),c()}unloadTile(o,c){o.texture&&this.map.painter.saveTileTexture(o.texture),c()}hasTransition(){return!1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}function kt(d,o,c,f,_,v,E,S){const C=[d,c,_,o,f,v,1,1,1],z=[E,S,1],P=s.adjoint([],C),[D,j,$]=s.transformMat3(z,z,s.transpose(P,P));return s.multiply$1(C,[D,0,0,0,j,0,0,0,$],C)}class Rt extends s.Evented{constructor(o,c,f,_){super(),this.id=o,this.dispatcher=f,this.coordinates=c.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(_),this.options=c,this._dirty=!1}load(o,c){this._loaded=c||!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this.url=this.options.url,this._imageRequest=s.getImage(this.map._requestManager.transformRequest(this.url,s.ResourceType.Image),(f,_)=>{if(this._imageRequest=null,this._loaded=!0,f)this.fire(new s.ErrorEvent(f));else if(_){const{HTMLImageElement:v}=s.window;this.image=_ instanceof v?s.exported.getImageData(_):_,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,o&&(this.coordinates=o),this._finishLoading()}})}loaded(){return this._loaded}updateImage(o){return this.image&&o.url?(this._imageRequest&&o.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=o.url,this.load(o.coordinates,this._loaded),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(o){this.map=o,this.load()}onRemove(){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),this.texture&&this.texture.destroy()}setCoordinates(o){this.coordinates=o,this._boundsArray=void 0;const c=o.map(s.MercatorCoordinate.fromLngLat);return this.tileID=function(f){let _=1/0,v=1/0,E=-1/0,S=-1/0;for(const D of f)_=Math.min(_,D.x),v=Math.min(v,D.y),E=Math.max(E,D.x),S=Math.max(S,D.y);const C=Math.max(E-_,S-v),z=Math.max(0,Math.floor(-Math.log(C)/Math.LN2)),P=Math.pow(2,z);return new s.CanonicalTileID(z,Math.floor((_+E)/2*P),Math.floor((v+S)/2*P))}(c),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){this._boundsArray=void 0}_prepareData(o){for(const C in this.tiles){const z=this.tiles[C];z.state!=="loaded"&&(z.state="loaded",z.texture=this.texture)}if(this._boundsArray)return;const c=s.tileTransform(this.tileID,this.map.transform.projection),[f,_,v,E]=this.coordinates.map(C=>{const z=c.projection.project(C[0],C[1]);return s.getTilePoint(c,z)._round()});this.perspectiveTransform=function(C,z,P,D,j,$,W,Z,H,O){const G=kt(0,0,C,0,0,z,C,z),J=kt(P,D,j,$,W,Z,H,O);return s.multiply$1(J,s.adjoint(G,G),J),[J[6]/J[8]*C/s.EXTENT,J[7]/J[8]*z/s.EXTENT]}(this.width,this.height,f.x,f.y,_.x,_.y,E.x,E.y,v.x,v.y);const S=this._boundsArray=new s.StructArrayLayout4i8;S.emplaceBack(f.x,f.y,0,0),S.emplaceBack(_.x,_.y,s.EXTENT,0),S.emplaceBack(E.x,E.y,0,s.EXTENT),S.emplaceBack(v.x,v.y,s.EXTENT,s.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=o.createVertexBuffer(S,s.boundsAttributes.members),this.boundsSegments=s.SegmentVector.simpleSegment(0,0,4,2)}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const o=this.map.painter.context,c=o.gl;this._dirty&&(this.texture?this.texture.update(this.image):(this.texture=new s.Texture(o,this.image,c.RGBA),this.texture.bind(c.LINEAR,c.CLAMP_TO_EDGE)),this._dirty=!1),this._prepareData(o)}loadTile(o,c){this.tileID&&this.tileID.equals(o.tileID.canonical)?(this.tiles[String(o.tileID.wrap)]=o,o.buckets={},c(null)):(o.state="errored",c(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const Pt={vector:nt,raster:Ye,"raster-dem":class extends Ye{constructor(d,o,c,f){super(d,o,c,f),this.type="raster-dem",this.maxzoom=22,this._options=s.extend({type:"raster-dem"},o),this.encoding=o.encoding||"mapbox"}loadTile(d,o){const c=this.map._requestManager.normalizeTileURL(d.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function f(_,v){_&&(d.state="errored",o(_)),v&&(d.dem=v,d.dem.onDeserialize(),d.needsHillshadePrepare=!0,d.needsDEMTextureUpload=!0,d.state="loaded",o(null))}d.request=s.getImage(this.map._requestManager.transformRequest(c,s.ResourceType.Tile),(function(_,v,E,S){if(delete d.request,d.aborted)d.state="unloaded",o(null);else if(_)d.state="errored",o(_);else if(v){this.map._refreshExpiredTiles&&d.setExpiryData({cacheControl:E,expires:S});const C=s.window.ImageBitmap&&v instanceof s.window.ImageBitmap&&(Vs==null&&(Vs=s.window.OffscreenCanvas&&new s.window.OffscreenCanvas(1,1).getContext("2d")&&typeof s.window.createImageBitmap=="function"),Vs),z=1-(v.width-s.prevPowerOfTwo(v.width))/2;z<1||d.neighboringTiles||(d.neighboringTiles=this._getNeighboringTiles(d.tileID));const P=C?v:s.exported.getImageData(v,z),D={uid:d.uid,coord:d.tileID,source:this.id,rawImageData:P,encoding:this.encoding,padding:z};d.actor&&d.state!=="expired"||(d.actor=this.dispatcher.getActor(),d.actor.send("loadDEMTile",D,f.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(d){const o=d.canonical,c=Math.pow(2,o.z),f=(o.x-1+c)%c,_=o.x===0?d.wrap-1:d.wrap,v=(o.x+1+c)%c,E=o.x+1===c?d.wrap+1:d.wrap,S={};return S[new s.OverscaledTileID(d.overscaledZ,_,o.z,f,o.y).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,E,o.z,v,o.y).key]={backfilled:!1},o.y>0&&(S[new s.OverscaledTileID(d.overscaledZ,_,o.z,f,o.y-1).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,d.wrap,o.z,o.x,o.y-1).key]={backfilled:!1},S[new s.OverscaledTileID(d.overscaledZ,E,o.z,v,o.y-1).key]={backfilled:!1}),o.y+1{if(this._loaded=!0,this._pendingLoad=null,c)this.fire(new s.ErrorEvent(c));else{const _={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&f&&f.resourceTiming&&f.resourceTiming[this.id]&&(_.resourceTiming=f.resourceTiming[this.id]),this.fire(new s.Event("data",_)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(d,o){const c=d.actor?"reloadTile":"loadTile";d.actor=this.actor,d.request=this.actor.send(c,{type:this.type,uid:d.uid,tileID:d.tileID,tileZoom:d.tileZoom,zoom:d.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:s.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(f,_)=>(delete d.request,d.unloadVectorData(),d.aborted?o(null):f?o(f):(d.loadVectorData(_,this.map.painter,c==="reloadTile"),o(null))),void 0,c==="loadTile")}abortTile(d){d.request&&(d.request.cancel(),delete d.request),d.aborted=!0}unloadTile(d){d.unloadVectorData(),this.actor.send("removeTile",{uid:d.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return s.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends Rt{constructor(d,o,c,f){super(d,o,c,f),this.roundZoom=!0,this.type="video",this.options=o}load(){this._loaded=!1;const d=this.options;this.urls=[];for(const o of d.urls)this.urls.push(this.map._requestManager.transformRequest(o,s.ResourceType.Source).url);s.getVideo(this.urls,(o,c)=>{this._loaded=!0,o?this.fire(new s.ErrorEvent(o)):c&&(this.video=c,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(d){if(this.video){const o=this.video.seekable;do.end(0)?this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${o.start(0)} and ${o.end(0)}-second mark.`))):this.video.currentTime=d}}getVideo(){return this.video}onAdd(d){this.map||(this.map=d,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const d=this.map.painter.context,o=d.gl;this.texture?this.video.paused||(this.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE),o.texSubImage2D(o.TEXTURE_2D,0,0,0,o.RGBA,o.UNSIGNED_BYTE,this.video)):(this.texture=new s.Texture(d,this.video,o.RGBA),this.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(d)}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:Rt,canvas:class extends Rt{constructor(d,o,c,f){super(d,o,c,f),o.coordinates?Array.isArray(o.coordinates)&&o.coordinates.length===4&&!o.coordinates.some(_=>!Array.isArray(_)||_.length!==2||_.some(v=>typeof v!="number"))||this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'missing required property "coordinates"'))),o.animate&&typeof o.animate!="boolean"&&this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'optional "animate" property must be a boolean value'))),o.canvas?typeof o.canvas=="string"||o.canvas instanceof s.window.HTMLCanvasElement||this.fire(new s.ErrorEvent(new s.ValidationError(`sources.${d}`,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 s.ErrorEvent(new s.ValidationError(`sources.${d}`,null,'missing required property "canvas"'))),this.options=o,this.animate=o.animate===void 0||o.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof s.window.HTMLCanvasElement?this.options.canvas:s.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new s.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(d){this.map=d,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let d=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,d=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,d=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const o=this.map.painter.context;this.texture?(d||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new s.Texture(o,this.canvas,o.gl.RGBA,{premultiply:!0}),this._prepareData(o)}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const d of[this.canvas.width,this.canvas.height])if(isNaN(d)||d<=0)return!0;return!1}},custom:class extends s.Evented{constructor(d,o,c,f){super(),this.id=d,this.type="custom",this._dataType="raster",this._dispatcher=c,this._implementation=o,this.setEventedParent(f),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new s.ErrorEvent(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new s.ErrorEvent(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new pi(this._implementation.bounds,this.minzoom,this.maxzoom)),o.update=this._update.bind(this),o.clearTiles=this._clearTiles.bind(this),o.coveringTiles=this._coveringTiles.bind(this),s.extend(this,s.pick(o,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]))}serialize(){return s.pick(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new s.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))}loaded(){return this._loaded}onAdd(d){this._map=d,this._loaded=!1,this.fire(new s.Event("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(d),this.load()}onRemove(d){this._implementation.onRemove&&this._implementation.onRemove(d)}hasTile(d){if(this._implementation.hasTile){const{x:o,y:c,z:f}=d.canonical;return this._implementation.hasTile({x:o,y:c,z:f})}return!this.tileBounds||this.tileBounds.contains(d.canonical)}loadTile(d,o){const{x:c,y:f,z:_}=d.tileID.canonical,v=new s.window.AbortController;d.request=Promise.resolve(this._implementation.loadTile({x:c,y:f,z:_},{signal:v.signal})).then((function(E){return delete d.request,d.aborted?(d.state="unloaded",o(null)):E===void 0?(d.state="errored",o(null)):E===null?(this.loadTileData(d,{width:this.tileSize,height:this.tileSize,data:null}),d.state="loaded",o(null)):function(S){return S instanceof s.window.ImageData||S instanceof s.window.HTMLCanvasElement||S instanceof s.window.ImageBitmap||S instanceof s.window.HTMLImageElement}(E)?(this.loadTileData(d,E),d.state="loaded",void o(null)):(d.state="errored",o(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}).bind(this)).catch(E=>{E.code!==20&&(d.state="errored",o(E))}),d.request.cancel=()=>v.abort()}loadTileData(d,o){Ye.loadTileData(d,o,this._map.painter)}unloadTileData(d){Ye.unloadTileData(d,this._map.painter)}unloadTile(d,o){if(this.unloadTileData(d),this._implementation.unloadTile){const{x:c,y:f,z:_}=d.tileID.canonical;this._implementation.unloadTile({x:c,y:f,z:_})}o()}abortTile(d,o){d.request&&d.request.cancel&&(d.request.cancel(),delete d.request),o()}hasTransition(){return!1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map(d=>({x:d.canonical.x,y:d.canonical.y,z:d.canonical.z}))}_clearTiles(){this._map.style._clearSource(this.id)}_update(){this.fire(new s.Event("data",{dataType:"source",sourceDataType:"content"}))}}},Dt=function(d,o,c,f){const _=new Pt[o.type](d,o,c,f);if(_.id!==d)throw new Error(`Expected Source id to be ${d} instead of ${_.id}`);return s.bindAll(["load","abort","unload","serialize","prepare"],_),_};function $t(d,o){const c=s.identity([]);return s.scale(c,c,[.5*d.width,.5*-d.height,1]),s.translate(c,c,[1,-1,0]),s.multiply(c,c,d.calculateProjMatrix(o.toUnwrapped())),Float32Array.from(c)}function An(d,o,c,f,_,v,E,S=!1){const C=d.tilesIn(f,E,S);C.sort(vi);const z=[];for(const D of C)z.push({wrappedTileID:D.tile.tileID.wrapped().key,queryResults:D.tile.queryRenderedFeatures(o,c,d._state,D,_,v,$t(d.transform,D.tile.tileID),S)});const P=function(D){const j={},$={};for(const W of D){const Z=W.queryResults,H=W.wrappedTileID,O=$[H]=$[H]||{};for(const G in Z){const J=Z[G],Q=O[G]=O[G]||{},he=j[G]=j[G]||[];for(const pe of J)Q[pe.featureIndex]||(Q[pe.featureIndex]=!0,he.push(pe))}}return j}(z);for(const D in P)P[D].forEach(j=>{const $=j.feature,W=$.layer;W&&W.type!=="background"&&W.type!=="sky"&&($.source=W.source,W["source-layer"]&&($.sourceLayer=W["source-layer"]),$.state=$.id!==void 0?d.getFeatureState(W["source-layer"],$.id):{})});return P}function Fn(d,o){const c=d.getRenderableIds().map(v=>d.getTileByID(v)),f=[],_={};for(let v=0;v{c.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[Fr]}numActive(){return Object.keys(this.active).length}}let Ci;function $s(){return Ci||(Ci=new ii),Ci}function Bg(d,o){const c={};for(const f in d)f!=="ref"&&(c[f]=d[f]);return s.refProperties.forEach(f=>{f in o&&(c[f]=o[f])}),c}function _p(d){d=d.slice();const o=Object.create(null);for(let c=0;c0?(_-E)/S:0;return this.points[v].mult(1-C).add(this.points[c].mult(C))}}class cs{constructor(o,c,f){const _=this.boxCells=[],v=this.circleCells=[];this.xCellCount=Math.ceil(o/f),this.yCellCount=Math.ceil(c/f);for(let E=0;Ethis.width||_<0||c>this.height)return!v&&[];const S=[];if(o<=0&&c<=0&&this.width<=f&&this.height<=_){if(v)return!0;for(let C=0;C0:S}_queryCircle(o,c,f,_,v){const E=o-f,S=o+f,C=c-f,z=c+f;if(S<0||E>this.width||z<0||C>this.height)return!_&&[];const P=[];return this._forEachCell(E,C,S,z,this._queryCellCircle,P,{hitTest:_,circle:{x:o,y:c,radius:f},seenUids:{box:{},circle:{}}},v),_?P.length>0:P}query(o,c,f,_,v){return this._query(o,c,f,_,!1,v)}hitTest(o,c,f,_,v){return this._query(o,c,f,_,!0,v)}hitTestCircle(o,c,f,_){return this._queryCircle(o,c,f,!0,_)}_queryCell(o,c,f,_,v,E,S,C){const z=S.seenUids,P=this.boxCells[v];if(P!==null){const j=this.bboxes;for(const $ of P)if(!z.box[$]){z.box[$]=!0;const W=4*$;if(o<=j[W+2]&&c<=j[W+3]&&f>=j[W+0]&&_>=j[W+1]&&(!C||C(this.boxKeys[$]))){if(S.hitTest)return E.push(!0),!0;E.push({key:this.boxKeys[$],x1:j[W],y1:j[W+1],x2:j[W+2],y2:j[W+3]})}}}const D=this.circleCells[v];if(D!==null){const j=this.circles;for(const $ of D)if(!z.circle[$]){z.circle[$]=!0;const W=3*$;if(this._circleAndRectCollide(j[W],j[W+1],j[W+2],o,c,f,_)&&(!C||C(this.circleKeys[$]))){if(S.hitTest)return E.push(!0),!0;{const Z=j[W],H=j[W+1],O=j[W+2];E.push({key:this.circleKeys[$],x1:Z-O,y1:H-O,x2:Z+O,y2:H+O})}}}}}_queryCellCircle(o,c,f,_,v,E,S,C){const z=S.circle,P=S.seenUids,D=this.boxCells[v];if(D!==null){const $=this.bboxes;for(const W of D)if(!P.box[W]){P.box[W]=!0;const Z=4*W;if(this._circleAndRectCollide(z.x,z.y,z.radius,$[Z+0],$[Z+1],$[Z+2],$[Z+3])&&(!C||C(this.boxKeys[W])))return E.push(!0),!0}}const j=this.circleCells[v];if(j!==null){const $=this.circles;for(const W of j)if(!P.circle[W]){P.circle[W]=!0;const Z=3*W;if(this._circlesCollide($[Z],$[Z+1],$[Z+2],z.x,z.y,z.radius)&&(!C||C(this.circleKeys[W])))return E.push(!0),!0}}}_forEachCell(o,c,f,_,v,E,S,C){const z=this._convertToXCellCoord(o),P=this._convertToYCellCoord(c),D=this._convertToXCellCoord(f),j=this._convertToYCellCoord(_);for(let $=z;$<=D;$++)for(let W=P;W<=j;W++)if(v.call(this,o,c,f,_,this.xCellCount*W+$,E,S,C))return}_convertToXCellCoord(o){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(o*this.xScale)))}_convertToYCellCoord(o){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(o*this.yScale)))}_circlesCollide(o,c,f,_,v,E){const S=_-o,C=v-c,z=f+E;return z*z>S*S+C*C}_circleAndRectCollide(o,c,f,_,v,E,S){const C=(E-_)/2,z=Math.abs(o-(_+C));if(z>C+f)return!1;const P=(S-v)/2,D=Math.abs(c-(v+P));if(D>P+f)return!1;if(z<=C||D<=P)return!0;const j=z-C,$=D-P;return j*j+$*$<=f*f}}const io={unknown:0,flipRequired:1,flipNotRequired:2},Ka=Math.tan(85*Math.PI/180);function Le(d,o,c,f,_,v,E){const S=s.create();if(c)if(v.name==="globe"){const C=s.calculateGlobeLabelMatrix(_,o);s.multiply(S,S,C)}else{const C=Ve([],E);S[0]=C[0],S[1]=C[1],S[4]=C[2],S[5]=C[3],f||s.rotateZ(S,S,_.angle)}else s.multiply(S,_.labelPlaneMatrix,d);return S}function ro(d,o,c,f,_,v,E){const S=Le(d,o,c,f,_,v,E);return v.name==="globe"&&c||(S[2]=S[6]=S[10]=S[14]=0),S}function Nn(d,o,c,f,_,v,E){if(c){if(v.name==="globe"){const S=Le(d,o,c,f,_,v,E);return s.invert(S,S),s.multiply(S,d,S),S}{const S=s.clone(d),C=s.identity([]);return C[0]=E[0],C[1]=E[1],C[4]=E[2],C[5]=E[3],s.multiply(S,S,C),f||s.rotateZ(S,S,-_.angle),S}}return _.glCoordMatrix}function ri(d,o,c,f){const _=[d,o,c,1];c?s.transformMat4$1(_,_,f):Nt(_,_,f);const v=_[3];return _[0]/=v,_[1]/=v,_[2]/=v,_}function yp(d,o){return Math.min(.5+d/o*.5,1.5)}function Ur(d,o){const c=d[0]/d[3],f=d[1]/d[3];return c>=-o[0]&&c<=o[0]&&f>=-o[1]&&f<=o[1]}function qu(d,o,c,f,_,v,E,S,C,z){const P=c.transform,D=f?d.textSizeData:d.iconSizeData,j=s.evaluateSizeForZoom(D,c.transform.zoom),$=P.projection.name==="globe",W=[256/c.width*2+1,256/c.height*2+1],Z=f?d.text.dynamicLayoutVertexArray:d.icon.dynamicLayoutVertexArray;Z.clear();let H=null;$&&(H=f?d.text.globeExtVertexArray:d.icon.globeExtVertexArray);const O=d.lineVertexArray,G=f?d.text.placedSymbolArray:d.icon.placedSymbolArray,J=c.transform.width/c.transform.height;let Q,he=!1;for(let pe=0;peMath.abs(c)?{useVertical:!0}:d===s.WritingMode.vertical?f>0?{needsFlipping:!0}:null:o!==io.unknown&&function(_,v){return _===0||Math.abs(v/_)>Ka}(c,f)?o===io.flipRequired?{needsFlipping:!0}:null:c<0?{needsFlipping:!0}:null}function at(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O,G){const J=o/24,Q=d.lineOffsetX*J,he=d.lineOffsetY*J,{lineStartIndex:pe,glyphStartIndex:de,numGlyphs:ye,segment:_e,writingMode:Te,flipState:Ze}=d,we=pe+d.lineLength,Be=Ce=>{if(P){const[He,Ge,Xe]=Ce.up,gt=z.length;s.updateGlobeVertexNormal(P,gt+0,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+1,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+2,He,Ge,Xe),s.updateGlobeVertexNormal(P,gt+3,He,Ge,Xe)}const[qe,Ee,Oe]=Ce.point;s.addDynamicAttributes(z,qe,Ee,Oe,Ce.angle)};if(ye>1){const Ce=vp(J,S,Q,he,c,D,j,d,C,v,$,Z,!1,H,O,G);if(!Ce)return{notEnoughRoom:!0};if(f&&!c){let[qe,Ee,Oe]=Ce.first.point,[He,Ge,Xe]=Ce.last.point;[qe,Ee]=ri(qe,Ee,Oe,E),[He,Ge]=ri(He,Ge,Xe,E);const gt=qs(Te,Ze,(He-qe)*W,Ge-Ee);if(d.flipState=gt&>.needsFlipping?io.flipRequired:io.flipNotRequired,gt)return gt}Be(Ce.first);for(let qe=de+1;qe0?He:Ft(j,Oe,qe,1,_,void 0,H,O.canonical),Xe=qs(Te,Ze,(Ge[0]-qe[0])*W,Ge[1]-qe[1]);if(d.flipState=Xe&&Xe.needsFlipping?io.flipRequired:io.flipNotRequired,Xe)return Xe}const Ce=Xi(J*S.getoffsetX(de),Q,he,c,D,j,_e,pe,we,C,v,$,Z,!1,!1,H,O,G);if(!Ce)return{notEnoughRoom:!0};Be(Ce)}return{}}function Gt(d,o,c,f,_){const{x:v,y:E,z:S}=f.projectTilePoint(d.x,d.y,o);if(!_)return ri(v,E,S,c);const[C,z,P]=_(d);return ri(v+C,E+z,S+P,c)}function Ft(d,o,c,f,_,v,E,S){const C=Gt(d.sub(o)._unit()._add(d),S,_,E,v);return s.sub(C,c,C),s.normalize(C,C),s.scaleAndAdd(C,c,C,f)}function Xi(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O){const G=f?d-o:d+o;let J=G>0?1:-1,Q=0;f&&(J*=-1,Q=Math.PI),J<0&&(Q+=Math.PI);let he=S+E+(J>0?0:1)|0,pe=_,de=_,ye=0,_e=0;const Te=Math.abs(G),Ze=[],we=[];let Be=v,Ce=Be;const qe=()=>Ft(Ce,Be,de,Te-ye+1,P,j,Z,H.canonical);for(;ye+_e<=Te;){if(he+=J,he=C)return null;if(de=pe,Ce=Be,Ze.push(de),$&&we.push(Ce),Be=new s.Point(z.getx(he),z.gety(he)),pe=D[he],!pe){const wt=Gt(Be,H.canonical,P,Z,j);pe=wt[3]>0?D[he]=wt:qe()}ye+=_e,_e=s.distance(de,pe)}W&&j&&(D[he]&&(pe=qe(),_e=s.distance(de,pe)),D[he]=pe);const Ee=(Te-ye)/_e,Oe=Be.sub(Ce)._mult(Ee)._add(Ce),He=s.sub([],pe,de),Ge=s.scaleAndAdd([],de,He,Ee);let Xe=[0,0,1],gt=He[0],Et=He[1];if(O&&(Xe=Z.upVector(H.canonical,Oe.x,Oe.y),Xe[0]!==0||Xe[1]!==0||Xe[2]!==1)){const wt=[Xe[2],0,-Xe[0]],Ut=s.cross([],Xe,wt);s.normalize(wt,wt),s.normalize(Ut,Ut),gt=s.dot(He,wt),Et=s.dot(He,Ut)}if(c){const wt=s.cross([],Xe,He);s.normalize(wt,wt),s.scaleAndAdd(Ge,Ge,wt,c*J)}const dt=Q+Math.atan2(Et,gt);return Ze.push(Ge),$&&we.push(Oe),{point:Ge,angle:dt,path:Ze,tilePath:we,up:Xe}}function br(d,o){const c=o.length,f=c+4*d;o.resize(f),o.float32.fill(-1/0,4*c,4*f)}function Nt(d,o,c){const f=o[0],_=o[1];return d[0]=c[0]*f+c[4]*_+c[12],d[1]=c[1]*f+c[5]*_+c[13],d[3]=c[3]*f+c[7]*_+c[15],d}const Ki=100;class Ya{constructor(o,c,f=new cs(o.width+200,o.height+200,25),_=new cs(o.width+200,o.height+200,25)){this.transform=o,this.grid=f,this.ignoredGrid=_,this.pitchfactor=Math.cos(o._pitch)*o.cameraToCenterDistance,this.screenRightBoundary=o.width+Ki,this.screenBottomBoundary=o.height+Ki,this.gridRightBoundary=o.width+200,this.gridBottomBoundary=o.height+200,this.fogState=c}placeCollisionBox(o,c,f,_,v,E,S,C){let z=f.projectedAnchorX,P=f.projectedAnchorY,D=f.projectedAnchorZ;const j=f.elevation,$=f.tileID,W=o.getProjection();if(j&&$){const[pe,de,ye]=W.upVector($.canonical,f.tileAnchorX,f.tileAnchorY),_e=W.upVectorScale($.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;z+=pe*j*_e,P+=de*j*_e,D+=ye*j*_e}const Z=this.projectAndGetPerspectiveRatio(S,z,P,D,f.tileID,W.name==="globe"||!!j||this.transform.pitch>0,W),H=E*Z.perspectiveRatio,O=(f.x1*c+_.x-f.padding)*H+Z.point.x,G=(f.y1*c+_.y-f.padding)*H+Z.point.y,J=(f.x2*c+_.x+f.padding)*H+Z.point.x,Q=(f.y2*c+_.y+f.padding)*H+Z.point.y,he=Z.perspectiveRatio<=.55||Z.occluded;return!this.isInsideGrid(O,G,J,Q)||!v&&this.grid.hitTest(O,G,J,Q,C)||he?{box:[],offscreen:!1,occluded:Z.occluded}:{box:[O,G,J,Q],offscreen:this.isOffscreen(O,G,J,Q),occluded:!1}}placeCollisionCircles(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z){const H=[],O=this.transform.elevation,G=o.getProjection(),J=O?O.getAtTileOffsetFunc(Z,this.transform.center.lat,this.transform.worldSize,G):null,Q=new s.Point(f.tileAnchorX,f.tileAnchorY);let{x:he,y:pe,z:de}=G.projectTilePoint(Q.x,Q.y,Z.canonical);if(J){const[Oe,He,Ge]=J(Q);he+=Oe,pe+=He,de+=Ge}const ye=G.name==="globe",_e=this.projectAndGetPerspectiveRatio(S,he,pe,de,Z,ye||!!O||this.transform.pitch>0,G),{perspectiveRatio:Te}=_e,Ze=(D?E/Te:E*Te)/s.ONE_EM,we=ri(he,pe,de,C),Be=_e.signedDistanceFromCamera>0?vp(Ze,v,f.lineOffsetX*Ze,f.lineOffsetY*Ze,!1,we,Q,f,_,C,{},O&&!D?J:null,D&&!!O,G,Z,D):null;let Ce=!1,qe=!1,Ee=!0;if(Be&&!_e.occluded){const Oe=.5*$*Te+W,He=new s.Point(-100,-100),Ge=new s.Point(this.screenRightBoundary,this.screenBottomBoundary),Xe=new $u,{first:gt,last:Et}=Be,dt=gt.path.length;let wt=[];for(let mt=dt-1;mt>=1;mt--)wt.push(gt.path[mt]);for(let mt=1;mt(J&&!ye&&(rn=J(onmt[3]<=0)&&(wt=[]));let Ot=[];if(wt.length>0){let mt=1/0,en=-1/0,rn=1/0,on=-1/0;for(const sn of wt)mt=Math.min(mt,sn[0]),rn=Math.min(rn,sn[1]),en=Math.max(en,sn[0]),on=Math.max(on,sn[1]);en>=He.x&&mt<=Ge.x&&on>=He.y&&rn<=Ge.y&&(Ot=[wt.map(sn=>new s.Point(sn[0],sn[1]))],(mtGe.x||rnGe.y)&&(Ot=s.clipLine(Ot,He.x,He.y,Ge.x,Ge.y)))}for(const mt of Ot){Xe.reset(mt,.25*Oe);let en=0;en=Xe.length<=.5*Oe?1:Math.ceil(Xe.paddedLength/Ut)+1;for(let rn=0;rn0?(s.transformMat4$1(C,C,o),this.fogState&&v&&S.name!=="globe"&&(z=function(j,$,W,Z,H,O){const G=O.calculateFogTileMatrix(H),J=[$,W,Z];return s.transformMat4(J,J,G),wr(j,J,O.pitch,O._fov)}(this.fogState,c,f,_,v.toUnwrapped(),this.transform)>.9)):Nt(C,C,o);const P=C[3];return{point:new s.Point((C[0]/P+1)/2*this.transform.width+Ki,(-C[1]/P+1)/2*this.transform.height+Ki),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(S)/P*.5,1.5),signedDistanceFromCamera:P,occluded:E&&C[2]>P||z}}isOffscreen(o,c,f,_){return f=this.screenRightBoundary||_this.screenBottomBoundary}isInsideGrid(o,c,f,_){return f>=0&&o=0&&cf.collisionGroupID===c}}return this.collisionGroups[o]}}function el(d,o,c,f,_){const{horizontalAlign:v,verticalAlign:E}=s.getAnchorAlignment(d),S=-(v-.5)*o,C=-(E-.5)*c,z=s.evaluateVariableOffset(d,f);return new s.Point(S+z[0]*_,C+z[1]*_)}function tl(d,o,c,f,_){const v=new s.Point(d,o);return c&&v._rotate(f?_:-_),v}class sc{constructor(o,c,f,_,v){this.transform=o.clone(),this.projection=o.projection.name,this.collisionIndex=new Ya(this.transform,v),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=c,this.retainedQueryData={},this.collisionGroups=new wp(f),this.collisionCircleArrays={},this.prevPlacement=_,_&&(_.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(o,c,f,_){const v=f.getBucket(c),E=f.latestFeatureIndex;if(!v||!E||c.id!==v.layerIds[0])return;const S=v.layers[0].layout,C=f.collisionBoxArray,z=Math.pow(2,this.transform.zoom-f.tileID.overscaledZ),P=f.tileSize/s.EXTENT,D=f.tileID.toUnwrapped();this.transform.setProjection(v.projection);const j=($=f.tileID,W=v.getProjection(),Z=this.transform,W.name===this.projection?Z.calculateProjMatrix($.toUnwrapped()):us(Z,W,$));var $,W,Z;const H=S.get("text-pitch-alignment")==="map",O=S.get("text-rotation-alignment")==="map";c.compileFilter();const G=c.dynamicFilter(),J=c.dynamicFilterNeedsFeature(),Q=this.transform.calculatePixelsToTileUnitsMatrix(f),he=ro(j,f.tileID.canonical,H,O,this.transform,v.getProjection(),Q);let pe=null;if(H){const _e=Nn(j,f.tileID.canonical,H,O,this.transform,v.getProjection(),Q);pe=s.multiply([],this.transform.labelPlaneMatrix,_e)}let de=null;G&&f.latestFeatureIndex&&(de={unwrappedTileID:D,dynamicFilter:G,dynamicFilterNeedsFeature:J,featureIndex:f.latestFeatureIndex}),this.retainedQueryData[v.bucketInstanceId]=new Zu(v.bucketInstanceId,E,v.sourceLayerIndex,v.index,f.tileID);const ye={bucket:v,layout:S,posMatrix:j,textLabelPlaneMatrix:he,labelToScreenMatrix:pe,clippingData:de,scale:z,textPixelRatio:P,holdingForFade:f.holdingForFade(),collisionBoxArray:C,partiallyEvaluatedTextSize:s.evaluateSizeForZoom(v.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:s.evaluateSizeForZoom(v.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(v.sourceID)};if(_)for(const _e of v.sortKeyRanges){const{sortKey:Te,symbolInstanceStart:Ze,symbolInstanceEnd:we}=_e;o.push({sortKey:Te,symbolInstanceStart:Ze,symbolInstanceEnd:we,parameters:ye})}else o.push({symbolInstanceStart:0,symbolInstanceEnd:v.symbolInstances.length,parameters:ye})}attemptAnchorPlacement(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z,H,O,G){const{textOffset0:J,textOffset1:Q,crossTileID:he}=j,pe=[J,Q],de=el(o,f,_,pe,v),ye=this.collisionIndex.placeCollisionBox(W,v,c,tl(de.x,de.y,E,S,this.transform.angle),D,C,z,P.predicate);if(H){const _e=W.getSymbolInstanceIconSize(G,this.transform.zoom,j.placedIconSymbolIndex);if(this.collisionIndex.placeCollisionBox(W,_e,H,tl(de.x,de.y,E,S,this.transform.angle),D,C,z,P.predicate).box.length===0)return}if(ye.box.length>0){let _e;return this.prevPlacement&&this.prevPlacement.variableOffsets[he]&&this.prevPlacement.placements[he]&&this.prevPlacement.placements[he].text&&(_e=this.prevPlacement.variableOffsets[he].anchor),this.variableOffsets[he]={textOffset:pe,width:f,height:_,anchor:o,textScale:v,prevAnchor:_e},this.markUsedJustification(W,o,j,Z),W.allowVerticalPlacement&&(this.markUsedOrientation(W,Z,j),this.placedOrientations[he]=Z),{shift:de,placedGlyphBoxes:ye}}}placeLayerBucketPart(o,c,f,_){const{bucket:v,layout:E,posMatrix:S,textLabelPlaneMatrix:C,labelToScreenMatrix:z,clippingData:P,textPixelRatio:D,holdingForFade:j,collisionBoxArray:$,partiallyEvaluatedTextSize:W,partiallyEvaluatedIconSize:Z,collisionGroup:H}=o.parameters,O=E.get("text-optional"),G=E.get("icon-optional"),J=E.get("text-allow-overlap"),Q=E.get("icon-allow-overlap"),he=E.get("text-rotation-alignment")==="map",pe=E.get("text-pitch-alignment")==="map",de=E.get("icon-text-fit")!=="none",ye=E.get("symbol-z-order")==="viewport-y";this.transform.setProjection(v.projection);let _e=J&&(Q||!v.hasIconData()||G),Te=Q&&(J||!v.hasTextData()||O);!v.collisionArrays&&$&&v.deserializeCollisionBoxes($),f&&_&&v.updateCollisionDebugBuffers(this.transform.zoom,$);const Ze=(we,Be,Ce)=>{const{crossTileID:qe,numVerticalGlyphVertices:Ee}=we;if(P){const Tn={zoom:this.transform.zoom,pitch:this.transform.pitch};let an=null;if(P.dynamicFilterNeedsFeature){const Xt=this.retainedQueryData[v.bucketInstanceId];an=P.featureIndex.loadFeature({featureIndex:we.featureIndex,bucketIndex:Xt.bucketIndex,sourceLayerIndex:Xt.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,P.dynamicFilter)(Tn,an,this.retainedQueryData[v.bucketInstanceId].tileID.canonical,new s.Point(we.tileAnchorX,we.tileAnchorY),this.transform.calculateDistanceTileData(P.unwrappedTileID)))return this.placements[qe]=new Ja(!1,!1,!1,!0),void c.add(qe)}if(c.has(qe))return;if(j)return void(this.placements[qe]=new Ja(!1,!1,!1));let Oe=!1,He=!1,Ge=!0,Xe=!1,gt=!1,Et=null,dt={box:null,offscreen:null,occluded:null},wt={box:null,offscreen:null,occluded:null},Ut=null,Ot=null,mt=null,en=0,rn=0,on=0;Ce.textFeatureIndex?en=Ce.textFeatureIndex:we.useRuntimeCollisionCircles&&(en=we.featureIndex),Ce.verticalTextFeatureIndex&&(rn=Ce.verticalTextFeatureIndex);const sn=Tn=>{Tn.tileID=this.retainedQueryData[v.bucketInstanceId].tileID;const an=this.transform.elevation;(an||Tn.elevation)&&(Tn.elevation=an?an.getAtTileOffset(Tn.tileID,Tn.tileAnchorX,Tn.tileAnchorY):0)},wi=Ce.textBox;if(wi){sn(wi);const Tn=Xt=>{let Un=s.WritingMode.horizontal;if(v.allowVerticalPlacement&&!Xt&&this.prevPlacement){const Ii=this.prevPlacement.placedOrientations[qe];Ii&&(this.placedOrientations[qe]=Ii,Un=Ii,this.markUsedOrientation(v,Un,we))}return Un},an=(Xt,Un)=>{if(v.allowVerticalPlacement&&Ee>0&&Ce.verticalTextBox){for(const Ii of v.writingModes)if(Ii===s.WritingMode.vertical?(dt=Un(),wt=dt):dt=Xt(),dt&&dt.box&&dt.box.length)break}else dt=Xt()};if(E.get("text-variable-anchor")){let Xt=E.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[qe]){const wn=this.prevPlacement.variableOffsets[qe];Xt.indexOf(wn.anchor)>0&&(Xt=Xt.filter(Oi=>Oi!==wn.anchor),Xt.unshift(wn.anchor))}const Un=(wn,Oi,Lc)=>{const ys=v.getSymbolInstanceTextSize(W,we,this.transform.zoom,Be),wl=(wn.x2-wn.x1)*ys+2*wn.padding,po=(wn.y2-wn.y1)*ys+2*wn.padding,jo=de&&!Q?Oi:null;jo&&sn(jo);let vs={box:[],offscreen:!1,occluded:!1};const Rc=J?2*Xt.length:Xt.length;for(let bl=0;bl=Xt.length,we,Be,v,Lc,jo,W,Z);if(Oh&&(vs=Oh.placedGlyphBoxes,vs&&vs.box&&vs.box.length)){Oe=!0,Et=Oh.shift;break}}return vs};an(()=>Un(wi,Ce.iconBox,s.WritingMode.horizontal),()=>{const wn=Ce.verticalTextBox;return wn&&sn(wn),v.allowVerticalPlacement&&!(dt&&dt.box&&dt.box.length)&&Ee>0&&wn?Un(wn,Ce.verticalIconBox,s.WritingMode.vertical):{box:null,offscreen:null,occluded:null}}),dt&&(Oe=dt.box,Ge=dt.offscreen,Xe=dt.occluded);const Ii=Tn(!(!dt||!dt.box));if(!Oe&&this.prevPlacement){const wn=this.prevPlacement.variableOffsets[qe];wn&&(this.variableOffsets[qe]=wn,this.markUsedJustification(v,wn.anchor,we,Ii))}}else{const Xt=(Un,Ii)=>{const wn=v.getSymbolInstanceTextSize(W,we,this.transform.zoom,Be),Oi=this.collisionIndex.placeCollisionBox(v,wn,Un,new s.Point(0,0),J,D,S,H.predicate);return Oi&&Oi.box&&Oi.box.length&&(this.markUsedOrientation(v,Ii,we),this.placedOrientations[qe]=Ii),Oi};an(()=>Xt(wi,s.WritingMode.horizontal),()=>{const Un=Ce.verticalTextBox;return v.allowVerticalPlacement&&Ee>0&&Un?(sn(Un),Xt(Un,s.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}}),Tn(!!(dt&&dt.box&&dt.box.length))}}if(Ut=dt,Oe=Ut&&Ut.box&&Ut.box.length>0,Ge=Ut&&Ut.offscreen,Xe=Ut&&Ut.occluded,we.useRuntimeCollisionCircles){const Tn=v.text.placedSymbolArray.get(we.centerJustifiedTextSymbolIndex>=0?we.centerJustifiedTextSymbolIndex:we.verticalPlacedTextSymbolIndex),an=s.evaluateSizeForFeature(v.textSizeData,W,Tn),Xt=E.get("text-padding");Ot=this.collisionIndex.placeCollisionCircles(v,J,Tn,v.lineVertexArray,v.glyphOffsetArray,an,S,C,z,f,pe,H.predicate,we.collisionCircleDiameter*an/s.ONE_EM,Xt,this.retainedQueryData[v.bucketInstanceId].tileID),Oe=J||Ot.circles.length>0&&!Ot.collisionDetected,Ge=Ge&&Ot.offscreen,Xe=Ot.occluded}if(Ce.iconFeatureIndex&&(on=Ce.iconFeatureIndex),Ce.iconBox){const Tn=an=>{sn(an);const Xt=de&&Et?tl(Et.x,Et.y,he,pe,this.transform.angle):new s.Point(0,0),Un=v.getSymbolInstanceIconSize(Z,this.transform.zoom,we.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(v,Un,an,Xt,Q,D,S,H.predicate)};wt&&wt.box&&wt.box.length&&Ce.verticalIconBox?(mt=Tn(Ce.verticalIconBox),He=mt.box.length>0):(mt=Tn(Ce.iconBox),He=mt.box.length>0),Ge=Ge&&mt.offscreen,gt=mt.occluded}const si=O||we.numHorizontalGlyphVertices===0&&Ee===0,lr=G||we.numIconVertices===0;if(si||lr?lr?si||(He=He&&Oe):Oe=He&&Oe:He=Oe=He&&Oe,Oe&&Ut&&Ut.box&&this.collisionIndex.insertCollisionBox(Ut.box,E.get("text-ignore-placement"),v.bucketInstanceId,wt&&wt.box&&rn?rn:en,H.ID),He&&mt&&this.collisionIndex.insertCollisionBox(mt.box,E.get("icon-ignore-placement"),v.bucketInstanceId,on,H.ID),Ot&&(Oe&&this.collisionIndex.insertCollisionCircles(Ot.circles,E.get("text-ignore-placement"),v.bucketInstanceId,en,H.ID),f)){const Tn=v.bucketInstanceId;let an=this.collisionCircleArrays[Tn];an===void 0&&(an=this.collisionCircleArrays[Tn]=new Qa);for(let Xt=0;Xt=0;--Be){const Ce=we[Be];Ze(v.symbolInstances.get(Ce),Ce,v.collisionArrays[Ce])}}else for(let we=o.symbolInstanceStart;we=0&&(o.text.placedSymbolArray.get(v).crossTileID=D>=0&&v!==D?0:z),E>=0&&(o.text.placedSymbolArray.get(E).crossTileID=D>=0&&E!==D?0:z),S>=0&&(o.text.placedSymbolArray.get(S).crossTileID=D>=0&&S!==D?0:z),C>=0&&(o.text.placedSymbolArray.get(C).crossTileID=D>=0&&C!==D?0:z)}markUsedOrientation(o,c,f){const _=c===s.WritingMode.horizontal||c===s.WritingMode.horizontalOnly?c:0,v=c===s.WritingMode.vertical?c:0,{leftJustifiedTextSymbolIndex:E,centerJustifiedTextSymbolIndex:S,rightJustifiedTextSymbolIndex:C,verticalPlacedTextSymbolIndex:z}=f,P=o.text.placedSymbolArray;E>=0&&(P.get(E).placedOrientation=_),S>=0&&(P.get(S).placedOrientation=_),C>=0&&(P.get(C).placedOrientation=_),z>=0&&(P.get(z).placedOrientation=v)}commit(o){this.commitTime=o,this.zoomAtLastRecencyCheck=this.transform.zoom;const c=this.prevPlacement;let f=!1;this.prevZoomAdjustment=c?c.zoomAdjustment(this.transform.zoom):0;const _=c?c.symbolFadeChange(o):1,v=c?c.opacities:{},E=c?c.variableOffsets:{},S=c?c.placedOrientations:{};for(const C in this.placements){const z=this.placements[C],P=v[C];P?(this.opacities[C]=new oo(P,_,z.text,z.icon,null,z.clipped),f=f||z.text!==P.text.placed||z.icon!==P.icon.placed):(this.opacities[C]=new oo(null,_,z.text,z.icon,z.skipFade,z.clipped),f=f||z.text||z.icon)}for(const C in v){const z=v[C];if(!this.opacities[C]){const P=new oo(z,_,!1,!1);P.isHidden()||(this.opacities[C]=P,f=f||z.text.placed||z.icon.placed)}}for(const C in E)this.variableOffsets[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.variableOffsets[C]=E[C]);for(const C in S)this.placedOrientations[C]||!this.opacities[C]||this.opacities[C].isHidden()||(this.placedOrientations[C]=S[C]);f?this.lastPlacementChangeTime=o:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=c?c.lastPlacementChangeTime:o)}updateLayerOpacities(o,c){const f=new Set;for(const _ of c){const v=_.getBucket(o);v&&_.latestFeatureIndex&&o.id===v.layerIds[0]&&this.updateBucketOpacities(v,f,_.collisionBoxArray)}}updateBucketOpacities(o,c,f){o.hasTextData()&&o.text.opacityVertexArray.clear(),o.hasIconData()&&o.icon.opacityVertexArray.clear(),o.hasIconCollisionBoxData()&&o.iconCollisionBox.collisionVertexArray.clear(),o.hasTextCollisionBoxData()&&o.textCollisionBox.collisionVertexArray.clear();const _=o.layers[0].layout,v=!!o.layers[0].dynamicFilter(),E=new oo(null,0,!1,!1,!0),S=_.get("text-allow-overlap"),C=_.get("icon-allow-overlap"),z=_.get("text-variable-anchor"),P=_.get("text-rotation-alignment")==="map",D=_.get("text-pitch-alignment")==="map",j=_.get("icon-text-fit")!=="none",$=new oo(null,0,S&&(C||!o.hasIconData()||_.get("icon-optional")),C&&(S||!o.hasTextData()||_.get("text-optional")),!0);!o.collisionArrays&&f&&(o.hasIconCollisionBoxData()||o.hasTextCollisionBoxData())&&o.deserializeCollisionBoxes(f);const W=(H,O,G)=>{for(let J=0;J0||J>0,_e=he>0,Te=this.placedOrientations[Q],Ze=Te===s.WritingMode.vertical,we=Te===s.WritingMode.horizontal||Te===s.WritingMode.horizontalOnly;if(!ye&&!_e||de.isHidden()||Z++,ye){const Be=nl(de.text);W(o.text,G,Ze?Pn:Be),W(o.text,J,we?Pn:Be);const Ce=de.text.isHidden(),{leftJustifiedTextSymbolIndex:qe,centerJustifiedTextSymbolIndex:Ee,rightJustifiedTextSymbolIndex:Oe,verticalPlacedTextSymbolIndex:He}=O,Ge=o.text.placedSymbolArray,Xe=Ce||Ze?1:0;qe>=0&&(Ge.get(qe).hidden=Xe),Ee>=0&&(Ge.get(Ee).hidden=Xe),Oe>=0&&(Ge.get(Oe).hidden=Xe),He>=0&&(Ge.get(He).hidden=Ce||we?1:0);const gt=this.variableOffsets[Q];gt&&this.markUsedJustification(o,gt.anchor,O,Te);const Et=this.placedOrientations[Q];Et&&(this.markUsedJustification(o,"left",O,Et),this.markUsedOrientation(o,Et,O))}if(_e){const Be=nl(de.icon),{placedIconSymbolIndex:Ce,verticalPlacedIconSymbolIndex:qe}=O,Ee=o.icon.placedSymbolArray,Oe=de.icon.isHidden()?1:0;Ce>=0&&(W(o.icon,he,Ze?Pn:Be),Ee.get(Ce).hidden=Oe),qe>=0&&(W(o.icon,O.numVerticalIconVertices,we?Pn:Be),Ee.get(qe).hidden=Oe)}if(o.hasIconCollisionBoxData()||o.hasTextCollisionBoxData()){const Be=o.collisionArrays[H];if(Be){let Ce=new s.Point(0,0),qe=!0;if(Be.textBox||Be.verticalTextBox){if(z){const Oe=this.variableOffsets[Q];Oe?(Ce=el(Oe.anchor,Oe.width,Oe.height,Oe.textOffset,Oe.textScale),P&&Ce._rotate(D?this.transform.angle:-this.transform.angle)):qe=!1}v&&(qe=!de.clipped),Be.textBox&&Zs(o.textCollisionBox.collisionVertexArray,de.text.placed,!qe||Ze,Ce.x,Ce.y),Be.verticalTextBox&&Zs(o.textCollisionBox.collisionVertexArray,de.text.placed,!qe||we,Ce.x,Ce.y)}const Ee=qe&&!!(!we&&Be.verticalIconBox);Be.iconBox&&Zs(o.iconCollisionBox.collisionVertexArray,de.icon.placed,Ee,j?Ce.x:0,j?Ce.y:0),Be.verticalIconBox&&Zs(o.iconCollisionBox.collisionVertexArray,de.icon.placed,!Ee,j?Ce.x:0,j?Ce.y:0)}}}if(o.fullyClipped=Z===0,o.sortFeatures(this.transform.angle),this.retainedQueryData[o.bucketInstanceId]&&(this.retainedQueryData[o.bucketInstanceId].featureSortOrder=o.featureSortOrder),o.hasTextData()&&o.text.opacityVertexBuffer&&o.text.opacityVertexBuffer.updateData(o.text.opacityVertexArray),o.hasIconData()&&o.icon.opacityVertexBuffer&&o.icon.opacityVertexBuffer.updateData(o.icon.opacityVertexArray),o.hasIconCollisionBoxData()&&o.iconCollisionBox.collisionVertexBuffer&&o.iconCollisionBox.collisionVertexBuffer.updateData(o.iconCollisionBox.collisionVertexArray),o.hasTextCollisionBoxData()&&o.textCollisionBox.collisionVertexBuffer&&o.textCollisionBox.collisionVertexBuffer.updateData(o.textCollisionBox.collisionVertexArray),o.bucketInstanceId in this.collisionCircleArrays){const H=this.collisionCircleArrays[o.bucketInstanceId];o.placementInvProjMatrix=H.invProjMatrix,o.placementViewportMatrix=H.viewportMatrix,o.collisionCircleArray=H.circles,delete this.collisionCircleArrays[o.bucketInstanceId]}}symbolFadeChange(o){return this.fadeDuration===0?1:(o-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(o){return Math.max(0,(this.transform.zoom-o)/1.5)}hasTransitions(o){return this.stale||o-this.lastPlacementChangeTimeo}setStale(){this.stale=!0}}function Zs(d,o,c,f,_){d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0),d.emplaceBack(o?1:0,c?1:0,f||0,_||0)}const Ri=Math.pow(2,25),Dn=Math.pow(2,24),Wu=Math.pow(2,17),Hu=Math.pow(2,16),Di=Math.pow(2,9),or=Math.pow(2,8),bp=Math.pow(2,1);function nl(d){if(d.opacity===0&&!d.placed)return 0;if(d.opacity===1&&d.placed)return 4294967295;const o=d.placed?1:0,c=Math.floor(127*d.opacity);return c*Ri+o*Dn+c*Wu+o*Hu+c*Di+o*or+c*bp+o}const Pn=0;class il{constructor(o){this._sortAcrossTiles=o.layout.get("symbol-z-order")!=="viewport-y"&&o.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs=new Set,this._bucketParts=[]}continuePlacement(o,c,f,_,v){const E=this._bucketParts;for(;this._currentTileIndexS.sortKey-C.sortKey));this._currentPartIndex{const E=s.exported.now()-_;return!this._forceFullPlacement&&E>2};for(;this._currentPlacementIndex>=0;){const E=c[o[this._currentPlacementIndex]],S=this.placement.collisionIndex.transform.zoom;if(E.type==="symbol"&&(!E.minzoom||E.minzoom<=S)&&(!E.maxzoom||E.maxzoom>S)){if(this._inProgressLayer||(this._inProgressLayer=new il(E)),this._inProgressLayer.continuePlacement(f[E.source],this.placement,this._showCollisionBoxes,E,v))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(o){return this.placement.commit(o),this.placement}}const hs=512/s.EXTENT/2;class fi{constructor(o,c,f){this.tileID=o,this.bucketInstanceId=f,this.index=new s.KDBush(c.length,16,Int32Array),this.keys=[],this.crossTileIDs=[];const _=o.canonical.x*s.EXTENT,v=o.canonical.y*s.EXTENT;for(let E=0;Eo.overscaledZ)for(const S in E){const C=E[S];C.tileID.isChildOf(o)&&C.findMatches(c.symbolInstances,o,_)}else{const S=E[o.scaledTo(Number(v)).key];S&&S.findMatches(c.symbolInstances,o,_)}}for(let v=0;v{c[f]=!0});for(const f in this.layerIndexes)c[f]||delete this.layerIndexes[f]}}const No=(d,o)=>s.emitValidationErrors(d,o&&o.filter(c=>c.identifier!=="source.canvas")),ac=s.pick(Jt,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),Fg=s.pick(Jt,["setCenter","setZoom","setBearing","setPitch"]),Ju={version:8,layers:[],sources:{}},Ws={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class jr extends s.Evented{constructor(o,c={}){super(),this.map=o,this.dispatcher=new xt($s(),this),this.imageManager=new di,this.imageManager.setEventedParent(this),this.glyphManager=new s.GlyphManager(o._requestManager,c.localFontFamily?s.LocalGlyphMode.all:c.localIdeographFontFamily?s.LocalGlyphMode.ideographs:s.LocalGlyphMode.none,c.localFontFamily||c.localIdeographFontFamily),this.crossTileSymbolIndex=new so,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",s.getReferrer());const f=this;this._rtlTextPluginCallback=jr.registerForPluginStateChange(_=>{f.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:_.pluginStatus,pluginURL:_.pluginURL},(v,E)=>{if(s.triggerPluginCompletionEvent(v),E&&E.every(S=>S))for(const S in f._sourceCaches){const C=f._sourceCaches[S],z=C.getSource().type;z!=="vector"&&z!=="geojson"||C.reload()}})}),this.on("data",_=>{if(_.dataType!=="source"||_.sourceDataType!=="metadata")return;const v=this.getSource(_.sourceId);if(v&&v.vectorLayerIds)for(const E in this._layers){const S=this._layers[E];S.source===v.id&&this._validateLayer(S)}})}loadURL(o,c={}){this.fire(new s.Event("dataloading",{dataType:"style"}));const f=typeof c.validate=="boolean"?c.validate:!s.isMapboxURL(o);o=this.map._requestManager.normalizeStyleURL(o,c.accessToken);const _=this.map._requestManager.transformRequest(o,s.ResourceType.Style);this._request=s.getJSON(_,(v,E)=>{this._request=null,v?this.fire(new s.ErrorEvent(v)):E&&this._load(E,f)})}loadJSON(o,c={}){this.fire(new s.Event("dataloading",{dataType:"style"})),this._request=s.exported.frame(()=>{this._request=null,this._load(o,c.validate!==!1)})}loadEmpty(){this.fire(new s.Event("dataloading",{dataType:"style"})),this._load(Ju,!1)}_updateLayerCount(o,c){const f=c?1:-1;o.is3D()&&(this._num3DLayers+=f),o.type==="circle"&&(this._numCircleLayers+=f),o.type==="symbol"&&(this._numSymbolLayers+=f)}_load(o,c){if(c&&No(this,s.validateStyle(o)))return;this._loaded=!0,this.stylesheet=s.clone$1(o),this._updateMapProjection();for(const _ in o.sources)this.addSource(_,o.sources[_],{validate:!1});this._changed=!1,o.sprite?this._loadSprite(o.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(o.glyphs);const f=_p(this.stylesheet.layers);this._order=f.map(_=>_.id),this._layers={},this._serializedLayers={};for(const _ of f){const v=s.createStyleLayer(_);v.setEventedParent(this,{layer:{id:v.id}}),this._layers[v.id]=v,this._serializedLayers[v.id]=v.serialize(),this._updateLayerCount(v,!0)}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new Vt(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new s.Event("data",{dataType:"style"})),this.fire(new s.Event("style.load"))}terrainSetForDrapingOnly(){return!!this.terrain&&this.terrain.drapeRenderMode===0}setProjection(o){o?this.stylesheet.projection=o:delete this.stylesheet.projection,this._updateMapProjection()}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null))}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection)}_loadSprite(o){this._spriteRequest=function(c,f,_){let v,E,S;const C=s.exported.devicePixelRatio>1?"@2x":"";let z=s.getJSON(f.transformRequest(f.normalizeSpriteURL(c,C,".json"),s.ResourceType.SpriteJSON),(j,$)=>{z=null,S||(S=j,v=$,D())}),P=s.getImage(f.transformRequest(f.normalizeSpriteURL(c,C,".png"),s.ResourceType.SpriteImage),(j,$)=>{P=null,S||(S=j,E=$,D())});function D(){if(S)_(S);else if(v&&E){const j=s.exported.getImageData(E),$={};for(const W in v){const{width:Z,height:H,x:O,y:G,sdf:J,pixelRatio:Q,stretchX:he,stretchY:pe,content:de}=v[W],ye=new s.RGBAImage({width:Z,height:H});s.RGBAImage.copy(j,ye,{x:O,y:G},{x:0,y:0},{width:Z,height:H}),$[W]={data:ye,pixelRatio:Q,sdf:J,stretchX:he,stretchY:pe,content:de}}_(null,$)}}return{cancel(){z&&(z.cancel(),z=null),P&&(P.cancel(),P=null)}}}(o,this.map._requestManager,(c,f)=>{if(this._spriteRequest=null,c)this.fire(new s.ErrorEvent(c));else if(f)for(const _ in f)this.imageManager.addImage(_,f[_]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new s.Event("data",{dataType:"style"}))})}_validateLayer(o){const c=this.getSource(o.source);if(!c)return;const f=o.sourceLayer;f&&(c.type==="geojson"||c.vectorLayerIds&&c.vectorLayerIds.indexOf(f)===-1)&&this.fire(new s.ErrorEvent(new Error(`Source layer "${f}" does not exist on source "${c.id}" as specified by style layer "${o.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const o in this._sourceCaches)if(!this._sourceCaches[o].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(o){const c=[];for(const f of o){const _=this._layers[f];_.type!=="custom"&&c.push(_.serialize())}return c}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const o in this._sourceCaches)if(this._sourceCaches[o].hasTransition())return!0;for(const o in this._layers)if(this._layers[o].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(o){return!!this.terrain&&(typeof o.isLayerDraped=="function"?o.isLayerDraped():Ws[o.type])}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading")}update(o){if(!this._loaded)return;const c=this._changed;if(this._changed){const _=Object.keys(this._updatedLayers),v=Object.keys(this._removedLayers);(_.length||v.length)&&this._updateWorkerLayers(_,v);for(const E in this._updatedSources){const S=this._updatedSources[E];S==="reload"?this._reloadSource(E):S==="clear"&&this._clearSource(E)}this._updateTilesForChangedImages();for(const E in this._updatedPaintProps)this._layers[E].updateTransitions(o);this.light.updateTransitions(o),this.fog&&this.fog.updateTransitions(o),this._resetUpdates()}const f={};for(const _ in this._sourceCaches){const v=this._sourceCaches[_];f[_]=v.used,v.used=!1}for(const _ of this._order){const v=this._layers[_];if(v.recalculate(o,this._availableImages),!v.isHidden(o.zoom)){const S=this._getLayerSourceCache(v);S&&(S.used=!0)}const E=this.map.painter;if(E){const S=v.getProgramIds();if(!S)continue;const C=v.getProgramConfiguration(o.zoom);for(const z of S)E.useProgram(z,C)}}for(const _ in f){const v=this._sourceCaches[_];f[_]!==v.used&&v.getSource().fire(new s.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:v.getSource().id}))}this.light.recalculate(o),this.terrain&&this.terrain.recalculate(o),this.fog&&this.fog.recalculate(o),this.z=o.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),c&&this.fire(new s.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const o=Object.keys(this._changedImages);if(o.length){for(const c in this._sourceCaches)this._sourceCaches[c].reloadTilesForDependencies(["icons","patterns"],o);this._changedImages={}}}_updateWorkerLayers(o,c){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(o),removedIds:c})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(o){if(this._checkLoaded(),No(this,s.validateStyle(o)))return!1;(o=s.clone$1(o)).layers=_p(o.layers);const c=function(_,v){if(!_)return[{command:Jt.setStyle,args:[v]}];let E=[];try{if(!M(_.version,v.version))return[{command:Jt.setStyle,args:[v]}];M(_.center,v.center)||E.push({command:Jt.setCenter,args:[v.center]}),M(_.zoom,v.zoom)||E.push({command:Jt.setZoom,args:[v.zoom]}),M(_.bearing,v.bearing)||E.push({command:Jt.setBearing,args:[v.bearing]}),M(_.pitch,v.pitch)||E.push({command:Jt.setPitch,args:[v.pitch]}),M(_.sprite,v.sprite)||E.push({command:Jt.setSprite,args:[v.sprite]}),M(_.glyphs,v.glyphs)||E.push({command:Jt.setGlyphs,args:[v.glyphs]}),M(_.transition,v.transition)||E.push({command:Jt.setTransition,args:[v.transition]}),M(_.light,v.light)||E.push({command:Jt.setLight,args:[v.light]}),M(_.fog,v.fog)||E.push({command:Jt.setFog,args:[v.fog]}),M(_.projection,v.projection)||E.push({command:Jt.setProjection,args:[v.projection]});const S={},C=[];(function(D,j,$,W){let Z;for(Z in j=j||{},D=D||{})D.hasOwnProperty(Z)&&(j.hasOwnProperty(Z)||Xa(Z,$,W));for(Z in j){if(!j.hasOwnProperty(Z))continue;const H=j[Z];D.hasOwnProperty(Z)?M(D[Z],H)||(D[Z].type==="geojson"&&H.type==="geojson"&&oc(D,j,Z)?$.push({command:Jt.setGeoJSONSourceData,args:[Z,H.data]}):Vu(Z,j,$,W)):ju(Z,j,$)}})(_.sources,v.sources,C,S);const z=[];_.layers&&_.layers.forEach(D=>{D.source&&S[D.source]?E.push({command:Jt.removeLayer,args:[D.id]}):z.push(D)});let P=_.terrain;P&&S[P.source]&&(E.push({command:Jt.setTerrain,args:[void 0]}),P=void 0),E=E.concat(C),M(P,v.terrain)||E.push({command:Jt.setTerrain,args:[v.terrain]}),function(D,j,$){j=j||[];const W=(D=D||[]).map(no),Z=j.map(no),H=D.reduce(Gu,{}),O=j.reduce(Gu,{}),G=W.slice(),J=Object.create(null);let Q,he,pe,de,ye,_e,Te;for(Q=0,he=0;Q!(_.command in Fg));if(c.length===0)return!1;const f=c.filter(_=>!(_.command in ac));if(f.length>0)throw new Error(`Unimplemented: ${f.map(_=>_.command).join(", ")}.`);return c.forEach(_=>{_.command!=="setTransition"&&_.command!=="setProjection"&&this[_.command].apply(this,_.args)}),this.stylesheet=o,this._updateMapProjection(),!0}addImage(o,c){return this.getImage(o)?this.fire(new s.ErrorEvent(new Error("An image with this name already exists."))):(this.imageManager.addImage(o,c),this._afterImageUpdated(o),this)}updateImage(o,c){this.imageManager.updateImage(o,c)}getImage(o){return this.imageManager.getImage(o)}removeImage(o){return this.getImage(o)?(this.imageManager.removeImage(o),this._afterImageUpdated(o),this):this.fire(new s.ErrorEvent(new Error("No image with this name exists.")))}_afterImageUpdated(o){this._availableImages=this.imageManager.listImages(),this._changedImages[o]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new s.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(o,c,f={}){if(this._checkLoaded(),this.getSource(o)!==void 0)throw new Error("There is already a source with this ID");if(!c.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(c).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(c.type)>=0&&this._validate(s.validateSource,`sources.${o}`,c,null,f))return;this.map&&this.map._collectResourceTiming&&(c.collectResourceTiming=!0);const _=Dt(o,c,this.dispatcher,this);_.setEventedParent(this,()=>({isSourceLoaded:this._isSourceCacheLoaded(o),source:_.serialize(),sourceId:o}));const v=E=>{const S=(E?"symbol:":"other:")+o,C=this._sourceCaches[S]=new s.SourceCache(S,_,E);(E?this._symbolSourceCaches:this._otherSourceCaches)[o]=C,C.style=this,C.onAdd(this.map)};v(!1),c.type!=="vector"&&c.type!=="geojson"||v(!0),_.onAdd&&_.onAdd(this.map),this._changed=!0}removeSource(o){this._checkLoaded();const c=this.getSource(o);if(!c)throw new Error("There is no source with this ID");for(const _ in this._layers)if(this._layers[_].source===o)return this.fire(new s.ErrorEvent(new Error(`Source "${o}" cannot be removed while layer "${_}" is using it.`)));if(this.terrain&&this.terrain.get().source===o)return this.fire(new s.ErrorEvent(new Error(`Source "${o}" cannot be removed while terrain is using it.`)));const f=this._getSourceCaches(o);for(const _ of f)delete this._sourceCaches[_.id],delete this._updatedSources[_.id],_.fire(new s.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:_.getSource().id})),_.setEventedParent(null),_.clearTiles();return delete this._otherSourceCaches[o],delete this._symbolSourceCaches[o],c.setEventedParent(null),c.onRemove&&c.onRemove(this.map),this._changed=!0,this}setGeoJSONSourceData(o,c){this._checkLoaded(),this.getSource(o).setData(c),this._changed=!0}getSource(o){const c=this._getSourceCache(o);return c&&c.getSource()}_getSources(){const o=[];for(const c in this._otherSourceCaches){const f=this._getSourceCache(c);f&&o.push(f.getSource())}return o}addLayer(o,c,f={}){this._checkLoaded();const _=o.id;if(this.getLayer(_))return void this.fire(new s.ErrorEvent(new Error(`Layer with id "${_}" already exists on this map`)));let v;if(o.type==="custom"){if(No(this,s.validateCustomStyleLayer(o)))return;v=s.createStyleLayer(o)}else{if(typeof o.source=="object"&&(this.addSource(_,o.source),o=s.clone$1(o),o=s.extend(o,{source:_})),this._validate(s.validateLayer,`layers.${_}`,o,{arrayIndex:-1},f))return;v=s.createStyleLayer(o),this._validateLayer(v),v.setEventedParent(this,{layer:{id:_}}),this._serializedLayers[v.id]=v.serialize(),this._updateLayerCount(v,!0)}const E=c?this._order.indexOf(c):this._order.length;if(c&&E===-1)return void this.fire(new s.ErrorEvent(new Error(`Layer with id "${c}" does not exist on this map.`)));this._order.splice(E,0,_),this._layerOrderChanged=!0,this._layers[_]=v;const S=this._getLayerSourceCache(v);if(this._removedLayers[_]&&v.source&&S&&v.type!=="custom"){const C=this._removedLayers[_];delete this._removedLayers[_],C.type!==v.type?this._updatedSources[v.source]="clear":(this._updatedSources[v.source]="reload",S.pause())}this._updateLayer(v),v.onAdd&&v.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(o,c){if(this._checkLoaded(),this._changed=!0,!this._layers[o])return void this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be moved.`)));if(o===c)return;const f=this._order.indexOf(o);this._order.splice(f,1);const _=c?this._order.indexOf(c):this._order.length;c&&_===-1?this.fire(new s.ErrorEvent(new Error(`Layer with id "${c}" does not exist on this map.`))):(this._order.splice(_,0,o),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(o){this._checkLoaded();const c=this._layers[o];if(!c)return void this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be removed.`)));c.setEventedParent(null),this._updateLayerCount(c,!1);const f=this._order.indexOf(o);this._order.splice(f,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[o]=c,delete this._layers[o],delete this._serializedLayers[o],delete this._updatedLayers[o],delete this._updatedPaintProps[o],c.onRemove&&c.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(o){return this._layers[o]}hasLayer(o){return o in this._layers}hasLayerType(o){for(const c in this._layers)if(this._layers[c].type===o)return!0;return!1}setLayerZoomRange(o,c,f){this._checkLoaded();const _=this.getLayer(o);_?_.minzoom===c&&_.maxzoom===f||(c!=null&&(_.minzoom=c),f!=null&&(_.maxzoom=f),this._updateLayer(_)):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(o,c,f={}){this._checkLoaded();const _=this.getLayer(o);if(_){if(!M(_.filter,c))return c==null?(_.filter=void 0,void this._updateLayer(_)):void(this._validate(s.validateFilter,`layers.${_.id}.filter`,c,{layerType:_.type},f)||(_.filter=s.clone$1(c),this._updateLayer(_)))}else this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be filtered.`)))}getFilter(o){const c=this.getLayer(o);return c&&s.clone$1(c.filter)}setLayoutProperty(o,c,f,_={}){this._checkLoaded();const v=this.getLayer(o);v?M(v.getLayoutProperty(c),f)||(v.setLayoutProperty(c,f,_),this._updateLayer(v)):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(o,c){const f=this.getLayer(o);if(f)return f.getLayoutProperty(c);this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style.`)))}setPaintProperty(o,c,f,_={}){this._checkLoaded();const v=this.getLayer(o);v?M(v.getPaintProperty(c),f)||(v.setPaintProperty(c,f,_)&&this._updateLayer(v),this._changed=!0,this._updatedPaintProps[o]=!0):this.fire(new s.ErrorEvent(new Error(`The layer '${o}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(o,c){const f=this.getLayer(o);return f&&f.getPaintProperty(c)}setFeatureState(o,c){this._checkLoaded();const f=o.source,_=o.sourceLayer,v=this.getSource(f);if(!v)return void this.fire(new s.ErrorEvent(new Error(`The source '${f}' does not exist in the map's style.`)));const E=v.type;if(E==="geojson"&&_)return void this.fire(new s.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));if(E==="vector"&&!_)return void this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));o.id===void 0&&this.fire(new s.ErrorEvent(new Error("The feature id parameter must be provided.")));const S=this._getSourceCaches(f);for(const C of S)C.setFeatureState(_,o.id,c)}removeFeatureState(o,c){this._checkLoaded();const f=o.source,_=this.getSource(f);if(!_)return void this.fire(new s.ErrorEvent(new Error(`The source '${f}' does not exist in the map's style.`)));const v=_.type,E=v==="vector"?o.sourceLayer:void 0;if(v==="vector"&&!E)return void this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));if(c&&typeof o.id!="string"&&typeof o.id!="number")return void this.fire(new s.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));const S=this._getSourceCaches(f);for(const C of S)C.removeFeatureState(E,o.id,c)}getFeatureState(o){this._checkLoaded();const c=o.source,f=o.sourceLayer,_=this.getSource(c);if(_){if(_.type!=="vector"||f)return o.id===void 0&&this.fire(new s.ErrorEvent(new Error("The feature id parameter must be provided."))),this._getSourceCaches(c)[0].getFeatureState(f,o.id);this.fire(new s.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new s.ErrorEvent(new Error(`The source '${c}' does not exist in the map's style.`)))}getTransition(){return s.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const o={};for(const c in this._sourceCaches){const f=this._sourceCaches[c].getSource();o[f.id]||(o[f.id]=f.serialize())}return s.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.getTerrain()||void 0,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:o,layers:this._serializeLayers(this._order)},c=>c!==void 0)}_updateLayer(o){this._updatedLayers[o.id]=!0;const c=this._getLayerSourceCache(o);o.source&&!this._updatedSources[o.source]&&c&&c.getSource().type!=="raster"&&(this._updatedSources[o.source]="reload",c.pause()),this._changed=!0,o.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(o){const c=E=>this._layers[E].type==="fill-extrusion",f={},_=[];for(let E=this._order.length-1;E>=0;E--){const S=this._order[E];if(c(S)){f[S]=E;for(const C of o){const z=C[S];if(z)for(const P of z)_.push(P)}}}_.sort((E,S)=>S.intersectionZ-E.intersectionZ);const v=[];for(let E=this._order.length-1;E>=0;E--){const S=this._order[E];if(c(S))for(let C=_.length-1;C>=0;C--){const z=_[C].feature;if(f[z.layer.id]{const z=this.getLayer(C);return z&&z.is3D()}):this.has3DLayers(),S=dn.createFromScreenPoints(o,f);for(const C in this._sourceCaches){const z=this._sourceCaches[C].getSource().id;c.layers&&!_[z]||v.push(An(this._sourceCaches[C],this._layers,this._serializedLayers,S,c,f,E,!!this.map._showQueryGeometry))}return this.placement&&v.push(function(C,z,P,D,j,$,W){const Z={},H=$.queryRenderedSymbols(D),O=[];for(const G of Object.keys(H).map(Number))O.push(W[G]);O.sort(vi);for(const G of O){const J=G.featureIndex.lookupSymbolFeatures(H[G.bucketInstanceId],z,G.bucketIndex,G.sourceLayerIndex,j.filter,j.layers,j.availableImages,C);for(const Q in J){const he=Z[Q]=Z[Q]||[],pe=J[Q];pe.sort((de,ye)=>{const _e=G.featureSortOrder;if(_e){const Te=_e.indexOf(de.featureIndex);return _e.indexOf(ye.featureIndex)-Te}return ye.featureIndex-de.featureIndex});for(const de of pe)he.push(de)}}for(const G in Z)Z[G].forEach(J=>{const Q=J.feature,he=P(C[G]);if(!he)return;const pe=he.getFeatureState(Q.layer["source-layer"],Q.id);Q.source=Q.layer.source,Q.layer["source-layer"]&&(Q.sourceLayer=Q.layer["source-layer"]),Q.state=pe});return Z}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),S.screenGeometry,c,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(v)}querySourceFeatures(o,c){c&&c.filter&&this._validate(s.validateFilter,"querySourceFeatures.filter",c.filter,null,c);const f=this._getSourceCaches(o);let _=[];for(const v of f)_=_.concat(Fn(v,c));return _}addSourceType(o,c,f){return jr.getSourceType(o)?f(new Error(`A source type called "${o}" already exists.`)):(jr.setSourceType(o,c),c.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:o,url:c.workerSourceURL},f):f(null,null))}getLight(){return this.light.getLight()}setLight(o,c={}){this._checkLoaded();const f=this.light.getLight();let _=!1;for(const E in o)if(!M(o[E],f[E])){_=!0;break}if(!_)return;const v=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(o,c),this.light.updateTransitions(v)}getTerrain(){return this.terrain&&this.terrain.drapeRenderMode===1?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0)}setTerrain(o,c=1){if(this._checkLoaded(),!o)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast("enableTerrain",!1),this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);let f=o;if(c===1){if(typeof f.source=="object"){const _="terrain-dem-src";this.addSource(_,f.source),f=s.clone$1(f),f=s.extend(f,{source:_})}if(this._validate(s.validateTerrain,"terrain",f))return}if(!this.terrain||this.terrain&&c!==this.terrain.drapeRenderMode){if(!f)return;this._createTerrain(f,c)}else{const _=this.terrain,v=_.get();for(const E of Object.keys(s.spec.terrain))!f.hasOwnProperty(E)&&s.spec.terrain[E].default&&(f[E]=s.spec.terrain[E].default);for(const E in f)if(!M(f[E],v[E])){_.set(f),this.stylesheet.terrain=f;const S=this._setTransitionParameters({duration:0});_.updateTransitions(S);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0}_createFog(o){const c=this.fog=new Tt(o,this.map.transform);this.stylesheet.fog=o;const f=this._setTransitionParameters({duration:0});c.updateTransitions(f)}_updateMarkersOpacity(){this.map._markers.length!==0&&this.map._requestDomTask(()=>{for(const o of this.map._markers)o._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(o){if(this._checkLoaded(),!o)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const c=this.fog,f=c.get();Object.keys(o).length===0&&c.set(o);for(const _ in o)if(!M(o[_],f[_])){c.set(o),this.stylesheet.fog=o;const v=this._setTransitionParameters({duration:0});c.updateTransitions(v);break}}else this._createFog(o);this._markersNeedUpdate=!0}_setTransitionParameters(o){return{now:s.exported.now(),transition:s.extend(o,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const o=this._order.filter(f=>this.isLayerDraped(this._layers[f])),c=this._order.filter(f=>!this.isLayerDraped(this._layers[f]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...o),this._drapedFirstOrder.push(...c)}_createTerrain(o,c){const f=this.terrain=new Li(o,c);this.stylesheet.terrain=o,this.dispatcher.broadcast("enableTerrain",!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();const _=this._setTransitionParameters({duration:0});f.updateTransitions(_)}_force3DLayerUpdate(){for(const o in this._layers){const c=this._layers[o];c.type==="fill-extrusion"&&this._updateLayer(c)}}_forceSymbolLayerUpdate(){for(const o in this._layers){const c=this._layers[o];c.type==="symbol"&&this._updateLayer(c)}}_validate(o,c,f,_,v={}){return(!v||v.validate!==!1)&&No(this,o.call(s.validateStyle,s.extend({key:c,style:this.serialize(),value:f,styleSpec:s.spec},_)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),s.evented.off("pluginStateChange",this._rtlTextPluginCallback);for(const o in this._layers)this._layers[o].setEventedParent(null);for(const o in this._sourceCaches)this._sourceCaches[o].clearTiles(),this._sourceCaches[o].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(o){const c=this._getSourceCaches(o);for(const f of c)f.clearTiles()}_reloadSource(o){const c=this._getSourceCaches(o);for(const f of c)f.resume(),f.reload()}_reloadSources(){for(const o of this._getSources())o.reload&&o.reload()}_updateSources(o){for(const c in this._sourceCaches)this._sourceCaches[c].update(o)}_generateCollisionBoxes(){for(const o in this._sourceCaches){const c=this._sourceCaches[o];c.resume(),c.reload()}}_updatePlacement(o,c,f,_,v=!1){let E=!1,S=!1;const C={};for(const z of this._order){const P=this._layers[z];if(P.type!=="symbol")continue;if(!C[P.source]){const j=this._getLayerSourceCache(P);if(!j)continue;C[P.source]=j.getRenderableIds(!0).map($=>j.getTileByID($)).sort(($,W)=>W.tileID.overscaledZ-$.tileID.overscaledZ||($.tileID.isLessThan(W.tileID)?-1:1))}const D=this.crossTileSymbolIndex.addLayer(P,C[P.source],o.center.lng,o.projection);E=E||D}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),v=v||this._layerOrderChanged||f===0,this._layerOrderChanged&&this.fire(new s.Event("neworder")),(v||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(s.exported.now(),o.zoom))&&(this.pauseablePlacement=new Xu(o,this._order,v,c,f,_,this.placement,this.fog&&o.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,C),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(s.exported.now()),S=!0),E&&this.pauseablePlacement.placement.setStale()),S||E)for(const z of this._order){const P=this._layers[z];P.type==="symbol"&&this.placement.updateLayerOpacities(P,C[P.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(s.exported.now())}_releaseSymbolFadeTiles(){for(const o in this._sourceCaches)this._sourceCaches[o].releaseSymbolFadeTiles()}getImages(o,c,f){this.imageManager.getImages(c.icons,f),this._updateTilesForChangedImages();const _=v=>{v&&v.setDependencies(c.tileID.key,c.type,c.icons)};_(this._otherSourceCaches[c.source]),_(this._symbolSourceCaches[c.source])}getGlyphs(o,c,f){this.glyphManager.getGlyphs(c.stacks,f)}getResource(o,c,f){return s.makeRequest(c,f)}_getSourceCache(o){return this._otherSourceCaches[o]}_getLayerSourceCache(o){return o.type==="symbol"?this._symbolSourceCaches[o.source]:this._otherSourceCaches[o.source]}_getSourceCaches(o){const c=[];return this._otherSourceCaches[o]&&c.push(this._otherSourceCaches[o]),this._symbolSourceCaches[o]&&c.push(this._symbolSourceCaches[o]),c}_isSourceCacheLoaded(o){const c=this._getSourceCaches(o);return c.length===0?(this.fire(new s.ErrorEvent(new Error(`There is no source with ID '${o}'`))),!1):c.every(f=>f.loaded())}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}jr.getSourceType=function(d){return Pt[d]},jr.setSourceType=function(d,o){Pt[d]=o},jr.registerForPluginStateChange=s.registerForPluginStateChange;var Qu=` +#define EPSILON 0.0000001 +#define PI 3.141592653589793 +#define EXTENT 8192.0 +#define HALF_PI PI/2.0 +#define QUARTER_PI PI/4.0 +#define RAD_TO_DEG 180.0/PI +#define DEG_TO_RAD PI/180.0 +#define GLOBE_RADIUS EXTENT/PI/2.0`,ds="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",ao=` +#define ELEVATION_SCALE 7.0 +#define ELEVATION_OFFSET 450.0 +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix( +mix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;} +#else +vec3 elevationVector(vec2 pos) { return vec3(0,0,1); } +#endif +const float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(vec2 posWithComposedSkirt) +{float skirt=float(posWithComposedSkirt.x >=skirtOffset);vec2 pos=posWithComposedSkirt-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);} +#ifdef TERRAIN +#ifdef TERRAIN_DEM_FLOAT_FORMAT +uniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev; +#else +uniform sampler2D u_dem;uniform sampler2D u_dem_prev; +#endif +uniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos)); +#ifdef TERRAIN_DEM_NEAREST_FILTER +return u_exaggeration*tl; +#endif +float tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +}float prevElevation(vec2 apos) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a; +#else +float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); +#endif +} +#ifdef TERRAIN_VERTEX_MORPHING +float elevation(vec2 apos) { +#ifdef ZERO_EXAGGERATION +return 0.0; +#endif +float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);} +#else +float elevation(vec2 apos) { +#ifdef ZERO_EXAGGERATION +return 0.0; +#endif +return currentElevation(apos);} +#endif +highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4( +unpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy)) +);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +float tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a; +#else +vec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack); +#endif +return vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);} +#else +float elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; } +#endif`,rl=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);} +#endif`,lo=`#ifdef FOG +uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);} +#endif`;let lc={},Hs={};const ol=[];Xs(Qu,ol),Xs(ao,ol),Xs(rl,ol),Xs(lo,ol),lc=Qt("",ao),Hs=Qt(lo,rl);const Ep=Qt(` +#if __VERSION__ >=300 +#define varying in +#define gl_FragColor glFragColor +#define texture2D texture +#define textureCube texture +out vec4 glFragColor; +#endif +highp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth) +{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}`,` +#if __VERSION__ >=300 +#define attribute in +#define varying out +#define texture2D texture +#endif +float wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;} +#ifdef PROJECTION_GLOBE_VIEW +vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) { +#ifndef PROJECTED_POS_ON_VIEWPORT +float tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz; +#else +return vec3(0.0); +#endif +}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);} +#endif +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 +);}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;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.`),cc=Qu,eh=` +#ifdef GL_ES +precision mediump float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`;var th={background:Qt(`uniform vec4 u_color;uniform float u_opacity; +#ifdef LIGHTING_3D_MODE +varying vec4 v_color; +#endif +void main() {vec4 out_color; +#ifdef LIGHTING_3D_MODE +out_color=v_color; +#else +out_color=u_color; +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#ifdef LIGHTING_3D_MODE +uniform vec4 u_color;varying vec4 v_color; +#endif +void main() {gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef LIGHTING_3D_MODE +v_color=apply_lighting(u_color); +#endif +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),backgroundPattern:Qt(`uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos;void main() {vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_tile_units_to_pixels,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),circle:Qt(`varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep( +antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width) +);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_apply_premultiplied(out_color,v_fog_pos); +#endif +gl_FragColor=out_color*(v_visibility*opacity_t); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`#define NUM_VISIBILITY_RINGS 2 +#define INV_SQRT2 0.70710678 +#define ELEVATION_BIAS 0.0001 +#define NUM_SAMPLES_PER_RING 16 +uniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +vec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) { +#if defined(TERRAIN) +return elevation(pos)+ELEVATION_BIAS; +#else +return 0.0; +#endif +}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale); +#ifdef PITCH_WITH_MAP +#ifdef PROJECTION_GLOBE_VIEW +return u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) ); +#else +return u_matrix*( world_center+vec4(sample_offset,0,0) ); +#endif +#else +return projected_center+vec4(sample_offset,0,0); +#endif +}float get_sample_step() { +#ifdef PITCH_WITH_MAP +return 2.0*PI/float(NUM_SAMPLES_PER_RING); +#else +return PI/float(NUM_SAMPLES_PER_RING); +#endif +}void main(void) { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors; +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1); +#else +surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1); +#endif +vec4 projected_center=u_matrix*world_center;float view_scale=0.0; +#ifdef PITCH_WITH_MAP +#ifdef SCALE_WITH_MAP +view_scale=1.0; +#else +view_scale=projected_center.w/u_camera_to_center_distance; +#endif +#else +#ifdef SCALE_WITH_MAP +view_scale=u_camera_to_center_distance; +#else +view_scale=projected_center.w; +#endif +#endif +gl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0; +#ifdef TERRAIN +float step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center; +#ifdef PITCH_WITH_MAP +float cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center; +#else +occlusion_world_center=world_center;occlusion_projected_center=projected_center; +#endif +for(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING); +#else +visibility=1.0; +#endif +#ifdef PROJECTION_GLOBE_VIEW +visibility=1.0; +#endif +v_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur); +#ifdef FOG +v_fog_pos=fog_position(world_center.xyz); +#endif +}`),clippingMask:Qt("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:Qt(`uniform highp float u_intensity;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#define GAUSS_COEF 0.3989422804014327 +void main() { +#pragma mapbox: initialize highp float weight +float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); +#ifdef FOG +if (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);} +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; +#endif +varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#pragma mapbox: define mediump float radius +const highp float ZERO=1.0/255.0/16.0; +#define GAUSS_COEF 0.3989422804014327 +void main(void) { +#pragma mapbox: initialize highp float weight +#pragma mapbox: initialize mediump float radius +vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);vec3 pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#else +pos=vec3(tilePos+extrude,elevation(tilePos)); +#endif +gl_Position=u_matrix*vec4(pos,1); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),heatmapTexture:Qt(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(0.0); +#endif +}`,"attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:Qt("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}",`attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:Qt("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}",`attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2( +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;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp( +0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),debug:Qt("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}",`attribute vec2 a_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3; +#endif +varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0; +#ifdef PROJECTION_GLOBE_VIEW +gl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1); +#else +gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1); +#endif +}`),fill:Qt(`#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +vec4 out_color=color; +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutline:Qt(`varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color; +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillOutlinePattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;varying vec2 v_pos_world; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;varying vec2 v_pos_world; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillPattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos); +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),fillExtrusion:Qt(`varying vec4 v_color; +#ifdef RENDER_SHADOWS +varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef ZERO_ROOF_RADIUS +varying vec4 v_roof_color; +#endif +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +varying highp vec3 v_normal; +#endif +void main() { +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +vec3 normal=v_normal; +#endif +float z;vec4 color; +#ifdef ZERO_ROOF_RADIUS +z=float(normal.z > 0.00001);color=mix(v_color,v_roof_color,z); +#else +color=v_color; +#endif +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x; +#ifdef ZERO_ROOF_RADIUS +concave*=(1.0-z); +#endif +float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade; +#endif +#ifdef RENDER_SHADOWS +#ifdef ZERO_ROOF_RADIUS +normal=mix(normal,vec3(0.0,0.0,1.0),z); +#endif +color.xyz=shadowed_color_normal(color.xyz,normalize(normal),v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec4 v_color; +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; +#endif +#ifdef ZERO_ROOF_RADIUS +varying vec4 v_roof_color; +#endif +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +varying highp vec3 v_normal; +#endif +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#pragma mapbox: define highp float base +#pragma mapbox: define highp float height +#pragma mapbox: define highp vec4 color +void main() { +#pragma mapbox: initialize highp float base +#pragma mapbox: initialize highp float height +#pragma mapbox: initialize highp vec4 color +vec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0)); +#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) +v_normal=normal; +#endif +base=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=0.0;float c_ele;vec3 pos; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);pos=vec3(pos_nx.xy,h); +#else +h=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden); +#ifdef RENDER_SHADOWS +v_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_depth=gl_Position.w; +#endif +float NdotL=0.0;float colorvalue=0.0; +#ifdef LIGHTING_3D_MODE +NdotL=calculate_NdotL(normal); +#else +colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL); +#endif +if (normal.y !=0.0) {float r=0.84; +#ifndef LIGHTING_3D_MODE +r=mix(0.7,0.98,1.0-u_lightintensity); +#endif +NdotL*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}v_color=vec4(0.0,0.0,0.0,1.0); +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +#ifdef LIGHTING_3D_MODE +v_color=apply_lighting(color,NdotL); +#else +v_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); +#endif +v_color*=u_opacity; +#ifdef ZERO_ROOF_RADIUS +v_roof_color=vec4(0.0,0.0,0.0,1.0); +#ifdef LIGHTING_3D_MODE +v_roof_color=apply_lighting(color,calculate_NdotL(vec3(0.0,0.0,1.0))); +#else +float roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); +#endif +v_roof_color*=u_opacity; +#endif +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),fillExtrusionPattern:Qt(`uniform vec2 u_texsize;uniform sampler2D u_image; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef LIGHTING_3D_MODE +varying float v_NdotL; +#endif +varying vec2 v_pos;varying vec4 v_lighting;uniform lowp float u_opacity; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color,v_NdotL)*u_opacity; +#else +out_color=out_color*v_lighting; +#endif +#ifdef FAUX_AO +float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade; +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +gl_FragColor=out_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; +#endif +varying vec2 v_pos;varying vec4 v_lighting; +#ifdef FAUX_AO +uniform lowp vec2 u_ao;varying vec3 v_ao; +#endif +#ifdef LIGHTING_3D_MODE +varying float v_NdotL; +#endif +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0); +#if defined(HAS_CENTROID) || defined(TERRAIN) +centroid_pos=a_centroid_pos; +#endif +float ele=0.0;float h=z;vec3 p;float c_ele; +#ifdef TERRAIN +bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);p=vec3(pos_nx.xy,h); +#else +p=vec3(pos_nx.xy,z); +#endif +#ifdef PROJECTION_GLOBE_VIEW +float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); +#endif +float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0 +? pos_nx.xy +: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0; +#ifdef LIGHTING_3D_MODE +NdotL=calculate_NdotL(normal); +#else +NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL); +#endif +if (normal.y !=0.0) {float r=0.84; +#ifndef LIGHTING_3D_MODE +r=mix(0.7,0.98,1.0-u_lightintensity); +#endif +NdotL*=( +(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));} +#ifdef FAUX_AO +float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; +#ifdef TERRAIN +top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); +#endif +v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); +#ifdef PROJECTION_GLOBE_VIEW +top_height+=u_height_lift; +#endif +gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; +#endif +#ifdef LIGHTING_3D_MODE +v_NdotL=NdotL; +#else +v_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity; +#endif +#ifdef FOG +v_fog_pos=fog_position(p); +#endif +}`),hillshadePrepare:Qt(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) { +#ifdef TERRAIN_DEM_FLOAT_FORMAT +return texture2D(u_image,coord).a/4.0; +#else +vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0; +#endif +}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2( +(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c) +)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4( +deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:Qt(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef LIGHTING_3D_MODE +gl_FragColor=apply_lighting(gl_FragColor); +#endif +#ifdef FOG +gl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos)); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),line:Qt(`uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform sampler2D u_dash_image;varying vec2 v_tex; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform sampler2D u_gradient_image; +#endif +uniform float u_border_width;uniform vec4 u_border_color;float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;} +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +float linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +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); +#ifdef RENDER_LINE_DASH +float sdfdist=texture2D(u_dash_image,v_tex).a;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;alpha*=linearstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist); +#endif +highp vec4 out_color; +#ifdef RENDER_LINE_GRADIENT +out_color=texture2D(u_gradient_image,v_uv.xy); +#else +out_color=color; +#endif +float trimmed=1.0; +#ifdef RENDER_LINE_TRIM_OFFSET +highp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);trimmed=0.0;}} +#endif +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); +#endif +#ifdef RENDER_LINE_ALPHA_DISCARD +if (alpha < u_alpha_discard_threshold) {discard;} +#endif +#ifdef RENDER_LINE_BORDER +float edgeBlur=(u_border_width+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2); +#ifdef RENDER_LINE_BORDER_AUTO +float Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);} +#else +out_color.rgb=mix(u_border_color.rgb*u_border_color.a*trimmed,out_color.rgb,smoothAlpha); +#endif +} +#endif +gl_FragColor=out_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define EXTRUDE_SCALE 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data; +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +attribute highp vec4 a_packed; +#endif +#ifdef RENDER_LINE_DASH +attribute float a_linesofar; +#endif +uniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv; +#ifdef RENDER_LINE_DASH +uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;varying vec2 v_tex; +#endif +#ifdef RENDER_LINE_GRADIENT +uniform float u_image_height; +#endif +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 dash +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize lowp vec4 dash +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) +float a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3]; +#ifdef RENDER_LINE_GRADIENT +highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end); +#else +v_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end); +#endif +#endif +#ifdef RENDER_LINE_DASH +float scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/floorwidth,(-normal.y*height+dash.x+0.5)/u_texsize.y); +#endif +v_width2=vec2(outset,inset); +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),linePattern:Qt(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;vec2 pattern_size=vec2(display_size.x/u_tile_units_to_pixels,display_size.y);float aspect=display_size.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x=mod(v_linesofar/pattern_size.x*aspect,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));vec4 color=texture2D(u_image,pos); +#ifdef LIGHTING_3D_MODE +color=apply_lighting(color); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern +#pragma mapbox: define lowp float pixel_ratio +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern +#pragma mapbox: initialize lowp float pixel_ratio +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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; +#ifndef RENDER_TO_TEXTURE +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#else +v_gamma_scale=1.0; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth; +#ifdef FOG +v_fog_pos=fog_position(pos); +#endif +}`),raster:Qt(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3( +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);vec3 out_color=mix(u_high_vec,u_low_vec,rgb); +#ifdef LIGHTING_3D_MODE +out_color=apply_lighting(out_color); +#endif +#ifdef FOG +out_color=fog_dither(fog_apply(out_color,v_fog_pos)); +#endif +gl_FragColor=vec4(out_color*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent; +#ifdef FOG +v_fog_pos=fog_position(a_pos); +#endif +}`),symbolIcon:Qt(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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 bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjected_point; +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +offsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}`),symbolSDF:Qt(`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +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 fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point; +#ifdef PROJECTION_GLOBE_VIEW +vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1); +#else +offsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); +#endif +vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}`),symbolTextAndIcon:Qt(`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +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;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity; +#ifdef PROJECTION_GLOBE_VIEW +attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; +#endif +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_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon; +#ifdef PROJECTION_GLOBE_VIEW +uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; +#endif +varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; +#ifdef PROJECTION_GLOBE_VIEW +mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; +#else +world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; +#endif +vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( +0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; +#ifdef PROJECTION_GLOBE_VIEW +vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); +#else +projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); +#endif +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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale); +#ifdef TERRAIN +#ifdef PITCH_WITH_MAP_TERRAIN +vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); +#endif +#endif +float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; +#ifdef PROJECTION_GLOBE_VIEW +vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#else +gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); +#endif +float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0; +#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) +projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); +#endif +v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}`),terrainRaster:Qt(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +void main() {vec4 color=texture2D(u_image0,v_pos0); +#ifdef RENDER_SHADOWS +color.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth); +#endif +#ifdef FOG +#ifdef ZERO_EXAGGERATION +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#else +color=fog_dither(fog_apply_from_vert(color,v_fog_opacity)); +#endif +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;varying vec2 v_pos0; +#ifdef FOG +varying float v_fog_opacity; +#endif +#ifdef RENDER_SHADOWS +uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; +#endif +const float wireframeOffset=0.00015;void main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height; +#ifdef TERRAIN_WIREFRAME +elevation+=wireframeOffset; +#endif +v_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0); +#ifdef FOG +#ifdef ZERO_EXAGGERATION +v_fog_pos=fog_position(decodedPos); +#else +v_fog_opacity=fog(fog_position(vec3(decodedPos,elevation))); +#endif +#endif +#ifdef RENDER_SHADOWS +vec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w; +#endif +}`),terrainDepth:Qt(`#ifdef GL_ES +precision highp float; +#endif +varying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}`,"uniform mat4 u_matrix;attribute vec2 a_pos;varying float v_depth;void main() {float elevation=elevation(a_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:Qt(` +varying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep( +cos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb; +#ifdef FOG +sky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color); +#endif +sky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,ds),skyboxGradient:Qt(`varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5)); +#ifdef FOG +color.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a; +#endif +color*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,ds),skyboxCapture:Qt(` +varying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m; +#ifdef GL_ES +precision highp float; +#endif +#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6) +#define BETA_M vec3(21e-6,21e-6,21e-6) +#define MIE_G 0.76 +#define DENSITY_HEIGHT_SCALE_R 8000.0 +#define DENSITY_HEIGHT_SCALE_M 1200.0 +#define PLANET_RADIUS 6360e3 +#define ATMOSPHERE_RADIUS 6420e3 +#define SAMPLE_STEPS 10 +#define DENSITY_STEPS 4 +float ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}`,"attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:Qt(`uniform sampler2D u_image0;varying vec2 v_pos0; +#ifndef FOG +uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport; +#endif +void main() {vec4 color; +#ifdef CUSTOM_ANTIALIASING +vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);color=vec4(raster.rgb*antialias,raster.a*antialias); +#else +color=texture2D(u_image0,v_pos0); +#endif +#ifdef FOG +color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); +#endif +gl_FragColor=color; +#ifdef TERRAIN_WIREFRAME +gl_FragColor=vec4(1.0,0.0,0.0,0.8); +#endif +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height; +#ifdef GLOBE_POLES +attribute vec3 a_globe_pos;attribute vec2 a_uv; +#else +attribute vec2 a_pos; +#endif +varying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() { +#ifdef GLOBE_POLES +vec3 globe_pos=a_globe_pos;vec2 uv=a_uv; +#else +float tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY); +#endif +v_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale; +#ifdef GLOBE_POLES +vec3 up_vector=globe_derived_up_vector; +#else +vec3 up_vector=elevationVector(tile_pos); +#endif +float height=elevation(tile_pos); +#ifdef TERRAIN_WIREFRAME +height+=wireframeOffset; +#endif +globe_pos+=up_vector*height; +#ifndef GLOBE_POLES +globe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z; +#endif +#ifdef GLOBE_POLES +vec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0); +#else +vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0); +#endif +gl_Position=u_proj_matrix*interpolated_pos; +#ifdef FOG +v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); +#endif +}`),globeAtmosphere:Qt(`uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir; +#ifdef PROJECTION_GLOBE_VIEW +globe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;} +#endif +highp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ? +0.0 : max(acos(dot(dir,horizon_dir)),0.0);float horizon_angle; +#ifdef PROJECTION_GLOBE_VIEW +highp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ? +PI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t); +#else +horizon_angle=horizon_angle_mercator; +#endif +horizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x: +(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y: +uv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}`,`attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix( +mix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix( +mix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}`)};function Xs(d,o){const c=d.replace(/\s*\/\/[^\n]*\n/g,` +`).split(` +`);for(let f of c)if(f=f.trim(),f[0]==="#"&&f.includes("if")&&!f.includes("endif")){f=f.replace("#","").replace(/ifdef|ifndef|elif|if/g,"").replace(/!|defined|\(|\)|\|\||&&/g,"").replace(/\s+/g," ").trim();const _=f.split(" ");for(const v of _)o.includes(v)||o.push(v)}}function Qt(d,o){const c=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,f=o.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),_={},v=[...ol];return Xs(d,v),Xs(o,v),{fragmentSource:d=d.replace(c,(E,S,C,z,P)=>(_[P]=!0,S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +varying ${C} ${z} ${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:` +#ifdef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = u_${P}; +#endif +`)),vertexSource:o=o.replace(c,(E,S,C,z,P)=>{const D=z==="float"?"vec2":"vec4",j=P.match(/color/)?"color":D;return _[P]?S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +uniform lowp float u_${P}_t; +attribute ${C} ${D} a_${P}; +varying ${C} ${z} ${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:j==="vec4"?` +#ifndef HAS_UNIFORM_u_${P} + ${P} = a_${P}; +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${P} + ${P} = unpack_mix_${j}(a_${P}, u_${P}_t); +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:S==="define"?` +#ifndef HAS_UNIFORM_u_${P} +uniform lowp float u_${P}_t; +attribute ${C} ${D} a_${P}; +#else +uniform ${C} ${z} u_${P}; +#endif +`:j==="vec4"?` +#ifndef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = a_${P}; +#else + ${C} ${z} ${P} = u_${P}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${P} + ${C} ${z} ${P} = unpack_mix_${j}(a_${P}, u_${P}_t); +#else + ${C} ${z} ${P} = u_${P}; +#endif +`}),staticAttributes:f,usedDefines:v}}class Ng{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null}bind(o,c,f,_,v,E,S){this.context=o;let C=this.boundPaintVertexBuffers.length!==_.length;for(let P=0;!C&&P<_.length;P++)this.boundPaintVertexBuffers[P]!==_[P]&&(C=!0);let z=this.boundDynamicVertexBuffers.length!==S.length;for(let P=0;!z&&P{const J=O.paint.get("hillshade-shadow-color"),Q=O.paint.get("hillshade-highlight-color"),he=O.paint.get("hillshade-accent-color");let pe=O.paint.get("hillshade-illumination-direction")*(Math.PI/180);O.paint.get("hillshade-illumination-anchor")==="viewport"&&(pe-=Z.transform.angle);const de=!Z.options.moving;return{u_matrix:G||Z.transform.calculateProjMatrix(H.tileID.toUnwrapped(),de),u_image:0,u_latrange:nh(0,H.tileID),u_light:[O.paint.get("hillshade-exaggeration"),pe],u_shadow:J,u_highlight:Q,u_accent:he}})(d,c,f,d.terrain?o.projMatrix:null);d.prepareDrawProgram(S,P,o.toUnwrapped());const{tileBoundsBuffer:j,tileBoundsIndexBuffer:$,tileBoundsSegments:W}=d.getTileBoundsBuffers(c);P.draw(S,C.TRIANGLES,_,v,E,s.CullFaceMode.disabled,D,f.id,j,$,W)}function ih(d,o,c){if(!o.needsDEMTextureUpload)return;const f=d.context,_=f.gl;f.pixelStoreUnpackPremultiplyAlpha.set(!1),o.demTexture=o.demTexture||d.getTileTexture(c.stride);const v=c.getPixels();o.demTexture?o.demTexture.update(v,{premultiply:!1}):o.demTexture=new s.Texture(f,v,_.RGBA,{premultiply:!1}),o.needsDEMTextureUpload=!1}function Sp(d,o,c,f,_,v){const E=d.context,S=E.gl;if(!o.dem)return;const C=o.dem;if(E.activeTexture.set(S.TEXTURE1),ih(d,o,C),!o.demTexture)return;o.demTexture.bind(S.NEAREST,S.CLAMP_TO_EDGE);const z=C.dim;E.activeTexture.set(S.TEXTURE0);let P=o.fbo;if(!P){const W=new s.Texture(E,{width:z,height:z,data:null},S.RGBA);W.bind(S.LINEAR,S.CLAMP_TO_EDGE),P=o.fbo=E.createFramebuffer(z,z,!0),P.colorAttachment.set(W.texture)}E.bindFramebuffer.set(P.framebuffer),E.viewport.set([0,0,z,z]);const{tileBoundsBuffer:D,tileBoundsIndexBuffer:j,tileBoundsSegments:$}=d.getMercatorTileBoundsBuffers();d.useProgram("hillshadePrepare").draw(E,S.TRIANGLES,f,_,v,s.CullFaceMode.disabled,((W,Z)=>{const H=Z.stride,O=s.create();return s.ortho(O,0,s.EXTENT,-s.EXTENT,0,0,1),s.translate(O,O,[0,-s.EXTENT,0]),{u_matrix:O,u_image:1,u_dimension:[H,H],u_zoom:W.overscaledZ,u_unpack:Z.unpackVector}})(o.tileID,C),c.id,D,j,$),o.needsHillshadePrepare=!1}const rh=d=>({u_matrix:new s.UniformMatrix4f(d),u_image0:new s.Uniform1i(d),u_skirt_height:new s.Uniform1f(d)}),Ks=(d,o)=>({u_matrix:d,u_image0:0,u_skirt_height:o}),uc=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W)=>({u_proj_matrix:Float32Array.from(d),u_globe_matrix:o,u_normalize_matrix:Float32Array.from(f),u_merc_matrix:c,u_zoom_transition:_,u_merc_center:v,u_image0:0,u_frustum_tl:E,u_frustum_tr:S,u_frustum_br:C,u_frustum_bl:z,u_globe_pos:P,u_globe_radius:D,u_viewport:j,u_grid_matrix:W?Float32Array.from(W):new Float32Array(9),u_skirt_height:$});function Ys(d,o){return d!=null&&o!=null&&!(!d.hasData()||!o.hasData())&&d.demTexture!=null&&o.demTexture!=null&&d.tileID.key!==o.tileID.key}const co=new class{constructor(){this.operations={}}newMorphing(d,o,c,f,_){if(d in this.operations){const v=this.operations[d];v.to.tileID.key!==c.tileID.key&&(v.queued=c)}else this.operations[d]={startTime:f,phase:0,duration:_,from:o,to:c,queued:null}}getMorphValuesForProxy(d){if(!(d in this.operations))return null;const o=this.operations[d];return{from:o.from,to:o.to,phase:o.phase}}update(d){for(const o in this.operations){const c=this.operations[o];for(c.phase=(d-c.startTime)/c.duration;c.phase>=1||!this._validOp(c);)if(!this._nextOp(c,d)){delete this.operations[o];break}}}_nextOp(d,o){return!!d.queued&&(d.from=d.to,d.to=d.queued,d.queued=null,d.phase=0,d.startTime=o,!0)}_validOp(d){return d.from.hasData()&&d.to.hasData()}},ps={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"};function hc(d){return 6*Math.pow(1.5,22-d)}function Ap(d,o){const c=1<({u_matrix:d});function oh(d,o,c,f,_){if(_>0){const v=s.exported.now(),E=(v-d.timeAdded)/_,S=o?(v-o.timeAdded)/_:-1,C=c.getSource(),z=f.coveringZoomLevel({tileSize:C.tileSize,roundZoom:C.roundZoom}),P=!o||Math.abs(o.tileID.overscaledZ-z)>Math.abs(d.tileID.overscaledZ-z),D=P&&d.refreshedUponExpiration?1:s.clamp(P?E:1-S,0,1);return d.refreshedUponExpiration&&E>=1&&(d.refreshedUponExpiration=!1),o?{opacity:1,mix:1-D}:{opacity:D,mix:0}}return{opacity:1,mix:0}}class sh extends s.SourceCache{constructor(o){const c={type:"raster-dem",maxzoom:o.transform.maxZoom},f=new xt($s(),null),_=Dt("mock-dem",c,f,o.style);super("mock-dem",_,!1),_.setEventedParent(this),this._sourceLoaded=!0}_loadTile(o,c){o.state="loaded",c(null)}}class dc extends s.SourceCache{constructor(o){const c=Dt("proxy",{type:"geojson",maxzoom:o.transform.maxZoom},new xt($s(),null),o.style);super("proxy",c,!1),c.setEventedParent(this),this.map=this.getSource().map=o,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(o,c,f){if(o.freezeTileCoverage)return;this.transform=o;const _=o.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce((v,E)=>{if(v[E.key]="",!this._tiles[E.key]){const S=new s.Tile(E,this._source.tileSize*E.overscaleFactor(),o.tileZoom);S.state="loaded",this._tiles[E.key]=S}return v},{});for(const v in this._tiles)v in _||(this.freeFBO(v),this._tiles[v].unloadVectorData(),delete this._tiles[v])}freeFBO(o){const c=this.proxyCachedFBO[o];if(c!==void 0){const f=Object.values(c);this.renderCachePool.push(...f),delete this.proxyCachedFBO[o]}}deallocRenderCache(){this.renderCache.forEach(o=>o.fb.destroy()),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}}class pc extends s.OverscaledTileID{constructor(o,c,f){super(o.overscaledZ,o.wrap,o.canonical.z,o.canonical.x,o.canonical.y),this.proxyTileKey=c,this.projMatrix=f}}class ah extends s.Elevation{constructor(o,c){super(),this.painter=o,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[f,_,v]=function(C){const z=new s.StructArrayLayout2i4,P=new s.StructArrayLayout3ui6,D=131;z.reserve(17161),P.reserve(33800);const j=s.EXTENT/128,$=s.EXTENT+j/2,W=$+j;for(let H=-j;H$||H<0||H>$?24575:0,J=s.clamp(Math.round(O),0,s.EXTENT),Q=s.clamp(Math.round(H),0,s.EXTENT);z.emplaceBack(J+G,Q)}const Z=(H,O)=>{const G=O*D+H;P.emplaceBack(G+1,G,G+D),P.emplaceBack(G+D,G+D+1,G+1)};for(let H=1;H<129;H++)for(let O=1;O<129;O++)Z(O,H);return[0,129].forEach(H=>{for(let O=0;O<130;O++)Z(O,H),Z(H,O)}),[z,P,32768]}(),E=o.context;this.gridBuffer=E.createVertexBuffer(f,s.posAttributes.members),this.gridIndexBuffer=E.createIndexBuffer(_),this.gridSegments=s.SegmentVector.simpleSegment(0,0,f.length,_.length),this.gridNoSkirtSegments=s.SegmentVector.simpleSegment(0,0,f.length,v),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new dc(c.map),this.orthoMatrix=s.create(),s.ortho(this.orthoMatrix,this.painter.transform.projection.name==="globe"?.015:0,s.EXTENT,0,s.EXTENT,0,1);const S=E.gl;this._overlapStencilMode=new s.StencilMode({func:S.GEQUAL,mask:255},0,255,S.KEEP,S.KEEP,S.REPLACE),this._previousZoom=o.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=c,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new sh(c.map)}set style(o){o.on("data",this._onStyleDataEvent.bind(this)),o.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=o,this._checkRenderCacheEfficiency(),this._style.map.on("moveend",()=>{this._clearLineLayersFromRenderCache()})}update(o,c,f){if(o&&o.terrain){this._style!==o&&(this.style=o),this.enabled=!0;const _=o.terrain.properties;this.sourceCache=o.terrain.drapeRenderMode===0?this._mockSourceCache:o._getSourceCache(_.get("source")),this._exaggeration=_.get("exaggeration");const v=()=>{this.sourceCache.used&&s.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source. +This leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const E=this.getScaledDemTileSize();this.sourceCache.update(c,E,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,v(),this._initializing=!0),v(),c.updateElevation(!0,f),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(c),this._emptyDEMTextureDirty=!0}else this._disable()}resetTileLookupCache(o){this._findCoveringTileCache[o]={}}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){const o=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||o.efficiency!==100&&s.warnOnce(`Terrain render cache efficiency is not optimal (${o.efficiency}%) and performance + may be affected negatively, consider placing all background, fill and line layers before layer + with id '${o.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(o){o.coord&&o.dataType==="source"?this._clearRenderCacheForTile(o.sourceCacheId,o.coord):o.dataType==="style"&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const o in this._style._sourceCaches)this._style._sourceCaches[o].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach(o=>o.fb.destroy()),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0)}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const o=2*this.proxySourceCache.getSource().tileSize;return[o,o]}set useVertexMorphing(o){this._useVertexMorphing=o}updateTileBinding(o){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const c=this.proxySourceCache,f=this.painter.transform;this._initializing&&(this._initializing=f._centerAltitude===0&&this.getAtPointOrZero(s.MercatorCoordinate.fromLngLat(f.center),-1)===-1,this._emptyDEMTextureDirty=!this._initializing);const _=this.proxyCoords=c.getIds().map(C=>{const z=c.getTileByID(C).tileID;return z.projMatrix=f.calculateProjMatrix(z.toUnwrapped()),z});(function(C,z){const P=z.transform.pointCoordinate(z.transform.getCameraPoint()),D=new s.Point(P.x,P.y);C.sort((j,$)=>{if($.overscaledZ-j.overscaledZ)return $.overscaledZ-j.overscaledZ;const W=new s.Point(j.canonical.x+(1<{this.proxyToSource[C.key]={}}),this.terrainTileForTile={};const E=this._style._sourceCaches;for(const C in E){const z=E[C];if(!z.used||(z!==this.sourceCache&&this.resetTileLookupCache(z.id),this._setupProxiedCoordsForOrtho(z,o[C],v),z.usedForTerrain))continue;const P=o[C];z.getSource().reparseOverscaled&&this._assignTerrainTiles(P)}this.proxiedCoords[c.id]=_.map(C=>new pc(C,C.key,this.orthoMatrix)),this._assignTerrainTiles(_),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(v),this.renderingToTexture=!1,this._updateTimestamp=s.exported.now();const S={};this._visibleDemTiles=[];for(const C of this.proxyCoords){const z=this.terrainTileForTile[C.key];if(!z)continue;const P=z.tileID.key;P in S||(this._visibleDemTiles.push(z),S[P]=P)}}_assignTerrainTiles(o){this._initializing||o.forEach(c=>{if(this.terrainTileForTile[c.key])return;const f=this._findTileCoveringTileID(c,this.sourceCache);f&&(this.terrainTileForTile[c.key]=f)})}_prepareDEMTextures(){const o=this.painter.context,c=o.gl;for(const f in this.terrainTileForTile){const _=this.terrainTileForTile[f],v=_.dem;!v||_.demTexture&&!_.needsDEMTextureUpload||(o.activeTexture.set(c.TEXTURE1),ih(this.painter,_,v))}}_prepareDemTileUniforms(o,c,f,_){if(!c||c.demTexture==null)return!1;const v=o.tileID.canonical,E=Math.pow(2,c.tileID.canonical.z-v.z),S=_||"";return f[`u_dem_tl${S}`]=[v.x*E%1,v.y*E%1],f[`u_dem_scale${S}`]=E,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const o=this.painter.context,c=o.gl;if(!this._emptyDepthBufferTexture){const f=new s.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new s.Texture(o,f,c.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let o=0;const c=this._visibleDemTiles.reduce((f,_)=>{if(!_.dem)return f;const v=_.dem.tree.minimums[0];return v>0&&o++,f+v},0);return o?c/o:0}_updateEmptyDEMTexture(){const o=this.painter.context,c=o.gl;o.activeTexture.set(c.TEXTURE2);const f=this._getLoadedAreaMinimum(),_=new s.RGBAImage({width:1,height:1},new Uint8Array(s.DEMData.pack(f,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let v=this._emptyDEMTexture;return v?v.update(_,{premultiply:!1}):v=this._emptyDEMTexture=new s.Texture(o,_,c.RGBA,{premultiply:!1}),v}setupElevationDraw(o,c,f){const _=this.painter.context,v=_.gl,E=(S=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:s.DEMData.getUnpackVector(S),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0});var S;E.u_dem_size=this.sourceCache.getSource().tileSize,E.u_exaggeration=this.exaggeration();let C=null,z=null,P=1;if(f&&f.morphing&&this._useVertexMorphing){const D=f.morphing.srcDemTile,j=f.morphing.dstDemTile;P=f.morphing.phase,D&&j&&(this._prepareDemTileUniforms(o,D,E,"_prev")&&(z=D),this._prepareDemTileUniforms(o,j,E)&&(C=j))}if(z&&C?(_.activeTexture.set(v.TEXTURE2),C.demTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE,v.NEAREST),_.activeTexture.set(v.TEXTURE4),z.demTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE,v.NEAREST),E.u_dem_lerp=P):(C=this.terrainTileForTile[o.tileID.key],_.activeTexture.set(v.TEXTURE2),(this._prepareDemTileUniforms(o,C,E)?C.demTexture:this.emptyDEMTexture).bind(v.NEAREST,v.CLAMP_TO_EDGE)),_.activeTexture.set(v.TEXTURE3),f&&f.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE),this._depthFBO&&(E.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(v.NEAREST,v.CLAMP_TO_EDGE),E.u_depth_size_inv=[1,1]),f&&f.useMeterToDem&&C){const D=(1<{if(O===qe)return;const Oe=[ps[qe],"PROJECTION_GLOBE_VIEW"];Q&&Oe.push("CUSTOM_ANTIALIASING"),Ee&&Oe.push(ps[G]),H=z.useProgram("globeRaster",null,Oe),O=qe},pe=z.colorModeForRenderPass(),de=new s.DepthMode(Z.LEQUAL,s.DepthMode.ReadWrite,z.depthRangeFor3D);co.update($);const ye=s.calculateGlobeMercatorMatrix(J),_e=[s.mercatorXfromLng(J.center.lng),s.mercatorYfromLat(J.center.lat)],Te=G?[!1,!0]:[!1],Ze=z.globeSharedBuffers,we=[J.width*s.exported.devicePixelRatio,J.height*s.exported.devicePixelRatio],Be=Float32Array.from(J.globeMatrix),Ce={useDenormalizedUpVectorScale:!0};if(Te.forEach(qe=>{const Ee=z.transform,Oe=hc(Ee.zoom)*P.exaggeration();O=-1;const He=qe?Z.LINES:Z.TRIANGLES;for(const Ge of j){const Xe=D.getTile(Ge),gt=s.StencilMode.disabled,Et=P.prevTerrainTileForTile[Ge.key],dt=P.terrainTileForTile[Ge.key];Ys(Et,dt)&&co.newMorphing(Ge.key,Et,dt,$,250),W.activeTexture.set(Z.TEXTURE0),Xe.texture.bind(Z.LINEAR,Z.CLAMP_TO_EDGE);const wt=co.getMorphValuesForProxy(Ge.key),Ut=wt?1:0;wt&&s.extend$1(Ce,{morphing:{srcDemTile:wt.from,dstDemTile:wt.to,phase:s.easeCubicInOut(wt.phase)}});const Ot=s.tileCornersToBounds(Ge.canonical),mt=s.getLatitudinalLod(Ot.getCenter().lat),en=s.getGridMatrix(Ge.canonical,Ot,mt,Ee.worldSize/Ee._pixelsPerMercatorPixel),rn=s.globeNormalizeECEF(s.globeTileBounds(Ge.canonical)),on=uc(Ee.projMatrix,Be,ye,rn,s.globeToMercatorTransition(Ee.zoom),_e,Ee.frustumCorners.TL,Ee.frustumCorners.TR,Ee.frustumCorners.BR,Ee.frustumCorners.BL,Ee.globeCenterInViewSpace,Ee.globeRadius,we,Oe,en);if(he(Ut,qe),P.setupElevationDraw(Xe,H,Ce),z.prepareDrawProgram(W,H,Ge.toUnwrapped()),Ze){const[sn,wi,si]=qe?Ze.getWirefameBuffers(z.context,mt):Ze.getGridBuffers(mt,Oe!==0);H.draw(W,He,de,gt,pe,s.CullFaceMode.backCCW,on,"globe_raster",sn,wi,si)}}}),Ze){const qe=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];Q&&qe.push("CUSTOM_ANTIALIASING"),H=z.useProgram("globeRaster",null,qe);for(const Ee of j){const{x:Oe,y:He,z:Ge}=Ee.canonical,Xe=He===0,gt=He===(1<on.draw(W,Z.TRIANGLES,de,s.StencilMode.disabled,pe,s.CullFaceMode.disabled,uc(J.projMatrix,mt,mt,en,0,_e,J.frustumCorners.TL,J.frustumCorners.TR,J.frustumCorners.BR,J.frustumCorners.BL,J.globeCenterInViewSpace,J.globeRadius,we,0),"globe_pole_raster",sn,wt,Ut);P.setupElevationDraw(Ot,H,Ce),z.prepareDrawProgram(W,H,Ee.toUnwrapped()),Xe&&rn(H,Et),gt&&(mt=s.scale(s.create(),mt,[1,-1,1]),rn(H,dt))}}}})(_,v,E,S,C);else{const z=_.context,P=z.gl;let D,j;const $=_.options.showTerrainWireframe?2:0,W=(J,Q)=>{if(j===J)return;const he=[ps[J]];Q&&he.push(ps[$]),D=_.useProgram("terrainRaster",null,he),j=J},Z=_.colorModeForRenderPass(),H=new s.DepthMode(P.LEQUAL,s.DepthMode.ReadWrite,_.depthRangeFor3D);co.update(C);const O=_.transform,G=hc(O.zoom)*v.exaggeration();($?[!1,!0]:[!1]).forEach(J=>{j=-1;const Q=J?P.LINES:P.TRIANGLES,[he,pe]=J?v.getWirefameBuffer():[v.gridIndexBuffer,v.gridSegments];for(const de of S){const ye=E.getTile(de),_e=s.StencilMode.disabled,Te=v.prevTerrainTileForTile[de.key],Ze=v.terrainTileForTile[de.key];Ys(Te,Ze)&&co.newMorphing(de.key,Te,Ze,C,250),z.activeTexture.set(P.TEXTURE0),ye.texture.bind(P.LINEAR,P.CLAMP_TO_EDGE,P.LINEAR_MIPMAP_NEAREST);const we=co.getMorphValuesForProxy(de.key),Be=we?1:0;let Ce;we&&(Ce={morphing:{srcDemTile:we.from,dstDemTile:we.to,phase:s.easeCubicInOut(we.phase)}});const qe=Ks(de.projMatrix,Ap(de.canonical,O.renderWorldCopies)?G/10:G);W(Be,J),v.setupElevationDraw(ye,D,Ce),_.prepareDrawProgram(z,D,de.toUnwrapped()),D.draw(z,Q,H,_e,Z,s.CullFaceMode.backCCW,qe,"terrain_raster",v.gridBuffer,he,pe)}})}}(c,this,this.proxySourceCache,o,this._updateTimestamp),this.renderingToTexture=!0,c.gpuTimingDeferredRenderEnd(),o.splice(0,o.length))}renderBatch(o){if(this._drapedRenderBatches.length===0)return o+1;this.renderingToTexture=!0;const c=this.painter,f=this.painter.context,_=this.proxySourceCache,v=this.proxiedCoords[_.id],E=this._drapedRenderBatches.shift(),S=[],C=c.style.order;let z=0;for(const P of v){const D=_.getTileByID(P.proxyTileKey),j=_.proxyCachedFBO[P.key]?_.proxyCachedFBO[P.key][o]:void 0,$=j!==void 0?_.renderCache[j]:this.pool[z++],W=j!==void 0;if(D.texture=$.tex,W&&!$.dirty){S.push(D.tileID);continue}let Z;f.bindFramebuffer.set($.fb.framebuffer),this.renderedToTile=!1,$.dirty&&(f.clear({color:s.Color.transparent,stencil:0}),$.dirty=!1);for(let H=E.start;H<=E.end;++H){const O=c.style._layers[C[H]];if(O.isHidden(c.transform.zoom))continue;const G=c.style._getLayerSourceCache(O),J=G?this.proxyToSource[P.key][G.id]:[P];if(!J)continue;const Q=J;f.viewport.set([0,0,$.fb.width,$.fb.height]),Z!==(G?G.id:null)&&(this._setupStencil($,J,O,G),Z=G?G.id:null),c.renderLayer(c,G,O,Q)}this.renderedToTile?($.dirty=!0,S.push(D.tileID)):W||--z,z===5&&(z=0,this.renderToBackBuffer(S))}return this.renderToBackBuffer(S),this.renderingToTexture=!1,f.bindFramebuffer.set(null),f.viewport.set([0,0,c.width,c.height]),E.end+1}postRender(){}renderCacheEfficiency(o){const c=o.order.length;if(c===0)return{efficiency:100};let f,_=0,v=0,E=!1;for(let S=0;Sc.dem).forEach(c=>{o=Math.min(o,c.dem.tree.minimums[0])}),o===0?o:(o-30)*this._exaggeration}raycast(o,c,f){if(!this._visibleDemTiles)return null;const _=this._visibleDemTiles.filter(v=>v.dem).map(v=>{const E=v.tileID,S=1<(v.t!==null?v.t:Number.MAX_VALUE)-(E.t!==null?E.t:Number.MAX_VALUE));for(const v of _){if(v.t==null)return null;const E=v.tile.dem.tree.raycast(v.minx,v.miny,v.maxx,v.maxy,o,c,f);if(E!=null)return E}return null}_createFBO(){const o=this.painter.context,c=o.gl,f=this.drapeBufferSize;o.activeTexture.set(c.TEXTURE0);const _=new s.Texture(o,{width:f[0],height:f[1],data:null},c.RGBA);_.bind(c.LINEAR,c.CLAMP_TO_EDGE);const v=o.createFramebuffer(f[0],f[1],!1);return v.colorAttachment.set(_.texture),v.depthAttachment=new me(o,v.framebuffer),this._sharedDepthStencil===void 0?(this._sharedDepthStencil=o.createRenderbuffer(o.gl.DEPTH_STENCIL,f[0],f[1]),this._stencilRef=0,v.depthAttachment.set(this._sharedDepthStencil),o.clear({stencil:0})):v.depthAttachment.set(this._sharedDepthStencil),o.extTextureFilterAnisotropic&&!o.extTextureFilterAnisotropicForceOff&&c.texParameterf(c.TEXTURE_2D,o.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,o.extTextureFilterAnisotropicMax),{fb:v,tex:_,dirty:!1}}_initFBOPool(){for(;this.pool.length{const c=this._style._layers[o],f=c.isHidden(this.painter.transform.zoom);return c.type==="custom"?!f&&c.shouldRedrape():!f&&c.hasTransition()})}_clearLineLayersFromRenderCache(){let o=!1;for(const f of this._style._getSources())if(f instanceof nt){o=!0;break}if(!o)return;const c={};for(let f=0;fc.renderCachePool.length){const E=Object.values(c.proxyCachedFBO);c.proxyCachedFBO={};for(let S=0;S=0;E--){const S=f[E];if(c.getTileByID(S.key),c.proxyCachedFBO[S.key]!==void 0){const C=o[S.key],z=this.proxyToSource[S.key];let P=0;for(const D in z){const j=z[D],$=C[D];if(!$||$.length!==j.length||j.some((W,Z)=>W!==$[Z]||_[D]&&_[D].hasOwnProperty(W.key))){P=-1;break}++P}for(const D in c.proxyCachedFBO[S.key])c.renderCache[c.proxyCachedFBO[S.key][D]].dirty=P<0||P!==Object.values(C).length}}const v=[...this._drapedRenderBatches];v.sort((E,S)=>S.end-S.start-(E.end-E.start));for(const E of v)for(const S of f){if(c.proxyCachedFBO[S.key])continue;let C=c.renderCachePool.pop();C===void 0&&c.renderCache.length<50&&(C=c.renderCache.length,c.renderCache.push(this._createFBO())),C!==void 0&&(c.proxyCachedFBO[S.key]={},c.proxyCachedFBO[S.key][E.start]=C,c.renderCache[C].dirty=!0)}this._tilesDirty={}}_setupStencil(o,c,f,_){if(!_||!this._sourceTilesOverlap[_.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const v=this.painter.context,E=v.gl;if(c.length<=1)return void(this._overlapStencilType=!1);let S;if(f.isTileClipped())S=c.length,this._overlapStencilMode.test={func:E.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(c[0].overscaledZ>c[c.length-1].overscaledZ))return void(this._overlapStencilType=!1);S=1,this._overlapStencilMode.test={func:E.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+S>255&&(v.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=S,this._overlapStencilMode.ref=this._stencilRef,f.isTileClipped()&&this._renderTileClippingMasks(c,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return this._overlapStencilType==="Clip"||this._overlapStencilType==="Mask"}stencilModeForRTTOverlap(o){return this.renderingToTexture&&this._overlapStencilType?(this._overlapStencilType==="Clip"&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[o.key]),this._overlapStencilMode):s.StencilMode.disabled}_renderTileClippingMasks(o,c){const f=this.painter,_=this.painter.context,v=_.gl;f._tileClippingMaskIDs={},_.setColorMode(s.ColorMode.disabled),_.setDepthMode(s.DepthMode.disabled);const E=f.useProgram("clippingMask");for(const S of o){const C=f._tileClippingMaskIDs[S.key]=--c;E.draw(_,v.TRIANGLES,s.DepthMode.disabled,new s.StencilMode({func:v.ALWAYS,mask:0},C,255,v.KEEP,v.KEEP,v.REPLACE),s.ColorMode.disabled,s.CullFaceMode.disabled,sl(S.projMatrix),"$clipping",f.tileExtentBuffer,f.quadTriangleIndexBuffer,f.tileExtentSegments)}}pointCoordinate(o){const c=this.painter.transform;if(o.x<0||o.x>c.width||o.y<0||o.y>c.height)return null;const f=[o.x,o.y,1,1];s.transformMat4$1(f,f,c.pixelMatrixInverse),s.scale$1(f,f,1/f[3]),f[0]/=c.worldSize,f[1]/=c.worldSize;const _=c._camera.position,v=s.mercatorZfromAltitude(1,c.center.lat),E=[_[0],_[1],_[2]/v,0],S=s.subtract([],f.slice(0,3),E);s.normalize(S,S);const C=this.raycast(E,S,this._exaggeration);return C!==null&&C?(s.scaleAndAdd(E,E,S,C),E[3]=E[2],E[2]*=v,E):null}drawDepth(){const o=this.painter,c=o.context,f=this.proxySourceCache,_=Math.ceil(o.width),v=Math.ceil(o.height);if(!this._depthFBO||this._depthFBO.width===_&&this._depthFBO.height===v||(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){const E=c.gl,S=c.createFramebuffer(_,v,!0);c.activeTexture.set(E.TEXTURE0);const C=new s.Texture(c,{width:_,height:v,data:null},E.RGBA);C.bind(E.NEAREST,E.CLAMP_TO_EDGE),S.colorAttachment.set(C.texture);const z=c.createRenderbuffer(c.gl.DEPTH_COMPONENT16,_,v);S.depthAttachment.set(z),this._depthFBO=S,this._depthTexture=C}c.bindFramebuffer.set(this._depthFBO.framebuffer),c.viewport.set([0,0,_,v]),function(E,S,C,z){if(E.transform.projection.name==="globe")return;const P=E.context,D=P.gl;P.clear({depth:1});const j=E.useProgram("terrainDepth"),$=new s.DepthMode(D.LESS,s.DepthMode.ReadWrite,E.depthRangeFor3D);for(const W of z){const Z=C.getTile(W),H=Ks(W.projMatrix,0);S.setupElevationDraw(Z,j),j.draw(P,D.TRIANGLES,$,s.StencilMode.disabled,s.ColorMode.unblended,s.CullFaceMode.backCCW,H,"terrain_depth",S.gridBuffer,S.gridIndexBuffer,S.gridNoSkirtSegments)}}(o,this,f,this.proxyCoords)}_setupProxiedCoordsForOrtho(o,c,f){if(o.getSource()instanceof Rt)return this._setupProxiedCoordsForImageSource(o,c,f);this._findCoveringTileCache[o.id]=this._findCoveringTileCache[o.id]||{};const _=this.proxiedCoords[o.id]=[],v=this.proxyCoords;for(let S=0;S(P.min.x=Math.min(P.min.x,D.x-S.x),P.min.y=Math.min(P.min.y,D.y-S.y),P.max.x=Math.max(P.max.x,D.x-S.x),P.max.y=Math.max(P.max.y,D.y-S.y),P),{min:new s.Point(Number.MAX_VALUE,Number.MAX_VALUE),max:new s.Point(-Number.MAX_VALUE,-Number.MAX_VALUE)}),z=(P,D)=>{const j=P.wrap+P.canonical.x/(1<Z+C.max.x||$+WH+C.max.y};for(let P=0;PE.key===c.tileID.key);if(v)return v}if(c.tileID.key!==o.key){const v=o.canonical.z-c.tileID.canonical.z;let E,S,C;_=s.create();const z=c.tileID.wrap-o.wrap<0?(E=s.EXTENT>>v,S=E*((c.tileID.canonical.x<=D){const j=o.canonical.z-D;c.getSource().reparseOverscaled?(S=Math.max(o.canonical.z+2,c.transform.tileZoom),E=new s.OverscaledTileID(S,o.wrap,D,o.canonical.x>>j,o.canonical.y>>j)):j!==0&&(S=D,E=new s.OverscaledTileID(S,o.wrap,D,o.canonical.x>>j,o.canonical.y>>j))}E.key!==o.key&&(z.push(E.key),f=c.getTile(E))}const P=D=>{z.forEach(j=>{_[j]=D}),z.length=0};for(S-=1;S>=C&&(!f||!f.hasData());S--){f&&P(f.tileID.key);const D=E.calculateScaledKey(S);if(f=c.getTileByID(D),f&&f.hasData())break;const j=_[D];if(j===null)break;j===void 0?z.push(D):f=c.getTileByID(j)}return P(f?f.tileID.key:null),f&&f.hasData()?f:null}findDEMTileFor(o){return this.enabled?this._findTileCoveringTileID(o,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0}_clearRenderCacheForTile(o,c){let f=this._tilesDirty[o];f||(f=this._tilesDirty[o]={}),f[c.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){const o=function(c){let f=0;const _=new s.StructArrayLayout2ui4,v=131;for(let E=1;E<129;E++){for(let S=1;S<129;S++)f=E*v+S,_.emplaceBack(f,f+1),_.emplaceBack(f,f+v),_.emplaceBack(f+1,f+v),E===128&&_.emplaceBack(f+v,f+v+1);_.emplaceBack(f+1,f+1+v)}return _}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(o),this.wireframeSegments=s.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,o.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}}class Zt{static cacheKey(o,c,f,_){let v=`${c}${_?_.cacheKey:""}`;for(const E of f)o.usedDefines.includes(E)&&(v+=`/${E}`);return v}constructor(o,c,f,_,v,E){const S=o.gl;this.program=S.createProgram();const C=function(O){const G=[];for(let J=0;J`#define ${O}`));const j=o.isWebGL2?`#version 300 es +`:"",$=j+D.concat(o.extStandardDerivatives&&j.length===0?`#extension GL_OES_standard_derivatives : enable +`.concat(eh):eh,eh,cc,Ep.fragmentSource,Hs.fragmentSource,f.fragmentSource).join(` +`),W=j+D.concat(` +#ifdef GL_ES +precision highp float; +#else + +#if !defined(lowp) +#define lowp +#endif + +#if !defined(mediump) +#define mediump +#endif + +#if !defined(highp) +#define highp +#endif + +#endif`,cc,Ep.vertexSource,Hs.vertexSource,lc.vertexSource,f.vertexSource).join(` +`),Z=S.createShader(S.FRAGMENT_SHADER);if(S.isContextLost())return void(this.failedToCreate=!0);S.shaderSource(Z,$),S.compileShader(Z),S.attachShader(this.program,Z);const H=S.createShader(S.VERTEX_SHADER);if(S.isContextLost())this.failedToCreate=!0;else{S.shaderSource(H,W),S.compileShader(H),S.attachShader(this.program,H),this.attributes={},this.numAttributes=P.length;for(let O=0;O({u_dem:new s.Uniform1i(O),u_dem_prev:new s.Uniform1i(O),u_dem_unpack:new s.Uniform4f(O),u_dem_tl:new s.Uniform2f(O),u_dem_scale:new s.Uniform1f(O),u_dem_tl_prev:new s.Uniform2f(O),u_dem_scale_prev:new s.Uniform1f(O),u_dem_size:new s.Uniform1f(O),u_dem_lerp:new s.Uniform1f(O),u_exaggeration:new s.Uniform1f(O),u_depth:new s.Uniform1i(O),u_depth_size_inv:new s.Uniform2f(O),u_meter_to_dem:new s.Uniform1f(O),u_label_plane_matrix_inv:new s.UniformMatrix4f(O)}))(o)),E.includes("GLOBE")&&(this.globeUniforms=(O=>({u_tile_tl_up:new s.Uniform3f(O),u_tile_tr_up:new s.Uniform3f(O),u_tile_br_up:new s.Uniform3f(O),u_tile_bl_up:new s.Uniform3f(O),u_tile_up_scale:new s.Uniform1f(O)}))(o)),E.includes("FOG")&&(this.fogUniforms=(O=>({u_fog_matrix:new s.UniformMatrix4f(O),u_fog_range:new s.Uniform2f(O),u_fog_color:new s.Uniform4f(O),u_fog_horizon_blend:new s.Uniform1f(O),u_fog_temporal_offset:new s.Uniform1f(O),u_frustum_tl:new s.Uniform3f(O),u_frustum_tr:new s.Uniform3f(O),u_frustum_br:new s.Uniform3f(O),u_frustum_bl:new s.Uniform3f(O),u_globe_pos:new s.Uniform3f(O),u_globe_radius:new s.Uniform1f(O),u_globe_transition:new s.Uniform1f(O),u_is_globe:new s.Uniform1i(O),u_viewport:new s.Uniform2f(O)}))(o))}}setTerrainUniformValues(o,c){if(!this.terrainUniforms)return;const f=this.terrainUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_]&&f[_].set(this.program,_,c[_])}}setGlobeUniformValues(o,c){if(!this.globeUniforms)return;const f=this.globeUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_]&&f[_].set(this.program,_,c[_])}}setFogUniformValues(o,c){if(!this.fogUniforms)return;const f=this.fogUniforms;if(!this.failedToCreate){o.program.set(this.program);for(const _ in c)f[_].set(this.program,_,c[_])}}draw(o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z){const H=o.gl;if(this.failedToCreate)return;o.program.set(this.program),o.setDepthMode(f),o.setStencilMode(_),o.setColorMode(v),o.setCullFace(E);for(const G of Object.keys(this.fixedUniforms))this.fixedUniforms[G].set(this.program,G,S[G]);W&&W.setUniforms(this.program,o,this.binderUniforms,j,{zoom:$});const O={[H.LINES]:2,[H.TRIANGLES]:3,[H.LINE_STRIP]:1}[c];for(const G of D.get()){const J=G.vaos||(G.vaos={});(J[C]||(J[C]=new Ng)).bind(o,this,z,W?W.getPaintVertexBuffers():[],P,G.vertexOffset,Z||[]),H.drawElements(c,G.primitiveLength*O,H.UNSIGNED_SHORT,G.primitiveOffset*O*2)}}}function al(d,o){const c=Math.pow(2,o.tileID.overscaledZ),f=o.tileSize*Math.pow(2,d.transform.tileZoom)/c,_=f*(o.tileID.canonical.x+o.tileID.wrap*c),v=f*o.tileID.canonical.y;return{u_image:0,u_texsize:o.imageAtlasTexture.size,u_tile_units_to_pixels:1/Bt(o,1,d.transform.tileZoom),u_pixel_coord_upper:[_>>16,v>>16],u_pixel_coord_lower:[65535&_,65535&v]}}const Cp=s.create(),lh=(d,o,c,f,_,v,E,S,C,z,P)=>{const D=o.style.light,j=D.properties.get("position"),$=[j.x,j.y,j.z],W=s.create$1();D.properties.get("anchor")==="viewport"&&(s.fromRotation(W,-o.transform.angle),s.transformMat3($,$,W));const Z=D.properties.get("color"),H=o.transform,O={u_matrix:d,u_lightpos:$,u_lightintensity:D.properties.get("intensity"),u_lightcolor:[Z.r,Z.g,Z.b],u_vertical_gradient:+c,u_opacity:f,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:Cp,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:_,u_edge_radius:v};return H.projection.name==="globe"&&(O.u_tile_id=[E.canonical.x,E.canonical.y,1<{const j=lh(d,o,c,f,_,v,E,C,z,P,D),$={u_height_factor:-Math.pow(2,E.overscaledZ)/S.tileSize/8};return s.extend(j,al(o,S),$)},fs=d=>({u_matrix:d}),ch=(d,o,c)=>s.extend(fs(d),al(o,c)),Ug=(d,o)=>({u_matrix:d,u_world:o}),jg=(d,o,c,f)=>s.extend(ch(d,o,c),{u_world:f}),Vg=s.create(),uh=(d,o,c,f,_,v)=>{const E=d.transform,S=E.projection.name==="globe";let C;if(v.paint.get("circle-pitch-alignment")==="map")if(S){const P=s.globePixelsToTileUnits(E.zoom,o.canonical)*E._pixelsPerMercatorPixel;C=Float32Array.from([P,0,0,P])}else C=E.calculatePixelsToTileUnitsMatrix(c);else C=new Float32Array([E.pixelsToGLUnits[0],0,0,E.pixelsToGLUnits[1]]);const z={u_camera_to_center_distance:E.cameraToCenterDistance,u_matrix:d.translatePosMatrix(o.projMatrix,c,v.paint.get("circle-translate"),v.paint.get("circle-translate-anchor")),u_device_pixel_ratio:s.exported.devicePixelRatio,u_extrude_scale:C,u_inv_rot_matrix:Vg,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(S){z.u_inv_rot_matrix=f,z.u_merc_center=_,z.u_tile_id=[o.canonical.x,o.canonical.y,1<{const o=[];return d.paint.get("circle-pitch-alignment")==="map"&&o.push("PITCH_WITH_MAP"),d.paint.get("circle-pitch-scale")==="map"&&o.push("SCALE_WITH_MAP"),o},dh=(d,o,c,f)=>{const _=s.EXTENT/c.tileSize;return{u_matrix:d,u_camera_to_center_distance:o.getCameraToCenterDistance(f),u_extrude_scale:[o.pixelsToGLUnits[0]/_,o.pixelsToGLUnits[1]/_]}},fc=(d,o,c=1)=>({u_matrix:d,u_color:o,u_overlay:0,u_overlay_scale:c}),Mp=s.create(),kp=(d,o,c,f,_,v,E)=>{const S=d.transform,C=S.projection.name==="globe",z=C?s.globePixelsToTileUnits(S.zoom,o.canonical)*S._pixelsPerMercatorPixel:Bt(c,1,v),P={u_matrix:o.projMatrix,u_extrude_scale:z,u_intensity:E,u_inv_rot_matrix:Mp,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(C){P.u_inv_rot_matrix=f,P.u_merc_center=_,P.u_tile_id=[o.canonical.x,o.canonical.y,1<{const S=d.transform,C=S.calculatePixelsToTileUnitsMatrix(o);return{u_matrix:ph(d,o,c,f),u_pixels_to_tile_units:C,u_device_pixel_ratio:v,u_units_to_pixels:[1/S.pixelsToGLUnits[0],1/S.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:_,u_texsize:cl(c)?o.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:Js(o,d.transform),u_alpha_discard_threshold:0,u_trim_offset:E}},ll=(d,o,c,f,_)=>{const v=d.transform;return{u_matrix:ph(d,o,c,f),u_texsize:o.imageAtlasTexture.size,u_pixels_to_tile_units:v.calculatePixelsToTileUnitsMatrix(o),u_device_pixel_ratio:_,u_image:0,u_tile_units_to_pixels:Js(o,v),u_units_to_pixels:[1/v.pixelsToGLUnits[0],1/v.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function Js(d,o){return 1/Bt(d,1,o.tileZoom)}function ph(d,o,c,f){return d.translatePosMatrix(f||o.tileID.projMatrix,o,c.paint.get("line-translate"),c.paint.get("line-translate-anchor"))}function cl(d){const o=d.paint.get("line-dasharray").value;return o.value||o.kind!=="constant"}const fh=(d,o,c,f,_,v)=>{return{u_matrix:d,u_tl_parent:o,u_scale_parent:c,u_fade_t:f.mix,u_opacity:f.opacity*_.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:_.paint.get("raster-brightness-min"),u_brightness_high:_.paint.get("raster-brightness-max"),u_saturation_factor:(S=_.paint.get("raster-saturation"),S>0?1-1/(1.001-S):-S),u_contrast_factor:(E=_.paint.get("raster-contrast"),E>0?1/(1-E):1+E),u_spin_weights:Vr(_.paint.get("raster-hue-rotate")),u_perspective_transform:v};var E,S};function Vr(d){d*=Math.PI/180;const o=Math.sin(d),c=Math.cos(d);return[(2*c+1)/3,(-Math.sqrt(3)*o-c+1)/3,(Math.sqrt(3)*o-c+1)/3]}const mc=s.create(),mh=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z)=>{const H=_.transform,O={u_is_size_zoom_constant:+(d==="constant"||d==="source"),u_is_size_feature_constant:+(d==="constant"||d==="camera"),u_size_t:o?o.uSizeT:0,u_size:o?o.uSize:0,u_camera_to_center_distance:H.cameraToCenterDistance,u_rotate_symbol:+c,u_aspect_ratio:H.width/H.height,u_fade_change:_.options.fadeDuration?_.symbolFadeChange:1,u_matrix:v,u_label_plane_matrix:E,u_coord_matrix:S,u_is_text:+C,u_pitch_with_map:+f,u_texsize:z,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:mc,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:mc,u_up_vector:[0,-1,0]};return Z.name==="globe"&&(O.u_tile_id=[P.canonical.x,P.canonical.y,1<s.extend(mh(d,o,c,f,_,v,E,S,C,z,D,j,$,W,Z,H),{u_gamma_scale:f?_.transform.cameraToCenterDistance*Math.cos(_.terrain?0:_.transform._pitch):1,u_device_pixel_ratio:s.exported.devicePixelRatio,u_is_halo:+P}),Pp=(d,o,c,f,_,v,E,S,C,z,P,D,j,$,W,Z)=>s.extend(gc(d,o,c,f,_,v,E,S,!0,C,!0,P,D,j,$,W,Z),{u_texsize_icon:z,u_texture_icon:1}),gh=(d,o,c)=>({u_matrix:d,u_opacity:o,u_color:c}),$g=(d,o,c,f,_)=>s.extend(function(v,E,S){const C=E.imageManager.getPattern(v.toString()),{width:z,height:P}=E.imageManager.getPixelSize(),D=Math.pow(2,S.tileID.overscaledZ),j=S.tileSize*Math.pow(2,E.transform.tileZoom)/D,$=j*(S.tileID.canonical.x+S.tileID.wrap*D),W=j*S.tileID.canonical.y;return{u_image:0,u_pattern_tl:C.tl,u_pattern_br:C.br,u_texsize:[z,P],u_pattern_size:C.displaySize,u_tile_units_to_pixels:1/Bt(S,1,E.transform.tileZoom),u_pixel_coord_upper:[$>>16,W>>16],u_pixel_coord_lower:[65535&$,65535&W]}}(f,c,_),{u_matrix:d,u_opacity:o}),_h={fillExtrusion:d=>({u_matrix:new s.UniformMatrix4f(d),u_lightpos:new s.Uniform3f(d),u_lightintensity:new s.Uniform1f(d),u_lightcolor:new s.Uniform3f(d),u_vertical_gradient:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_edge_radius:new s.Uniform1f(d),u_ao:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_up_dir:new s.Uniform3f(d),u_height_lift:new s.Uniform1f(d)}),fillExtrusionPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_lightpos:new s.Uniform3f(d),u_lightintensity:new s.Uniform1f(d),u_lightcolor:new s.Uniform3f(d),u_vertical_gradient:new s.Uniform1f(d),u_height_factor:new s.Uniform1f(d),u_edge_radius:new s.Uniform1f(d),u_ao:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_up_dir:new s.Uniform3f(d),u_height_lift:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d)}),fill:d=>({u_matrix:new s.UniformMatrix4f(d)}),fillPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),fillOutline:d=>({u_matrix:new s.UniformMatrix4f(d),u_world:new s.Uniform2f(d)}),fillOutlinePattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_world:new s.Uniform2f(d),u_image:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),circle:d=>({u_camera_to_center_distance:new s.Uniform1f(d),u_extrude_scale:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_up_dir:new s.Uniform3f(d)}),collisionBox:d=>({u_matrix:new s.UniformMatrix4f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_extrude_scale:new s.Uniform2f(d)}),collisionCircle:d=>({u_matrix:new s.UniformMatrix4f(d),u_inv_matrix:new s.UniformMatrix4f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_viewport_size:new s.Uniform2f(d)}),debug:d=>({u_color:new s.UniformColor(d),u_matrix:new s.UniformMatrix4f(d),u_overlay:new s.Uniform1i(d),u_overlay_scale:new s.Uniform1f(d)}),clippingMask:d=>({u_matrix:new s.UniformMatrix4f(d)}),heatmap:d=>({u_extrude_scale:new s.Uniform1f(d),u_intensity:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_up_dir:new s.Uniform3f(d)}),heatmapTexture:d=>({u_image:new s.Uniform1i(d),u_color_ramp:new s.Uniform1i(d),u_opacity:new s.Uniform1f(d)}),hillshade:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_latrange:new s.Uniform2f(d),u_light:new s.Uniform2f(d),u_shadow:new s.UniformColor(d),u_highlight:new s.UniformColor(d),u_accent:new s.UniformColor(d)}),hillshadePrepare:d=>({u_matrix:new s.UniformMatrix4f(d),u_image:new s.Uniform1i(d),u_dimension:new s.Uniform2f(d),u_zoom:new s.Uniform1f(d),u_unpack:new s.Uniform4f(d)}),line:d=>({u_matrix:new s.UniformMatrix4f(d),u_pixels_to_tile_units:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_units_to_pixels:new s.Uniform2f(d),u_dash_image:new s.Uniform1i(d),u_gradient_image:new s.Uniform1i(d),u_image_height:new s.Uniform1f(d),u_texsize:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_alpha_discard_threshold:new s.Uniform1f(d),u_trim_offset:new s.Uniform2f(d)}),linePattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_texsize:new s.Uniform2f(d),u_pixels_to_tile_units:new s.UniformMatrix2f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_units_to_pixels:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d),u_alpha_discard_threshold:new s.Uniform1f(d)}),raster:d=>({u_matrix:new s.UniformMatrix4f(d),u_tl_parent:new s.Uniform2f(d),u_scale_parent:new s.Uniform1f(d),u_fade_t:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_image0:new s.Uniform1i(d),u_image1:new s.Uniform1i(d),u_brightness_low:new s.Uniform1f(d),u_brightness_high:new s.Uniform1f(d),u_saturation_factor:new s.Uniform1f(d),u_contrast_factor:new s.Uniform1f(d),u_spin_weights:new s.Uniform3f(d),u_perspective_transform:new s.Uniform2f(d)}),symbolIcon:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_camera_forward:new s.Uniform3f(d),u_tile_matrix:new s.UniformMatrix4f(d),u_up_vector:new s.Uniform3f(d),u_ecef_origin:new s.Uniform3f(d),u_texture:new s.Uniform1i(d)}),symbolSDF:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_texture:new s.Uniform1i(d),u_gamma_scale:new s.Uniform1f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_tile_id:new s.Uniform3f(d),u_zoom_transition:new s.Uniform1f(d),u_inv_rot_matrix:new s.UniformMatrix4f(d),u_merc_center:new s.Uniform2f(d),u_camera_forward:new s.Uniform3f(d),u_tile_matrix:new s.UniformMatrix4f(d),u_up_vector:new s.Uniform3f(d),u_ecef_origin:new s.Uniform3f(d),u_is_halo:new s.Uniform1i(d)}),symbolTextAndIcon:d=>({u_is_size_zoom_constant:new s.Uniform1i(d),u_is_size_feature_constant:new s.Uniform1i(d),u_size_t:new s.Uniform1f(d),u_size:new s.Uniform1f(d),u_camera_to_center_distance:new s.Uniform1f(d),u_rotate_symbol:new s.Uniform1i(d),u_aspect_ratio:new s.Uniform1f(d),u_fade_change:new s.Uniform1f(d),u_matrix:new s.UniformMatrix4f(d),u_label_plane_matrix:new s.UniformMatrix4f(d),u_coord_matrix:new s.UniformMatrix4f(d),u_is_text:new s.Uniform1i(d),u_pitch_with_map:new s.Uniform1i(d),u_texsize:new s.Uniform2f(d),u_texsize_icon:new s.Uniform2f(d),u_texture:new s.Uniform1i(d),u_texture_icon:new s.Uniform1i(d),u_gamma_scale:new s.Uniform1f(d),u_device_pixel_ratio:new s.Uniform1f(d),u_is_halo:new s.Uniform1i(d)}),background:d=>({u_matrix:new s.UniformMatrix4f(d),u_opacity:new s.Uniform1f(d),u_color:new s.UniformColor(d)}),backgroundPattern:d=>({u_matrix:new s.UniformMatrix4f(d),u_opacity:new s.Uniform1f(d),u_image:new s.Uniform1i(d),u_pattern_tl:new s.Uniform2f(d),u_pattern_br:new s.Uniform2f(d),u_texsize:new s.Uniform2f(d),u_pattern_size:new s.Uniform2f(d),u_pixel_coord_upper:new s.Uniform2f(d),u_pixel_coord_lower:new s.Uniform2f(d),u_tile_units_to_pixels:new s.Uniform1f(d)}),terrainRaster:rh,terrainDepth:rh,skybox:d=>({u_matrix:new s.UniformMatrix4f(d),u_sun_direction:new s.Uniform3f(d),u_cubemap:new s.Uniform1i(d),u_opacity:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d)}),skyboxGradient:d=>({u_matrix:new s.UniformMatrix4f(d),u_color_ramp:new s.Uniform1i(d),u_center_direction:new s.Uniform3f(d),u_radius:new s.Uniform1f(d),u_opacity:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d)}),skyboxCapture:d=>({u_matrix_3f:new s.UniformMatrix3f(d),u_sun_direction:new s.Uniform3f(d),u_sun_intensity:new s.Uniform1f(d),u_color_tint_r:new s.Uniform4f(d),u_color_tint_m:new s.Uniform4f(d),u_luminance:new s.Uniform1f(d)}),globeRaster:d=>({u_proj_matrix:new s.UniformMatrix4f(d),u_globe_matrix:new s.UniformMatrix4f(d),u_normalize_matrix:new s.UniformMatrix4f(d),u_merc_matrix:new s.UniformMatrix4f(d),u_zoom_transition:new s.Uniform1f(d),u_merc_center:new s.Uniform2f(d),u_image0:new s.Uniform1i(d),u_grid_matrix:new s.UniformMatrix3f(d),u_skirt_height:new s.Uniform1f(d),u_frustum_tl:new s.Uniform3f(d),u_frustum_tr:new s.Uniform3f(d),u_frustum_br:new s.Uniform3f(d),u_frustum_bl:new s.Uniform3f(d),u_globe_pos:new s.Uniform3f(d),u_globe_radius:new s.Uniform1f(d),u_viewport:new s.Uniform2f(d)}),globeAtmosphere:d=>({u_frustum_tl:new s.Uniform3f(d),u_frustum_tr:new s.Uniform3f(d),u_frustum_br:new s.Uniform3f(d),u_frustum_bl:new s.Uniform3f(d),u_horizon:new s.Uniform1f(d),u_transition:new s.Uniform1f(d),u_fadeout_range:new s.Uniform1f(d),u_color:new s.Uniform4f(d),u_high_color:new s.Uniform4f(d),u_space_color:new s.Uniform4f(d),u_star_intensity:new s.Uniform1f(d),u_star_density:new s.Uniform1f(d),u_star_size:new s.Uniform1f(d),u_temporal_offset:new s.Uniform1f(d),u_horizon_angle:new s.Uniform1f(d),u_rotation_matrix:new s.UniformMatrix4f(d)})};let _c;function ul(d,o,c,f,_,v,E){const S=d.context,C=S.gl,z=d.transform,P=d.useProgram("collisionBox"),D=[];let j=0,$=0;for(let Q=0;Q0){const we=s.create(),Be=_e;s.mul(we,de.placementInvProjMatrix,z.glCoordMatrix),s.mul(we,we,de.placementViewportMatrix),D.push({circleArray:Ze,circleOffset:$,transform:Be,invTransform:we,projection:de.getProjection()}),j+=Ze.length/4,$=j}Te&&(d.terrain&&d.terrain.setupElevationDraw(pe,P),P.draw(S,C.LINES,s.DepthMode.disabled,s.StencilMode.disabled,d.colorModeForRenderPass(),s.CullFaceMode.disabled,dh(_e,z,pe,de.getProjection()),c.id,Te.layoutVertexBuffer,Te.indexBuffer,Te.segments,null,z.zoom,null,[Te.collisionVertexBuffer,Te.collisionVertexBufferExt]))}if(!E||!D.length)return;const W=d.useProgram("collisionCircle"),Z=new s.StructArrayLayout2f1f2i16;Z.resize(4*j),Z._trim();let H=0;for(const Q of D)for(let he=0;he=0&&(W[Q.associatedIconIndex]={x:we,y:Be,z:Ce,angle:Ge})}else br(de,j)}if(P){$.clear();const J=d.icon.placedSymbolArray;for(let Q=0;Qwe.sortKey-Be.sortKey);for(const we of _e){const Be=we.state;if(d.terrain&&d.terrain.setupElevationDraw(Be.tile,Be.program,{useDepthForOcclusion:!ye,labelPlaneMatrixInv:Be.labelPlaneMatrixInv}),j.activeTexture.set($.TEXTURE0),Be.atlasTexture.bind(Be.atlasInterpolation,$.CLAMP_TO_EDGE),Be.atlasTextureIcon&&(j.activeTexture.set($.TEXTURE1),Be.atlasTextureIcon&&Be.atlasTextureIcon.bind(Be.atlasInterpolationIcon,$.CLAMP_TO_EDGE)),Be.isSDF){const Ce=Be.uniformValues;Be.hasHalo&&(Ce.u_is_halo=1,hl(Be.buffers,we.segments,c,d,Be.program,he,P,D,Ce)),Ce.u_is_halo=0}hl(Be.buffers,we.segments,c,d,Be.program,he,P,D,Be.uniformValues)}}function hl(d,o,c,f,_,v,E,S,C){const z=f.context,P=[d.dynamicLayoutVertexBuffer,d.opacityVertexBuffer,d.globeExtVertexBuffer];_.draw(z,z.gl.TRIANGLES,v,E,S,s.CullFaceMode.disabled,C,c.id,d.layoutVertexBuffer,d.indexBuffer,o,c.paint,f.transform.zoom,d.programConfigurations.get(c.id),P)}function Rp(d,o,c,f,_,v,E){const S=d.context.gl,C=c.paint.get("fill-pattern"),z=C&&C.constantOr(1);let P,D,j,$,W;E?(D=z&&!c.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",P=S.LINES):(D=z?"fillPattern":"fill",P=S.TRIANGLES);for(const Z of f){const H=o.getTile(Z);if(z&&!H.patternsLoaded())continue;const O=H.getBucket(c);if(!O)continue;d.prepareDrawTile();const G=O.programConfigurations.get(c.id),J=d.useProgram(D,G);z&&(d.context.activeTexture.set(S.TEXTURE0),H.imageAtlasTexture.bind(S.LINEAR,S.CLAMP_TO_EDGE),G.updatePaintBuffers());const Q=C.constantOr(null);if(Q&&H.imageAtlas){const pe=H.imageAtlas.patternPositions[Q.toString()];pe&&G.setConstantPatternPositions(pe)}const he=d.translatePosMatrix(Z.projMatrix,H,c.paint.get("fill-translate"),c.paint.get("fill-translate-anchor"));if(E){$=O.indexBuffer2,W=O.segments2;const pe=d.terrain&&d.terrain.renderingToTexture?d.terrain.drapeBufferSize:[S.drawingBufferWidth,S.drawingBufferHeight];j=D==="fillOutlinePattern"&&z?jg(he,d,H,pe):Ug(he,pe)}else $=O.indexBuffer,W=O.segments,j=z?ch(he,d,H):fs(he);d.prepareDrawProgram(d.context,J,Z.toUnwrapped()),J.draw(d.context,P,_,d.stencilModeForClipping(Z),v,s.CullFaceMode.disabled,j,c.id,O.layoutVertexBuffer,$,W,c.paint,d.transform.zoom,G)}}function yc(d,o,c,f,_,v,E){const S=d.context,C=S.gl,z=d.transform,P=c.paint.get("fill-extrusion-pattern"),D=P.constantOr(1),j=c.paint.get("fill-extrusion-opacity"),$=[c.paint.get("fill-extrusion-ambient-occlusion-intensity"),c.paint.get("fill-extrusion-ambient-occlusion-radius")],W=c.layout.get("fill-extrusion-edge-radius"),Z=W>0&&!c.paint.get("fill-extrusion-rounded-roof"),H=Z?0:W,O=z.projection.name==="globe"?s.fillExtrusionHeightLift():0,G=z.projection.name==="globe",J=G?s.globeToMercatorTransition(z.zoom):0,Q=[s.mercatorXfromLng(z.center.lng),s.mercatorYfromLat(z.center.lat)],he=[];G&&he.push("PROJECTION_GLOBE_VIEW"),$[0]>0&&he.push("FAUX_AO"),Z&&he.push("ZERO_ROOF_RADIUS");for(const pe of f){const de=o.getTile(pe),ye=de.getBucket(c);if(!ye||ye.projection.name!==z.projection.name)continue;const _e=ye.programConfigurations.get(c.id),Te=d.useProgram(D?"fillExtrusionPattern":"fillExtrusion",_e,he);if(d.terrain){const Oe=d.terrain;if(d.style.terrainSetForDrapingOnly())Oe.setupElevationDraw(de,Te,{useMeterToDem:!0});else{if(!ye.enableTerrain)continue;if(Oe.setupElevationDraw(de,Te,{useMeterToDem:!0}),Dp(S,o,pe,ye,c,Oe),!ye.centroidVertexBuffer){const He=Te.attributes.a_centroid_pos;He!==void 0&&C.vertexAttrib2f(He,0,0)}}}D&&(d.context.activeTexture.set(C.TEXTURE0),de.imageAtlasTexture.bind(C.LINEAR,C.CLAMP_TO_EDGE),_e.updatePaintBuffers());const Ze=P.constantOr(null);if(Ze&&de.imageAtlas){const Oe=de.imageAtlas.patternPositions[Ze.toString()];Oe&&_e.setConstantPatternPositions(Oe)}const we=d.translatePosMatrix(pe.projMatrix,de,c.paint.get("fill-extrusion-translate"),c.paint.get("fill-extrusion-translate-anchor")),Be=z.projection.createInversionMatrix(z,pe.canonical),Ce=c.paint.get("fill-extrusion-vertical-gradient"),qe=D?Ip(we,d,Ce,j,$,H,pe,de,O,J,Q,Be):lh(we,d,Ce,j,$,H,pe,O,J,Q,Be);d.prepareDrawProgram(S,Te,pe.toUnwrapped());const Ee=[];d.terrain&&Ee.push(ye.centroidVertexBuffer),G&&Ee.push(ye.layoutVertexExtBuffer),Te.draw(S,S.gl.TRIANGLES,_,v,E,s.CullFaceMode.backCCW,qe,c.id,ye.layoutVertexBuffer,ye.indexBuffer,ye.segments,c.paint,d.transform.zoom,_e,Ee)}}function Dp(d,o,c,f,_,v){const E=[O=>{let G=O.canonical.x-1,J=O.wrap;return G<0&&(G=(1<{let G=O.canonical.x+1,J=O.wrap;return G===1<new s.OverscaledTileID(O.overscaledZ,O.wrap,O.canonical.z,O.canonical.x,(O.canonical.y===0?1<new s.OverscaledTileID(O.overscaledZ,O.wrap,O.canonical.z,O.canonical.x,O.canonical.y===(1<{const G=o.getSource().minzoom,J=he=>{const pe=o.getTileByID(he);if(pe&&pe.hasData())return pe.getBucket(_)},Q=[0,-1,1];for(const he of Q){if(O.overscaledZ+he(C[0]=Math.min(O.min.y,G.min.y),C[1]=Math.max(O.max.y,G.max.y),C[2]=s.EXTENT-G.min.x>O.max.x?G.min.x-s.EXTENT:O.max.x,C),P=(O,G)=>(C[0]=Math.min(O.min.x,G.min.x),C[1]=Math.max(O.max.x,G.max.x),C[2]=s.EXTENT-G.min.y>O.max.y?G.min.y-s.EXTENT:O.max.y,C),D=[(O,G)=>z(O,G),(O,G)=>z(G,O),(O,G)=>P(O,G),(O,G)=>P(G,O)],j=new s.Point(0,0);let $,W,Z;const H=(O,G,J,Q,he)=>{const pe=[[Q?J:O,Q?O:J,0],[Q?J:G,Q?G:J,0]],de=he<0?s.EXTENT+he:he,ye=[Q?de:(O+G)/2,Q?(O+G)/2:de,0];return J===0&&he<0||J!==0&&he>0?v.getForTilePoints(Z,[ye],!0,W):pe.push(ye),v.getForTilePoints(c,pe,!0,$),Math.max(pe[0][2],pe[1][2],ye[2])/v.exaggeration()};for(let O=0;O<4;O++){const G=(O<2?1:5)-O,J=f.borders[O];if(J.length===0)continue;const Q=Z=E[O](c),he=S(Q);if(!(he&&he instanceof s.FillExtrusionBucket&&he.enableTerrain)||f.borderDoneWithNeighborZ[O]===he.canonical.z&&he.borderDoneWithNeighborZ[G]===f.canonical.z||(W=v.findDEMTileFor(Q),!W||!W.dem))continue;if(!$){const _e=v.findDEMTileFor(c);if(!_e||!_e.dem)return;$=_e}const pe=he.borders[G];let de=0;const ye=he.borderDoneWithNeighborZ[G]!==f.canonical.z;if(f.canonical.z===he.canonical.z){for(let _e=0;_eZe[0]+3));)ye&&he.encodeCentroid(void 0,we,!1),de++;if(we&&deZe[1]-3)&&(Ce++,++de!==pe.length);)we=he.featuresOnBorder[pe[de]];if(we=he.featuresOnBorder[pe[Be]],Te.intersectsCount()>1||we.intersectsCount()>1||Ce!==1){Ce!==1&&(de=Be),f.encodeCentroid(void 0,Te,!1),ye&&he.encodeCentroid(void 0,we,!1);continue}const qe=D[O](Te,we),Ee=O%2?s.EXTENT-1:0;j.x=H(qe[0],Math.min(s.EXTENT-1,qe[1]),Ee,O<2,qe[2]),j.y=0,f.encodeCentroid(j,Te,!1),ye&&he.encodeCentroid(j,we,!1)}else f.encodeCentroid(void 0,Te,!1)}f.borderDoneWithNeighborZ[O]=he.canonical.z,f.needsCentroidUpdate=!0,ye&&(he.borderDoneWithNeighborZ[G]=f.canonical.z,he.needsCentroidUpdate=!0)}else{for(const _e of J)f.encodeCentroid(void 0,f.featuresOnBorder[_e],!1);if(ye){for(const _e of pe)he.encodeCentroid(void 0,he.featuresOnBorder[_e],!1);he.borderDoneWithNeighborZ[G]=f.canonical.z,he.needsCentroidUpdate=!0}f.borderDoneWithNeighborZ[O]=he.canonical.z,f.needsCentroidUpdate=!0}}(f.needsCentroidUpdate||!f.centroidVertexBuffer&&f.centroidVertexArray.length!==0)&&f.uploadCentroid(d)}const Qs=new s.Color(1,0,0,1),Zg=new s.Color(0,1,0,1),Wg=new s.Color(0,0,1,1),Hg=new s.Color(1,0,1,1),Xg=new s.Color(0,1,1,1);function Kg(d,o,c){const f=d.context,_=d.transform,v=f.gl,E=_.projection.name==="globe",S=E?["PROJECTION_GLOBE_VIEW"]:null;let C=c.projMatrix;if(E&&s.globeToMercatorTransition(_.zoom)>0){const Te=s.transitionTileAABBinECEF(c.canonical,_),Ze=s.globeDenormalizeECEF(Te);C=s.multiply(new Float32Array(16),_.globeMatrix,Ze),s.multiply(C,_.projMatrix,C)}const z=d.useProgram("debug",null,S),P=o.getTileByID(c.key);d.terrain&&d.terrain.setupElevationDraw(P,z);const D=s.DepthMode.disabled,j=s.StencilMode.disabled,$=d.colorModeForRenderPass(),W="$debug";f.activeTexture.set(v.TEXTURE0),d.emptyTexture.bind(v.LINEAR,v.CLAMP_TO_EDGE),E?P._makeGlobeTileDebugBuffers(d.context,_):P._makeDebugTileBoundsBuffers(d.context,_.projection);const Z=P._tileDebugBuffer||d.debugBuffer,H=P._tileDebugIndexBuffer||d.debugIndexBuffer,O=P._tileDebugSegments||d.debugSegments;z.draw(f,v.LINE_STRIP,D,j,$,s.CullFaceMode.disabled,fc(C,s.Color.red),W,Z,H,O,null,null,null,[P._globeTileDebugBorderBuffer]);const G=P.latestRawTileData,J=Math.floor((G&&G.byteLength||0)/1024),Q=o.getTile(c).tileSize,he=512/Math.min(Q,512)*(c.overscaledZ/_.zoom)*.5;let pe=c.canonical.toString();c.overscaledZ!==c.canonical.z&&(pe+=` => ${c.overscaledZ}`),pe+=` ${J}kb`,function(Te,Ze){Te.initDebugOverlayCanvas();const we=Te.debugOverlayCanvas,Be=Te.context.gl,Ce=Te.debugOverlayCanvas.getContext("2d");Ce.clearRect(0,0,we.width,we.height),Ce.shadowColor="white",Ce.shadowBlur=2,Ce.lineWidth=1.5,Ce.strokeStyle="white",Ce.textBaseline="top",Ce.font="bold 36px Open Sans, sans-serif",Ce.fillText(Ze,5,5),Ce.strokeText(Ze,5,5),Te.debugOverlayTexture.update(we),Te.debugOverlayTexture.bind(Be.LINEAR,Be.CLAMP_TO_EDGE)}(d,pe);const de=P._tileDebugTextBuffer||d.debugBuffer,ye=P._tileDebugTextIndexBuffer||d.quadTriangleIndexBuffer,_e=P._tileDebugTextSegments||d.debugSegments;z.draw(f,v.TRIANGLES,D,j,s.ColorMode.alphaBlended,s.CullFaceMode.disabled,fc(C,s.Color.transparent,he),W,de,ye,_e,null,null,null,[P._globeTileDebugTextBuffer])}function Op(d,o,c,f){ea(d,0,o+c/2,d.transform.width,c,f)}function vc(d,o,c,f){ea(d,o-c/2,0,c,d.transform.height,f)}function ea(d,o,c,f,_,v){const E=d.context,S=E.gl;S.enable(S.SCISSOR_TEST),S.scissor(o*s.exported.devicePixelRatio,c*s.exported.devicePixelRatio,f*s.exported.devicePixelRatio,_*s.exported.devicePixelRatio),E.clear({color:v}),S.disable(S.SCISSOR_TEST)}const Bp=s.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:Fp}=Bp;function uo(d,o,c,f){d.emplaceBack(o,c,f)}class xc{constructor(o){this.vertexArray=new s.StructArrayLayout3f12,this.indices=new s.StructArrayLayout3ui6,uo(this.vertexArray,-1,-1,1),uo(this.vertexArray,1,-1,1),uo(this.vertexArray,-1,1,1),uo(this.vertexArray,1,1,1),uo(this.vertexArray,-1,-1,-1),uo(this.vertexArray,1,-1,-1),uo(this.vertexArray,-1,1,-1),uo(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=o.createVertexBuffer(this.vertexArray,Fp),this.indexBuffer=o.createIndexBuffer(this.indices),this.segment=s.SegmentVector.simpleSegment(0,0,36,12)}}function sr(d,o,c,f,_,v){const E=d.gl,S=o.paint.get("sky-atmosphere-color"),C=o.paint.get("sky-atmosphere-halo-color"),z=o.paint.get("sky-atmosphere-sun-intensity"),P=((D,j,$,W,Z)=>({u_matrix_3f:D,u_sun_direction:j,u_sun_intensity:$,u_color_tint_r:[W.r,W.g,W.b,W.a],u_color_tint_m:[Z.r,Z.g,Z.b,Z.a],u_luminance:5e-5}))(s.fromMat4(s.create$1(),f),_,z,S,C);E.framebufferTexture2D(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.TEXTURE_CUBE_MAP_POSITIVE_X+v,o.skyboxTexture,0),c.draw(d,E.TRIANGLES,s.DepthMode.disabled,s.StencilMode.disabled,s.ColorMode.unblended,s.CullFaceMode.frontCW,P,"skyboxCapture",o.skyboxGeometry.vertexBuffer,o.skyboxGeometry.indexBuffer,o.skyboxGeometry.segment)}const dl=s.createLayout([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);class Np{constructor(o){const c=new s.StructArrayLayout5f20;c.emplaceBack(-1,1,1,0,0),c.emplaceBack(1,1,1,1,0),c.emplaceBack(1,-1,1,1,1),c.emplaceBack(-1,-1,1,0,1);const f=new s.StructArrayLayout3ui6;f.emplaceBack(0,1,2),f.emplaceBack(2,3,0),this.vertexBuffer=o.createVertexBuffer(c,dl.members),this.indexBuffer=o.createIndexBuffer(f),this.segments=s.SegmentVector.simpleSegment(0,0,4,2)}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy()}}const ms={symbol:function(d,o,c,f,_){if(d.renderPass!=="translucent")return;const v=s.StencilMode.disabled,E=d.colorModeForRenderPass();c.layout.get("text-variable-anchor")&&function(S,C,z,P,D,j,$){const W=C.transform,Z=D==="map",H=j==="map";for(const O of S){const G=P.getTile(O),J=G.getBucket(z);if(!J||!J.text||!J.text.segments.get().length)continue;const Q=s.evaluateSizeForZoom(J.textSizeData,W.zoom),he=En(O,J.getProjection(),W),pe=W.calculatePixelsToTileUnitsMatrix(G),de=Le(he,G.tileID.canonical,H,Z,W,J.getProjection(),pe),ye=z.layout.get("icon-text-fit")!=="none"&&J.hasIconData();if(Q){const _e=Math.pow(2,W.zoom-G.tileID.overscaledZ);qg(J,Z,H,$,s.symbolSize,W,de,O,_e,Q,ye)}}}(f,d,c,o,c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),_),c.paint.get("icon-opacity").constantOr(1)!==0&&Lp(d,o,c,f,!1,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),c.layout.get("icon-rotation-alignment"),c.layout.get("icon-pitch-alignment"),c.layout.get("icon-keep-upright"),v,E),c.paint.get("text-opacity").constantOr(1)!==0&&Lp(d,o,c,f,!0,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),c.layout.get("text-rotation-alignment"),c.layout.get("text-pitch-alignment"),c.layout.get("text-keep-upright"),v,E),o.map.showCollisionBoxes&&(ul(d,o,c,f,c.paint.get("text-translate"),c.paint.get("text-translate-anchor"),!0),ul(d,o,c,f,c.paint.get("icon-translate"),c.paint.get("icon-translate-anchor"),!1))},circle:function(d,o,c,f){if(d.renderPass!=="translucent")return;const _=c.paint.get("circle-opacity"),v=c.paint.get("circle-stroke-width"),E=c.paint.get("circle-stroke-opacity"),S=c.layout.get("circle-sort-key").constantOr(1)!==void 0;if(_.constantOr(1)===0&&(v.constantOr(1)===0||E.constantOr(1)===0))return;const C=d.context,z=C.gl,P=d.transform,D=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),j=s.StencilMode.disabled,$=d.colorModeForRenderPass(),W=P.projection.name==="globe",Z=[s.mercatorXfromLng(P.center.lng),s.mercatorYfromLat(P.center.lat)],H=[];for(let G=0;GG.sortKey-J.sortKey);const O={useDepthForOcclusion:!W};for(const G of H){const{programConfiguration:J,program:Q,layoutVertexBuffer:he,globeExtVertexBuffer:pe,indexBuffer:de,uniformValues:ye,tile:_e}=G.state,Te=G.segments;d.terrain&&d.terrain.setupElevationDraw(_e,Q,O),d.prepareDrawProgram(C,Q,_e.tileID.toUnwrapped()),Q.draw(C,z.TRIANGLES,D,j,$,s.CullFaceMode.disabled,ye,c.id,he,de,Te,c.paint,P.zoom,J,[pe])}},heatmap:function(d,o,c,f){if(c.paint.get("heatmap-opacity")!==0)if(d.renderPass==="offscreen"){const _=d.context,v=_.gl,E=s.StencilMode.disabled,S=new s.ColorMode([v.ONE,v.ONE],s.Color.transparent,[!0,!0,!0,!0]);(function($,W,Z,H){const O=$.gl,G=W.width*H,J=W.height*H;$.activeTexture.set(O.TEXTURE1),$.viewport.set([0,0,G,J]);let Q=Z.heatmapFbo;if(!Q||Q&&(Q.width!==G||Q.height!==J)){Q&&Q.destroy();const he=O.createTexture();O.bindTexture(O.TEXTURE_2D,he),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_WRAP_S,O.CLAMP_TO_EDGE),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_WRAP_T,O.CLAMP_TO_EDGE),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_MIN_FILTER,O.LINEAR),O.texParameteri(O.TEXTURE_2D,O.TEXTURE_MAG_FILTER,O.LINEAR),Q=Z.heatmapFbo=$.createFramebuffer(G,J,!1),function(pe,de,ye,_e,Te,Ze){const we=pe.gl;we.texImage2D(we.TEXTURE_2D,0,pe.isWebGL2&&pe.extRenderToTextureHalfFloat?we.RGBA16F:we.RGBA,Te,Ze,0,we.RGBA,pe.extRenderToTextureHalfFloat?pe.isWebGL2?we.HALF_FLOAT:pe.extTextureHalfFloat.HALF_FLOAT_OES:we.UNSIGNED_BYTE,null),_e.colorAttachment.set(ye)}($,0,he,Q,G,J)}else O.bindTexture(O.TEXTURE_2D,Q.colorAttachment.get()),$.bindFramebuffer.set(Q.framebuffer)})(_,d,c,d.transform.projection.name==="globe"?.5:.25),_.clear({color:s.Color.transparent});const C=d.transform,z=C.projection.name==="globe",P=z?["PROJECTION_GLOBE_VIEW"]:null,D=z?s.CullFaceMode.frontCCW:s.CullFaceMode.disabled,j=[s.mercatorXfromLng(C.center.lng),s.mercatorYfromLat(C.center.lat)];for(let $=0;$({u_image:0,u_color_ramp:1,u_opacity:D.paint.get("heatmap-opacity")}))(0,v),v.id,_.viewportBuffer,_.quadTriangleIndexBuffer,_.viewportSegments,v.paint,_.transform.zoom)}(d,c))},line:function(d,o,c,f){if(d.renderPass!=="translucent")return;const _=c.paint.get("line-opacity"),v=c.paint.get("line-width");if(_.constantOr(1)===0||v.constantOr(1)===0)return;const E=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),S=d.colorModeForRenderPass(),C=d.terrain&&d.terrain.renderingToTexture?1:s.exported.devicePixelRatio,z=c.paint.get("line-dasharray"),P=z.constantOr(1),D=c.layout.get("line-cap"),j=c.paint.get("line-pattern"),$=j.constantOr(1),W=c.paint.get("line-gradient"),Z=$?"linePattern":"line",H=d.context,O=H.gl,G=(Q=>{const he=[];cl(Q)&&he.push("RENDER_LINE_DASH"),Q.paint.get("line-gradient")&&he.push("RENDER_LINE_GRADIENT");const pe=Q.paint.get("line-trim-offset");pe[0]===0&&pe[1]===0||he.push("RENDER_LINE_TRIM_OFFSET");const de=Q.paint.get("line-pattern").constantOr(1),ye=Q.paint.get("line-opacity").constantOr(1)!==1;return!de&&ye&&he.push("RENDER_LINE_ALPHA_DISCARD"),he})(c);let J=G.includes("RENDER_LINE_ALPHA_DISCARD");d.terrain&&d.terrain.clipOrMaskOverlapStencilType()&&(J=!1);for(const Q of f){const he=o.getTile(Q);if($&&!he.patternsLoaded())continue;const pe=he.getBucket(c);if(!pe)continue;d.prepareDrawTile();const de=pe.programConfigurations.get(c.id),ye=d.useProgram(Z,de,G),_e=j.constantOr(null);if(_e&&he.imageAtlas){const Oe=he.imageAtlas.patternPositions[_e.toString()];Oe&&de.setConstantPatternPositions(Oe)}const Te=z.constantOr(null),Ze=D.constantOr(null);if(!$&&Te&&Ze&&he.lineAtlas){const Oe=he.lineAtlas.getDash(Te,Ze);Oe&&de.setConstantPatternPositions(Oe)}let[we,Be]=c.paint.get("line-trim-offset");(Ze==="round"||Ze==="square")&&we!==Be&&(we===0&&(we-=1),Be===1&&(Be+=1));const Ce=d.terrain?Q.projMatrix:null,qe=$?ll(d,he,c,Ce,C):Gg(d,he,c,Ce,pe.lineClipsArray.length,C,[we,Be]);if(W){const Oe=pe.gradients[c.id];let He=Oe.texture;if(c.gradientVersion!==Oe.version){let Ge=256;if(c.stepInterpolant){const Xe=o.getSource().maxzoom,gt=Q.canonical.z===Xe?Math.ceil(1<{ye.draw(H,O.TRIANGLES,E,Oe,S,s.CullFaceMode.disabled,qe,c.id,pe.layoutVertexBuffer,pe.indexBuffer,pe.segments,c.paint,d.transform.zoom,de,[pe.layoutVertexBuffer2])};if(J){const Oe=d.stencilModeForClipping(Q).ref;Oe===0&&d.terrain&&H.clear({stencil:0});const He={func:O.EQUAL,mask:255};qe.u_alpha_discard_threshold=.8,Ee(new s.StencilMode(He,Oe,255,O.KEEP,O.KEEP,O.INVERT)),qe.u_alpha_discard_threshold=0,Ee(new s.StencilMode(He,Oe,255,O.KEEP,O.KEEP,O.KEEP))}else Ee(d.stencilModeForClipping(Q))}J&&(d.resetStencilClippingMasks(),d.terrain&&H.clear({stencil:0}))},fill:function(d,o,c,f){const _=c.paint.get("fill-color"),v=c.paint.get("fill-opacity");if(v.constantOr(1)===0)return;const E=d.colorModeForRenderPass(),S=c.paint.get("fill-pattern"),C=d.opaquePassEnabledForLayer()&&!S.constantOr(1)&&_.constantOr(s.Color.transparent).a===1&&v.constantOr(0)===1?"opaque":"translucent";if(d.renderPass===C){const z=d.depthModeForSublayer(1,d.renderPass==="opaque"?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly);Rp(d,o,c,f,z,E,!1)}if(d.renderPass==="translucent"&&c.paint.get("fill-antialias")){const z=d.depthModeForSublayer(c.getPaintProperty("fill-outline-color")?2:0,s.DepthMode.ReadOnly);Rp(d,o,c,f,z,E,!0)}},"fill-extrusion":function(d,o,c,f){const _=c.paint.get("fill-extrusion-opacity");if(_!==0&&d.renderPass==="translucent"){const v=new s.DepthMode(d.context.gl.LEQUAL,s.DepthMode.ReadWrite,d.depthRangeFor3D);if(_!==1||c.paint.get("fill-extrusion-pattern").constantOr(1))yc(d,o,c,f,v,s.StencilMode.disabled,s.ColorMode.disabled),yc(d,o,c,f,v,d.stencilModeFor3D(),d.colorModeForRenderPass()),d.resetStencilClippingMasks();else{const E=d.colorModeForRenderPass();yc(d,o,c,f,v,s.StencilMode.disabled,E)}}},hillshade:function(d,o,c,f){if(d.renderPass!=="offscreen"&&d.renderPass!=="translucent")return;const _=d.context,v=d.depthModeForSublayer(0,s.DepthMode.ReadOnly),E=d.colorModeForRenderPass(),S=d.terrain&&d.terrain.renderingToTexture,[C,z]=d.renderPass!=="translucent"||S?[{},f]:d.stencilConfigForOverlap(f);for(const P of z){const D=o.getTile(P);if(D.needsHillshadePrepare&&d.renderPass==="offscreen")Sp(d,D,c,v,s.StencilMode.disabled,E);else if(d.renderPass==="translucent"){const j=S&&d.terrain?d.terrain.stencilModeForRTTOverlap(P):C[P.overscaledZ];Tp(d,P,D,c,v,j,E)}}_.viewport.set([0,0,d.width,d.height]),d.resetStencilClippingMasks()},raster:function(d,o,c,f,_,v){if(d.renderPass!=="translucent"||c.paint.get("raster-opacity")===0||!f.length)return;const E=d.context,S=E.gl,C=o.getSource(),z=d.useProgram("raster"),P=d.colorModeForRenderPass(),D=d.terrain&&d.terrain.renderingToTexture,[j,$]=C instanceof Rt||D?[{},f]:d.stencilConfigForOverlap(f),W=$[$.length-1].overscaledZ,Z=!d.options.moving;for(const H of $){const O=D?s.DepthMode.disabled:d.depthModeForSublayer(H.overscaledZ-W,c.paint.get("raster-opacity")===1?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly,S.LESS),G=H.toUnwrapped(),J=o.getTile(H);if(D&&(!J||!J.hasData()))continue;const Q=D?H.projMatrix:d.transform.calculateProjMatrix(G,Z),he=d.terrain&&D?d.terrain.stencilModeForRTTOverlap(H):j[H.overscaledZ],pe=v?0:c.paint.get("raster-fade-duration");J.registerFadeDuration(pe);const de=o.findLoadedParent(H,0),ye=oh(J,de,o,d.transform,pe);let _e,Te;d.terrain&&d.terrain.prepareDrawTile();const Ze=c.paint.get("raster-resampling")==="nearest"?S.NEAREST:S.LINEAR;E.activeTexture.set(S.TEXTURE0),J.texture.bind(Ze,S.CLAMP_TO_EDGE),E.activeTexture.set(S.TEXTURE1),de?(de.texture.bind(Ze,S.CLAMP_TO_EDGE),_e=Math.pow(2,de.tileID.overscaledZ-J.tileID.overscaledZ),Te=[J.tileID.canonical.x*_e%1,J.tileID.canonical.y*_e%1]):J.texture.bind(Ze,S.CLAMP_TO_EDGE),J.texture.useMipmap&&E.extTextureFilterAnisotropic&&d.transform.pitch>20&&S.texParameterf(S.TEXTURE_2D,E.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,E.extTextureFilterAnisotropicMax);const we=fh(Q,Te||[0,0],_e||1,ye,c,C instanceof Rt?C.perspectiveTransform:[0,0]);if(d.prepareDrawProgram(E,z,G),C instanceof Rt)C.boundsBuffer&&C.boundsSegments&&z.draw(E,S.TRIANGLES,O,s.StencilMode.disabled,P,s.CullFaceMode.disabled,we,c.id,C.boundsBuffer,d.quadTriangleIndexBuffer,C.boundsSegments);else{const{tileBoundsBuffer:Be,tileBoundsIndexBuffer:Ce,tileBoundsSegments:qe}=d.getTileBoundsBuffers(J);z.draw(E,S.TRIANGLES,O,he,P,s.CullFaceMode.disabled,we,c.id,Be,Ce,qe)}}d.resetStencilClippingMasks()},background:function(d,o,c,f){const _=c.paint.get("background-color"),v=c.paint.get("background-opacity");if(v===0)return;const E=d.context,S=E.gl,C=d.transform,z=C.tileSize,P=c.paint.get("background-pattern");if(d.isPatternMissing(P))return;const D=!P&&_.a===1&&v===1&&d.opaquePassEnabledForLayer()?"opaque":"translucent";if(d.renderPass!==D)return;const j=s.StencilMode.disabled,$=d.depthModeForSublayer(0,D==="opaque"?s.DepthMode.ReadWrite:s.DepthMode.ReadOnly),W=d.colorModeForRenderPass(),Z=d.useProgram(P?"backgroundPattern":"background");let H,O=f;O||(H=d.getBackgroundTiles(),O=Object.values(H).map(G=>G.tileID)),P&&(E.activeTexture.set(S.TEXTURE0),d.imageManager.bind(d.context));for(const G of O){const J=G.toUnwrapped(),Q=f?G.projMatrix:d.transform.calculateProjMatrix(J);d.prepareDrawTile();const he=o?o.getTile(G):H?H[G.key]:new s.Tile(G,z,C.zoom,d),pe=P?$g(Q,v,d,P,{tileID:G,tileSize:z}):gh(Q,v,_);d.prepareDrawProgram(E,Z,J);const{tileBoundsBuffer:de,tileBoundsIndexBuffer:ye,tileBoundsSegments:_e}=d.getTileBoundsBuffers(he);Z.draw(E,S.TRIANGLES,$,j,W,s.CullFaceMode.disabled,pe,c.id,de,ye,_e)}},sky:function(d,o,c){const f=d.transform,_=f.projection.name==="mercator"||f.projection.name==="globe"?1:s.smoothstep(7,8,f.zoom),v=c.paint.get("sky-opacity")*_;if(v===0)return;const E=d.context,S=c.paint.get("sky-type"),C=new s.DepthMode(E.gl.LEQUAL,s.DepthMode.ReadOnly,[0,1]),z=d.frameCounter/1e3%1;S==="atmosphere"?d.renderPass==="offscreen"?c.needsSkyboxCapture(d)&&(function(P,D,j,$){const W=P.context,Z=W.gl;let H=D.skyboxFbo;if(!H){H=D.skyboxFbo=W.createFramebuffer(32,32,!1),D.skyboxGeometry=new xc(W),D.skyboxTexture=W.gl.createTexture(),Z.bindTexture(Z.TEXTURE_CUBE_MAP,D.skyboxTexture),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_WRAP_S,Z.CLAMP_TO_EDGE),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_WRAP_T,Z.CLAMP_TO_EDGE),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_MIN_FILTER,Z.LINEAR),Z.texParameteri(Z.TEXTURE_CUBE_MAP,Z.TEXTURE_MAG_FILTER,Z.LINEAR);for(let Q=0;Q<6;++Q)Z.texImage2D(Z.TEXTURE_CUBE_MAP_POSITIVE_X+Q,0,Z.RGBA,32,32,0,Z.RGBA,Z.UNSIGNED_BYTE,null)}W.bindFramebuffer.set(H.framebuffer),W.viewport.set([0,0,32,32]);const O=D.getCenter(P,!0),G=P.useProgram("skyboxCapture"),J=new Float64Array(16);s.identity(J),s.rotateY(J,J,.5*-Math.PI),sr(W,D,G,J,O,0),s.identity(J),s.rotateY(J,J,.5*Math.PI),sr(W,D,G,J,O,1),s.identity(J),s.rotateX(J,J,.5*-Math.PI),sr(W,D,G,J,O,2),s.identity(J),s.rotateX(J,J,.5*Math.PI),sr(W,D,G,J,O,3),s.identity(J),sr(W,D,G,J,O,4),s.identity(J),s.rotateY(J,J,Math.PI),sr(W,D,G,J,O,5),W.viewport.set([0,0,P.width,P.height])}(d,c),c.markSkyboxValid(d)):d.renderPass==="sky"&&function(P,D,j,$,W){const Z=P.context,H=Z.gl,O=P.transform,G=P.useProgram("skybox");Z.activeTexture.set(H.TEXTURE0),H.bindTexture(H.TEXTURE_CUBE_MAP,D.skyboxTexture);const J=((Q,he,pe,de,ye)=>({u_matrix:Q,u_sun_direction:he,u_cubemap:0,u_opacity:de,u_temporal_offset:ye}))(O.skyboxMatrix,D.getCenter(P,!1),0,$,W);P.prepareDrawProgram(Z,G),G.draw(Z,H.TRIANGLES,j,s.StencilMode.disabled,P.colorModeForRenderPass(),s.CullFaceMode.backCW,J,"skybox",D.skyboxGeometry.vertexBuffer,D.skyboxGeometry.indexBuffer,D.skyboxGeometry.segment)}(d,c,C,v,z):S==="gradient"&&d.renderPass==="sky"&&function(P,D,j,$,W){const Z=P.context,H=Z.gl,O=P.transform,G=P.useProgram("skyboxGradient");D.skyboxGeometry||(D.skyboxGeometry=new xc(Z)),Z.activeTexture.set(H.TEXTURE0);let J=D.colorRampTexture;J||(J=D.colorRampTexture=new s.Texture(Z,D.colorRamp,H.RGBA)),J.bind(H.LINEAR,H.CLAMP_TO_EDGE);const Q=((he,pe,de,ye,_e)=>({u_matrix:he,u_color_ramp:0,u_center_direction:pe,u_radius:s.degToRad(de),u_opacity:ye,u_temporal_offset:_e}))(O.skyboxMatrix,D.getCenter(P,!1),D.paint.get("sky-gradient-radius"),$,W);P.prepareDrawProgram(Z,G),G.draw(Z,H.TRIANGLES,j,s.StencilMode.disabled,P.colorModeForRenderPass(),s.CullFaceMode.backCW,Q,"skyboxGradient",D.skyboxGeometry.vertexBuffer,D.skyboxGeometry.indexBuffer,D.skyboxGeometry.segment)}(d,c,C,v,z)},debug:function(d,o,c){for(let f=0;f_)return void(this.transform.fogCullDistSq=null);const v=f+.78*(_-f);this.transform.fogCullDistSq=v*v}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(o,c){if(this.width=o*s.exported.devicePixelRatio,this.height=c*s.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const f of this.style.order)this.style._layers[f].resize()}setup(){const o=this.context,c=new s.StructArrayLayout2i4;c.emplaceBack(0,0),c.emplaceBack(s.EXTENT,0),c.emplaceBack(0,s.EXTENT),c.emplaceBack(s.EXTENT,s.EXTENT),this.tileExtentBuffer=o.createVertexBuffer(c,s.posAttributes.members),this.tileExtentSegments=s.SegmentVector.simpleSegment(0,0,4,2);const f=new s.StructArrayLayout2i4;f.emplaceBack(0,0),f.emplaceBack(s.EXTENT,0),f.emplaceBack(0,s.EXTENT),f.emplaceBack(s.EXTENT,s.EXTENT),this.debugBuffer=o.createVertexBuffer(f,s.posAttributes.members),this.debugSegments=s.SegmentVector.simpleSegment(0,0,4,5);const _=new s.StructArrayLayout2i4;_.emplaceBack(-1,-1),_.emplaceBack(1,-1),_.emplaceBack(-1,1),_.emplaceBack(1,1),this.viewportBuffer=o.createVertexBuffer(_,s.posAttributes.members),this.viewportSegments=s.SegmentVector.simpleSegment(0,0,4,2);const v=new s.StructArrayLayout4i8;v.emplaceBack(0,0,0,0),v.emplaceBack(s.EXTENT,0,s.EXTENT,0),v.emplaceBack(0,s.EXTENT,0,s.EXTENT),v.emplaceBack(s.EXTENT,s.EXTENT,s.EXTENT,s.EXTENT),this.mercatorBoundsBuffer=o.createVertexBuffer(v,s.boundsAttributes.members),this.mercatorBoundsSegments=s.SegmentVector.simpleSegment(0,0,4,2);const E=new s.StructArrayLayout3ui6;E.emplaceBack(0,1,2),E.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=o.createIndexBuffer(E);const S=new s.StructArrayLayout1ui2;for(const z of[0,1,3,2,0])S.emplaceBack(z);this.debugIndexBuffer=o.createIndexBuffer(S),this.emptyTexture=new s.Texture(o,new s.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),o.gl.RGBA),this.identityMat=s.create();const C=this.context.gl;this.stencilClearMode=new s.StencilMode({func:C.ALWAYS,mask:0},0,255,C.ZERO,C.ZERO,C.ZERO),this.loadTimeStamps.push(s.window.performance.now()),this.atmosphereBuffer=new Np(this.context)}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(o){return o._makeTileBoundsBuffers(this.context,this.transform.projection),o._tileBoundsBuffer?{tileBoundsBuffer:o._tileBoundsBuffer,tileBoundsIndexBuffer:o._tileBoundsIndexBuffer,tileBoundsSegments:o._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const o=this.context,c=o.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(o,c.TRIANGLES,s.DepthMode.disabled,this.stencilClearMode,s.ColorMode.disabled,s.CullFaceMode.disabled,sl(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(o,c,f){if(!c||this.currentStencilSource===c.id||!o.isTileClipped()||!f||f.length===0)return;if(this._tileClippingMaskIDs&&!this.terrain){let S=!1;for(const C of f)if(this._tileClippingMaskIDs[C.key]===void 0){S=!0;break}if(!S)return}this.currentStencilSource=c.id;const _=this.context,v=_.gl;this.nextStencilID+f.length>256&&this.clearStencil(),_.setColorMode(s.ColorMode.disabled),_.setDepthMode(s.DepthMode.disabled);const E=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const S of f){const C=c.getTile(S),z=this._tileClippingMaskIDs[S.key]=this.nextStencilID++,{tileBoundsBuffer:P,tileBoundsIndexBuffer:D,tileBoundsSegments:j}=this.getTileBoundsBuffers(C);E.draw(_,v.TRIANGLES,s.DepthMode.disabled,new s.StencilMode({func:v.ALWAYS,mask:0},z,255,v.KEEP,v.KEEP,v.REPLACE),s.ColorMode.disabled,s.CullFaceMode.disabled,sl(S.projMatrix),"$clipping",P,D,j)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const o=this.nextStencilID++,c=this.context.gl;return new s.StencilMode({func:c.NOTEQUAL,mask:255},o,255,c.KEEP,c.KEEP,c.REPLACE)}stencilModeForClipping(o){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(o);const c=this.context.gl;return new s.StencilMode({func:c.EQUAL,mask:255},this._tileClippingMaskIDs[o.key],0,c.KEEP,c.KEEP,c.REPLACE)}stencilConfigForOverlap(o){const c=this.context.gl,f=o.sort((E,S)=>S.overscaledZ-E.overscaledZ),_=f[f.length-1].overscaledZ,v=f[0].overscaledZ-_+1;if(v>1){this.currentStencilSource=void 0,this.nextStencilID+v>256&&this.clearStencil();const E={};for(let S=0;S=0;this.currentLayer--){const z=this.style._layers[f[this.currentLayer]],P=o._getLayerSourceCache(z);if(z.isSky())continue;const D=P?E[P.id]:void 0;this._renderTileClippingMasks(z,P,D),this.renderLayer(this,P,z,D)}if(this.style.fog&&this.transform.projection.supportsFog&&function(z,P){const D=z.context,j=D.gl,$=z.transform,W=new s.DepthMode(j.LEQUAL,s.DepthMode.ReadOnly,[0,1]),Z=z.useProgram("globeAtmosphere",null,$.projection.name==="globe"?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"]),H=s.globeToMercatorTransition($.zoom),O=P.properties.get("color").toArray01(),G=P.properties.get("high-color").toArray01(),J=P.properties.get("space-color").toArray01PremultipliedAlpha(),Q=s.identity$1([]);s.rotateY$1(Q,Q,-s.degToRad($._center.lng)),s.rotateX$1(Q,Q,s.degToRad($._center.lat)),s.rotateZ$1(Q,Q,$.angle),s.rotateX$1(Q,Q,-$._pitch);const he=s.fromQuat(new Float32Array(16),Q),pe=s.mapValue(P.properties.get("star-intensity"),0,1,0,.25),de=5e-4,ye=s.mapValue(P.properties.get("horizon-blend"),0,1,de,.25),_e=s.globeUseCustomAntiAliasing(z,D,$)&&ye===de?$.worldSize/(2*Math.PI*1.025)-1:$.globeRadius,Te=z.frameCounter/1e3%1,Ze=s.length($.globeCenterInViewSpace),we=Math.sqrt(Math.pow(Ze,2)-Math.pow(_e,2)),Be=Math.acos(we/Ze),Ce=((Ee,Oe,He,Ge,Xe,gt,Et,dt,wt,Ut,Ot,mt,en,rn)=>({u_frustum_tl:Ee,u_frustum_tr:Oe,u_frustum_br:He,u_frustum_bl:Ge,u_horizon:Xe,u_transition:gt,u_fadeout_range:Et,u_color:dt,u_high_color:wt,u_space_color:Ut,u_star_intensity:Ot,u_star_size:5*s.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:mt,u_horizon_angle:en,u_rotation_matrix:rn}))($.frustumCorners.TL,$.frustumCorners.TR,$.frustumCorners.BR,$.frustumCorners.BL,$.frustumCorners.horizon,H,ye,O,G,J,pe,Te,Be,he);z.prepareDrawProgram(D,Z);const qe=z.atmosphereBuffer;qe&&Z.draw(D,j.TRIANGLES,W,s.StencilMode.disabled,s.ColorMode.alphaBlended,s.CullFaceMode.backCW,Ce,"skybox",qe.vertexBuffer,qe.indexBuffer,qe.segments)}(this,this.style.fog),this.renderPass="sky",(s.globeToMercatorTransition(this.transform.zoom)>0||this.transform.projection.name!=="globe")&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const D=o._getLayerSourceCache(P);D&&!P.isHidden(this.transform.zoom)&&(!z||z.getSource().maxzoom0?c.pop():null}isPatternMissing(o){return o===null||o!==void 0&&!this.imageManager.getPattern(o.toString())}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture}currentGlobalDefines(){const o=this.terrain&&this.terrain.renderingToTexture,c=this.terrain&&this.terrain.exaggeration()===0,f=this.style&&this.style.fog,_=[];return this.terrainRenderModeElevated()&&_.push("TERRAIN"),this.transform.projection.name==="globe"&&_.push("GLOBE"),c&&_.push("ZERO_EXAGGERATION"),f&&!o&&f.getOpacity(this.transform.pitch)!==0&&_.push("FOG"),o&&_.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&_.push("OVERDRAW_INSPECTOR"),_}useProgram(o,c,f){this.cache=this.cache||{};const _=f||[],v=this.currentGlobalDefines().concat(_),E=Zt.cacheKey(th[o],o,v,c);return this.cache[E]||(this.cache[E]=new Zt(this.context,o,th[o],c,_h[o],v)),this.cache[E]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const o=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(o.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=s.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new s.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy()}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile()}prepareDrawProgram(o,c,f){if(this.terrain&&this.terrain.renderingToTexture)return;const _=this.style.fog;if(_){const v=_.getOpacity(this.transform.pitch),E=((S,C,z,P,D,j,$,W,Z,H,O)=>{const G=S.transform,J=C.properties.get("color").toArray01();J[3]=P;const Q=S.frameCounter/1e3%1;return{u_fog_matrix:z?G.calculateFogTileMatrix(z):S.identityMat,u_fog_range:C.getFovAdjustedRange(G._fov),u_fog_color:J,u_fog_horizon_blend:C.properties.get("horizon-blend"),u_fog_temporal_offset:Q,u_frustum_tl:D,u_frustum_tr:j,u_frustum_br:$,u_frustum_bl:W,u_globe_pos:Z,u_globe_radius:H,u_viewport:O,u_globe_transition:s.globeToMercatorTransition(G.zoom),u_is_globe:+(G.projection.name==="globe")}})(this,_,f,v,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*s.exported.devicePixelRatio,this.transform.height*s.exported.devicePixelRatio]);c.setFogUniformValues(o,E)}}setTileLoadedFlag(o){this.tileLoaded=o}saveCanvasCopy(){const o=this.canvasCopy();o&&(this.frameCopies.push(o),this.tileLoaded=!1)}canvasCopy(){const o=this.context.gl,c=o.createTexture();return o.bindTexture(o.TEXTURE_2D,c),o.copyTexImage2D(o.TEXTURE_2D,0,o.RGBA,0,0,o.drawingBufferWidth,o.drawingBufferHeight,0),c}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;const o=this.style&&this.style.fog;return!!o&&o.getOpacity(this.transform.pitch)!==0}getBackgroundTiles(){const o=this._backgroundTiles,c=this._backgroundTiles={},f=this.transform.coveringTiles({tileSize:512});for(const _ of f)c[_.key]=o[_.key]||new s.Tile(_,512,this.transform.tileZoom,this);return c}clearBackgroundTiles(){this._backgroundTiles={}}}class wc{constructor(o=0,c=0,f=0,_=0){if(isNaN(o)||o<0||isNaN(c)||c<0||isNaN(f)||f<0||isNaN(_)||_<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=o,this.bottom=c,this.left=f,this.right=_}interpolate(o,c,f){return c.top!=null&&o.top!=null&&(this.top=s.number(o.top,c.top,f)),c.bottom!=null&&o.bottom!=null&&(this.bottom=s.number(o.bottom,c.bottom,f)),c.left!=null&&o.left!=null&&(this.left=s.number(o.left,c.left,f)),c.right!=null&&o.right!=null&&(this.right=s.number(o.right,c.right,f)),this}getCenter(o,c){const f=s.clamp((this.left+o-this.right)/2,0,o),_=s.clamp((this.top+c-this.bottom)/2,0,c);return new s.Point(f,_)}equals(o){return this.top===o.top&&this.bottom===o.bottom&&this.left===o.left&&this.right===o.right}clone(){return new wc(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function bc(d,o){const c=s.getColumn(d,3);s.fromQuat(d,o),s.setColumn(d,3,c)}function Wt(d,o){const c=s.identity$1([]);return s.rotateZ$1(c,c,-o),s.rotateX$1(c,c,-d),c}function pl(d,o){const c=[d[0],d[1],0],f=[o[0],o[1],0];if(s.length(c)>=1e-15){const E=s.normalize([],c);s.scale$2(f,E,s.dot(f,E)),o[0]=f[0],o[1]=f[1]}const _=s.cross([],o,d);if(s.len(_)<1e-15)return null;const v=Math.atan2(-_[1],_[0]);return Wt(Math.atan2(Math.sqrt(d[0]*d[0]+d[1]*d[1]),-d[2]),v)}class Up{constructor(o,c){this.position=o,this.orientation=c}get position(){return this._position}set position(o){if(o){const c=o instanceof s.MercatorCoordinate?o:new s.MercatorCoordinate(o[0],o[1],o[2]);this._renderWorldCopies&&(c.x=s.wrap(c.x,0,1)),this._position=c}else this._position=null}lookAtPoint(o,c){if(this.orientation=null,!this.position)return;const f=this.position,_=this._elevation?this._elevation.getAtPointOrZero(s.MercatorCoordinate.fromLngLat(o)):0,v=s.MercatorCoordinate.fromLngLat(o,_),E=[v.x-f.x,v.y-f.y,v.z-f.z];c||(c=[0,0,1]),c[2]=Math.abs(c[2]),this.orientation=pl(E,c)}setPitchBearing(o,c){this.orientation=Wt(s.degToRad(o),s.degToRad(-c))}}class Ec{constructor(o,c){this._transform=s.identity([]),this.orientation=c,this.position=o}get mercatorPosition(){const o=this.position;return new s.MercatorCoordinate(o[0],o[1],o[2])}get position(){const o=s.getColumn(this._transform,3);return[o[0],o[1],o[2]]}set position(o){var c;o&&s.setColumn(this._transform,3,[(c=o)[0],c[1],c[2],1])}get orientation(){return this._orientation}set orientation(o){this._orientation=o||s.identity$1([]),o&&bc(this._transform,this._orientation)}getPitchBearing(){const o=this.forward(),c=this.right();return{bearing:Math.atan2(-c[1],c[0]),pitch:Math.atan2(Math.sqrt(o[0]*o[0]+o[1]*o[1]),-o[2])}}setPitchBearing(o,c){this._orientation=Wt(o,c),bc(this._transform,this._orientation)}forward(){const o=s.getColumn(this._transform,2);return[-o[0],-o[1],-o[2]]}up(){const o=s.getColumn(this._transform,1);return[-o[0],-o[1],-o[2]]}right(){const o=s.getColumn(this._transform,0);return[o[0],o[1],o[2]]}getCameraToWorld(o,c){const f=new Float64Array(16);return s.invert(f,this.getWorldToCamera(o,c)),f}getWorldToCameraPosition(o,c,f){const _=this.position;s.scale$2(_,_,-o);const v=new Float64Array(16);return s.fromScaling(v,[f,f,f]),s.translate(v,v,_),v[10]*=c,v}getWorldToCamera(o,c){const f=new Float64Array(16),_=new Float64Array(4),v=this.position;return s.conjugate(_,this._orientation),s.scale$2(v,v,-o),s.fromQuat(f,_),s.translate(f,f,v),f[1]*=-1,f[5]*=-1,f[9]*=-1,f[13]*=-1,f[8]*=c,f[9]*=c,f[10]*=c,f[11]*=c,f}getCameraToClipPerspective(o,c,f,_){const v=new Float64Array(16);return s.perspective(v,o,c,f,_),v}getDistanceToElevation(o,c=!1){const f=o===0?0:s.mercatorZfromAltitude(o,c?s.latFromMercatorY(this.position[1]):this.position[1]),_=this.forward();return(f-this.position[2])/_[2]}clone(){return new Ec([...this.position],[...this.orientation])}}function na(d,o){const c=Tc(d.projection,d.zoom,d.width,d.height),f=function(v,E,S,C,z){const P=new s.LngLat(S.lng-180*ho,S.lat),D=new s.LngLat(S.lng+180*ho,S.lat),j=v.project(P.lng,P.lat),$=v.project(D.lng,D.lat),W=-Math.atan2($.y-j.y,$.x-j.x),Z=s.MercatorCoordinate.fromLngLat(S);Z.y=s.clamp(Z.y,-1+ho,1-ho);const H=Z.toLngLat(),O=v.project(H.lng,H.lat),G=s.MercatorCoordinate.fromLngLat(H);G.x+=ho;const J=G.toLngLat(),Q=v.project(J.lng,J.lat),he=Sc(Q.x-O.x,Q.y-O.y,W),pe=s.MercatorCoordinate.fromLngLat(H);pe.y+=ho;const de=pe.toLngLat(),ye=v.project(de.lng,de.lat),_e=Sc(ye.x-O.x,ye.y-O.y,W),Te=Math.abs(he.x)/Math.abs(_e.y),Ze=s.identity([]);s.rotateZ(Ze,Ze,-W*(1-(z?0:C)));const we=s.identity([]);return s.scale(we,we,[1,1-(1-Te)*C,1]),we[4]=-_e.x/_e.y*C,s.rotateZ(we,we,W),s.multiply(we,Ze,we),we}(d.projection,0,d.center,c,o),_=jp(d);return s.scale(f,f,[_,_,1]),f}function jp(d){const o=d.projection,c=Tc(d.projection,d.zoom,d.width,d.height),f=Vp(o,d.center),_=Vp(o,s.LngLat.convert(o.center));return Math.pow(2,f*c+(1-c)*_)}function Tc(d,o,c,f,_=1/0){const v=d.range;if(!v)return 0;const E=Math.min(_,Math.max(c,f)),S=Math.log(E/1024)/Math.LN2;return s.smoothstep(v[0]+S,v[1]+S,o)}const ho=1/4e4;function Vp(d,o){const c=s.clamp(o.lat,-s.MAX_MERCATOR_LATITUDE,s.MAX_MERCATOR_LATITUDE),f=new s.LngLat(o.lng-180*ho,c),_=new s.LngLat(o.lng+180*ho,c),v=d.project(f.lng,c),E=d.project(_.lng,c),S=s.MercatorCoordinate.fromLngLat(f),C=s.MercatorCoordinate.fromLngLat(_),z=E.x-v.x,P=E.y-v.y,D=C.x-S.x,j=C.y-S.y,$=Math.sqrt((D*D+j*j)/(z*z+P*P));return Math.log($)/Math.LN2}function Sc(d,o,c){const f=Math.cos(c),_=Math.sin(c);return{x:d*f-o*_,y:d*_+o*f}}class ia{constructor(o,c,f,_,v,E,S){this.tileSize=512,this._renderWorldCopies=v===void 0||v,this._minZoom=o||0,this._maxZoom=c||22,this._minPitch=f??0,this._maxPitch=_??60,this.setProjection(E),this.setMaxBounds(S),this.width=0,this.height=0,this._center=new s.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new wc,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Ec,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1}clone(){const o=new ia(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return o._elevation=this._elevation,o._centerAltitude=this._centerAltitude,o._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,o.tileSize=this.tileSize,o.mercatorFromTransition=this.mercatorFromTransition,o.width=this.width,o.height=this.height,o.cameraElevationReference=this.cameraElevationReference,o._center=this._center,o._setZoom(this.zoom),o._seaLevelZoom=this._seaLevelZoom,o.angle=this.angle,o._fov=this._fov,o._pitch=this._pitch,o._nearZ=this._nearZ,o._farZ=this._farZ,o._averageElevation=this._averageElevation,o._unmodified=this._unmodified,o._edgeInsets=this._edgeInsets.clone(),o._camera=this._camera.clone(),o._calcMatrices(),o.freezeTileCoverage=this.freezeTileCoverage,o.frustumCorners=this.frustumCorners,o}get elevation(){return this._elevation}set elevation(o){this._elevation!==o&&(this._elevation=o,this._updateCameraOnTerrain(),this._calcMatrices())}updateElevation(o,c=!1){const f=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(this._seaLevelZoom==null||f)&&this._updateCameraOnTerrain(),(o||f)&&this._constrainCamera(c),this._calcMatrices()}getProjection(){return s.pick(this.projection,["name","center","parallels"])}setProjection(o){this.projectionOptions=o||{name:"mercator"};const c=this.projection?this.getProjection():void 0;this.projection=s.getProjection(this.projectionOptions);const f=!M(c,this.getProjection());return f&&this._calcMatrices(),this.mercatorFromTransition=!1,f}setMercatorFromTransition(){const o=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:"mercator"},this.projection=s.getProjection({name:"mercator"});const c=o!==this.projection.name;return c&&this._calcMatrices(),c}get minZoom(){return this._minZoom}set minZoom(o){this._minZoom!==o&&(this._minZoom=o,this.zoom=Math.max(this.zoom,o))}get maxZoom(){return this._maxZoom}set maxZoom(o){this._maxZoom!==o&&(this._maxZoom=o,this.zoom=Math.min(this.zoom,o))}get minPitch(){return this._minPitch}set minPitch(o){this._minPitch!==o&&(this._minPitch=o,this.pitch=Math.max(this.pitch,o))}get maxPitch(){return this._maxPitch}set maxPitch(o){this._maxPitch!==o&&(this._maxPitch=o,this.pitch=Math.min(this.pitch,o))}get renderWorldCopies(){return this._renderWorldCopies&&this.projection.supportsWorldCopies===!0}set renderWorldCopies(o){o===void 0?o=!0:o===null&&(o=!1),this._renderWorldCopies=o}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){const o=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(o))}get cameraWorldSize(){const o=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(o))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return s.mercatorZfromAltitude(this.center.lat,this.cameraWorldSizeForFog)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.Point(this.width,this.height)}get bearing(){return s.wrap(this.rotation,-180,180)}set bearing(o){this.rotation=o}get rotation(){return-this.angle/Math.PI*180}set rotation(o){const c=-o*Math.PI/180;var f;this.angle!==c&&(this._unmodified=!1,this.angle=c,this._calcMatrices(),this.rotationMatrix=(f=new s.ARRAY_TYPE(4),s.ARRAY_TYPE!=Float32Array&&(f[1]=0,f[2]=0),f[0]=1,f[3]=1,f),function(_,v,E){var S=v[0],C=v[1],z=v[2],P=v[3],D=Math.sin(E),j=Math.cos(E);_[0]=S*j+z*D,_[1]=C*j+P*D,_[2]=S*-D+z*j,_[3]=C*-D+P*j}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(o){const c=s.clamp(o,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==c&&(this._unmodified=!1,this._pitch=c,this._calcMatrices())}get aspect(){return this.width/this.height}get fov(){return this._fov/Math.PI*180}get fovX(){return this._fov}get fovY(){const o=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/o)}set fov(o){o=Math.max(.01,Math.min(60,o)),this._fov!==o&&(this._unmodified=!1,this._fov=s.degToRad(o),this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(o){this._averageElevation=o,this._calcFogMatrices(),this._distanceTileDataCache={}}get zoom(){return this._zoom}set zoom(o){const c=Math.min(Math.max(o,this.minZoom),this.maxZoom);this._zoom!==c&&(this._unmodified=!1,this._setZoom(c),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices())}_setZoom(o){this._zoom=o,this.scale=this.zoomScale(o),this.tileZoom=Math.floor(o),this.zoomFraction=o-this.tileZoom}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const o=this._elevation;this._centerAltitude=o.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=o.exaggeration(),this._updateSeaLevelZoom()}_updateSeaLevelZoom(){this._centerAltitudeValidForExaggeration!==void 0&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize))}sampleAverageElevation(){if(!this._elevation)return 0;const o=this._elevation,c=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],f=this.horizonLineFromTop();let _=0,v=0;for(let E=0;Eo.maxzoom&&(c=o.maxzoom);const E=this.locationCoordinate(this.center),S=this.center.lat,C=1<{const He=new s.MercatorCoordinate(Ee.x+25e-6,Ee.y,Ee.z),Ge=new s.MercatorCoordinate(Ee.x,Ee.y+25e-6,Ee.z),Xe=Ee.toLngLat(),gt=He.toLngLat(),Et=Ge.toLngLat(),dt=this.locationCoordinate(Xe),wt=this.locationCoordinate(gt),Ut=this.locationCoordinate(Et),Ot=Math.hypot(wt.x-dt.x,wt.y-dt.y),mt=Math.hypot(Ut.x-dt.x,Ut.y-dt.y);return Math.sqrt(Ot*mt)*he/25e-6},de=Ee=>{const Oe=J,He=Q;return{aabb:s.tileAABB(this,C,0,0,0,Ee,He,Oe,this.projection),zoom:0,x:0,y:0,minZ:He,maxZ:Oe,wrap:Ee,fullyVisible:!1}},ye=[];let _e=[];const Te=c,Ze=o.reparseOverscaled?f:c,we=Ee=>Ee*Ee,Be=we((Z-this._centerAltitude)*W),Ce=Ee=>{if(!this._elevation||!Ee.tileID||!v)return;const Oe=this._elevation.getMinMaxForTile(Ee.tileID),He=Ee.aabb;Oe?(He.min[2]=Oe.min,He.max[2]=Oe.max,He.center[2]=(He.min[2]+He.max[2])/2):(Ee.shouldSplit=qe(Ee),Ee.shouldSplit||(He.min[2]=He.max[2]=He.center[2]=this._centerAltitude))},qe=Ee=>{if(Ee.zoom=.9)return!0}else if(_&&(Ge=we(Ee.aabb.distanceZ(H)*W)),this.projection.isReprojectedInTileSpace&&f<=5){const dt=Math.pow(2,Ee.zoom),wt=pe(new s.MercatorCoordinate((Ee.x+.5)/dt,(Ee.y+.5)/dt));Xe=wt>.85?1:wt}const gt=Oe*Oe+He*He+Ge,Et=we((1<{if(wt*we(.707)0;){const Ee=ye.pop(),Oe=Ee.x,He=Ee.y;let Ge=Ee.fullyVisible;if(!Ge){const Xe=Ee.aabb.intersects(j);if(Xe===0)continue;Ge=Xe===2}if(Ee.zoom!==Te&&qe(Ee))for(let Xe=0;Xe<4;Xe++){const gt=(Oe<<1)+Xe%2,Et=(He<<1)+(Xe>>1),dt={aabb:v?Ee.aabb.quadrant(Xe):s.tileAABB(this,C,Ee.zoom+1,gt,Et,Ee.wrap,Ee.minZ,Ee.maxZ,this.projection),zoom:Ee.zoom+1,x:gt,y:Et,wrap:Ee.wrap,fullyVisible:Ge,tileID:void 0,shouldSplit:void 0,minZ:Ee.minZ,maxZ:Ee.maxZ};_&&!P&&(dt.tileID=new s.OverscaledTileID(Ee.zoom+1===Te?Ze:Ee.zoom+1,Ee.wrap,Ee.zoom+1,gt,Et),Ce(dt)),ye.push(dt)}else{const Xe=Ee.zoom===Te?Ze:Ee.zoom;if(o.minzoom&&o.minzoom>Xe)continue;const gt=z[0]-(.5+Oe+(Ee.wrap<{const Ge=[0,0,0,1],Xe=[s.EXTENT,s.EXTENT,0,1],gt=this.calculateFogTileMatrix(He.tileID.toUnwrapped());s.transformMat4$1(Ge,Ge,gt),s.transformMat4$1(Xe,Xe,gt);const Et=s.getAABBPointSquareDist(Ge,Xe);if(Et===0)return!0;let dt=!1;const wt=this._elevation;if(wt&&Et>Ee&&Oe!==0){const Ut=this.calculateProjMatrix(He.tileID.toUnwrapped());let Ot;o.isTerrainDEM||(Ot=wt.getMinMaxForTile(He.tileID)),Ot||(Ot={min:Q,max:J});const mt=s.furthestTileCorner(this.rotation),en=[mt[0]*s.EXTENT,mt[1]*s.EXTENT,Ot.max];s.transformMat4(en,en,Ut),dt=(1-en[1])*this.height*.5Ee.distanceSq-Oe.distanceSq).map(Ee=>Ee.tileID)}resize(o,c){this.width=o,this.height=c,this.pixelsToGLUnits=[2/o,-2/c],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(o){return Math.pow(2,o)}scaleZoom(o){return Math.log(o)/Math.LN2}project(o){const c=s.clamp(o.lat,-s.MAX_MERCATOR_LATITUDE,s.MAX_MERCATOR_LATITUDE),f=this.projection.project(o.lng,c);return new s.Point(f.x*this.worldSize,f.y*this.worldSize)}unproject(o){return this.projection.unproject(o.x/this.worldSize,o.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/s.mercatorZfromAltitude(1,this.center.lat)/this.worldSize}setLocationAtPoint(o,c){let f,_;const v=this.centerPoint;if(this.projection.name==="globe"){const S=this.worldSize;f=(c.x-v.x)/S,_=(c.y-v.y)/S}else{const S=this.pointCoordinate(c),C=this.pointCoordinate(v);f=S.x-C.x,_=S.y-C.y}const E=this.locationCoordinate(o);this.setLocation(new s.MercatorCoordinate(E.x-f,E.y-_))}setLocation(o){this.center=this.coordinateLocation(o),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(o){return this.projection.locationPoint(this,o)}locationPoint3D(o){return this.projection.locationPoint(this,o,!0)}pointLocation(o){return this.coordinateLocation(this.pointCoordinate(o))}pointLocation3D(o){return this.coordinateLocation(this.pointCoordinate3D(o))}locationCoordinate(o,c){const f=c?s.mercatorZfromAltitude(c,o.lat):void 0,_=this.projection.project(o.lng,o.lat);return new s.MercatorCoordinate(_.x,_.y,f)}coordinateLocation(o){return this.projection.unproject(o.x,o.y)}pointRayIntersection(o,c){const f=c??this._centerAltitude,_=[o.x,o.y,0,1],v=[o.x,o.y,1,1];s.transformMat4$1(_,_,this.pixelMatrixInverse),s.transformMat4$1(v,v,this.pixelMatrixInverse);const E=v[3];s.scale$1(_,_,1/_[3]),s.scale$1(v,v,1/E);const S=_[2],C=v[2];return{p0:_,p1:v,t:S===C?0:(f-S)/(C-S)}}screenPointToMercatorRay(o){const c=[o.x,o.y,0,1],f=[o.x,o.y,1,1];return s.transformMat4$1(c,c,this.pixelMatrixInverse),s.transformMat4$1(f,f,this.pixelMatrixInverse),s.scale$1(c,c,1/c[3]),s.scale$1(f,f,1/f[3]),c[2]=s.mercatorZfromAltitude(c[2],this._center.lat)*this.worldSize,f[2]=s.mercatorZfromAltitude(f[2],this._center.lat)*this.worldSize,s.scale$1(c,c,1/this.worldSize),s.scale$1(f,f,1/this.worldSize),new s.Ray([c[0],c[1],c[2]],s.normalize([],s.sub([],f,c)))}rayIntersectionCoordinate(o){const{p0:c,p1:f,t:_}=o,v=s.mercatorZfromAltitude(c[2],this._center.lat),E=s.mercatorZfromAltitude(f[2],this._center.lat);return new s.MercatorCoordinate(s.number(c[0],f[0],_)/this.worldSize,s.number(c[1],f[1],_)/this.worldSize,s.number(v,E,_))}pointCoordinate(o,c=this._centerAltitude){return this.projection.pointCoordinate(this,o.x,o.y,c)}pointCoordinate3D(o){if(!this.elevation)return this.pointCoordinate(o);let c=this.projection.pointCoordinate3D(this,o.x,o.y);if(c)return new s.MercatorCoordinate(c[0],c[1],c[2]);let f=0,_=this.horizonLineFromTop();if(o.y>_)return this.pointCoordinate(o);const v=.02*_,E=o.clone();for(let S=0;S<10&&_-f>v;S++){E.y=s.number(f,_,.66);const C=this.projection.pointCoordinate3D(this,E.x,E.y);C?(_=E.y,c=C):f=E.y}return c?new s.MercatorCoordinate(c[0],c[1],c[2]):this.pointCoordinate(o)}isPointAboveHorizon(o){return this.projection.isPointAboveHorizon(this,o)}isPointOnSurface(o){if(o.y<0||o.y>this.height||o.x<0||o.x>this.width)return!1;if(this.elevation||this.zoom>=s.GLOBE_ZOOM_THRESHOLD_MAX)return!this.isPointAboveHorizon(o);const c=this.pointCoordinate(o);return c.y>=0&&c.y<=1}_coordinatePoint(o,c){const f=c&&this.elevation?this.elevation.getAtPointOrZero(o,this._centerAltitude):this._centerAltitude,_=[o.x*this.worldSize,o.y*this.worldSize,f+o.toAltitude(),1];return s.transformMat4$1(_,_,this.pixelMatrix),_[3]>0?new s.Point(_[0]/_[3],_[1]/_[3]):new s.Point(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){const{top:o,left:c}=this._edgeInsets,f=this.height-this._edgeInsets.bottom,_=this.width-this._edgeInsets.right,v=this.pointLocation3D(new s.Point(c,o)),E=this.pointLocation3D(new s.Point(_,o)),S=this.pointLocation3D(new s.Point(_,f)),C=this.pointLocation3D(new s.Point(c,f));let z=Math.min(v.lng,E.lng,S.lng,C.lng),P=Math.max(v.lng,E.lng,S.lng,C.lng),D=Math.min(v.lat,E.lat,S.lat,C.lat),j=Math.max(v.lat,E.lat,S.lat,C.lat);const $=Math.pow(2,-this.zoom)/16*270,W=this.projection.name==="globe"?1:4,Z=(H,O,G,J,Q)=>{const he=(H+G)/2,pe=(O+J)/2,de=new s.Point(he,pe),{lng:ye,lat:_e}=this.pointLocation3D(de),Te=Math.max(0,z-ye,D-_e,ye-P,_e-j);z=Math.min(z,ye),P=Math.max(P,ye),D=Math.min(D,_e),j=Math.max(j,_e),(Q$)&&(Z(H,O,he,pe,Q+1),Z(he,pe,G,J,Q+1))};if(Z(c,o,_,o,1),Z(_,o,_,f,1),Z(_,f,c,f,1),Z(c,f,c,o,1),this.projection.name==="globe"){const[H,O]=s.polesInViewport(this);H?(j=90,P=180,z=-180):O&&(D=-90,P=180,z=-180)}return new s.LngLatBounds(new s.LngLat(z,D),new s.LngLat(P,j))}_getBoundsRectangular(o,c){const{top:f,left:_}=this._edgeInsets,v=this.height-this._edgeInsets.bottom,E=this.width-this._edgeInsets.right,S=new s.Point(_,f),C=new s.Point(E,f),z=new s.Point(E,v),P=new s.Point(_,v);let D=this.pointCoordinate(S,o),j=this.pointCoordinate(C,o);const $=this.pointCoordinate(z,c),W=this.pointCoordinate(P,c),Z=(H,O)=>(O.y-H.y)/(O.x-H.x);return D.y>1&&j.y>=0?D=new s.MercatorCoordinate((1-W.y)/Z(W,D)+W.x,1):D.y<0&&j.y<=1&&(D=new s.MercatorCoordinate(-W.y/Z(W,D)+W.x,0)),j.y>1&&D.y>=0?j=new s.MercatorCoordinate((1-$.y)/Z($,j)+$.x,1):j.y<0&&D.y<=1&&(j=new s.MercatorCoordinate(-$.y/Z($,j)+$.x,0)),new s.LngLatBounds().extend(this.coordinateLocation(D)).extend(this.coordinateLocation(j)).extend(this.coordinateLocation(W)).extend(this.coordinateLocation($))}_getBoundsRectangularTerrain(){const o=this.elevation;if(!o.visibleDemTiles.length||o.isUsingMockSource())return this._getBoundsRectangular(0,0);const c=o.visibleDemTiles.reduce((f,_)=>{if(_.dem){const v=_.dem.tree;f.min=Math.min(f.min,v.minimums[0]),f.max=Math.max(f.max,v.maximums[0])}return f},{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(c.min*o.exaggeration(),c.max*o.exaggeration())}getBounds(){return this.projection.name==="mercator"||this.projection.name==="equirectangular"?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(o=!0){const c=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,f=this.height/2-c*(1-this._horizonShift);return o?Math.max(0,f):f}getMaxBounds(){return this.maxBounds}setMaxBounds(o){this.maxBounds=o,this.minLat=-s.MAX_MERCATOR_LATITUDE,this.maxLat=s.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,o&&(this.minLat=o.getSouth(),this.maxLat=o.getNorth(),this.minLng=o.getWest(),this.maxLng=o.getEast(),this.maxLngD&&(S=D-z),D-P$&&(E=$-C),$-j.5?J-1:J,Q>.5?Q-1:Q,0]),this.alignedProjMatrix=he,S=s.create(),s.scale(S,S,[this.width/2,-this.height/2,1]),s.translate(S,S,[1,-1,0]),this.labelPlaneMatrix=S,S=s.create(),s.scale(S,S,[1,-1,1]),s.translate(S,S,[-1,-1,0]),s.scale(S,S,[2/this.width,2/this.height,1]),this.glCoordMatrix=S,this.pixelMatrix=s.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},S=s.invert(new Float64Array(16),this.pixelMatrix),!S)throw new Error("failed to invert matrix");if(this.pixelMatrixInverse=S,this.projection.name==="globe"||this.mercatorFromTransition){this.globeMatrix=s.calculateGlobeMatrix(this);const pe=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=s.transformMat4(pe,pe,v),this.globeRadius=this.worldSize/2/Math.PI-1}else this.globeMatrix=S;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};const o=this.cameraWorldSizeForFog,c=this.cameraPixelsPerMeter,f=this._camera.position,_=1/this.height/this._pixelsPerMercatorPixel,v=[o,o,c];s.scale$2(v,v,_),s.scale$2(f,f,-1),s.multiply$2(f,f,v);const E=s.create();s.translate(E,E,f),s.scale(E,E,v),this.mercatorFogMatrix=E,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(o,c,_)}_computeCameraPosition(o){const c=(o=o||this.pixelsPerMeter)/this.pixelsPerMeter,f=this._camera.forward(),_=this.point,v=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*c-o/this.worldSize*this._centerAltitude;return[_.x/this.worldSize-f[0]*v,_.y/this.worldSize-f[1]*v,o/this.worldSize*this._centerAltitude-f[2]*v]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(o){const c=this._maxCameraBoundsDistance()*Math.cos(this._pitch),f=this._camera.position[2],_=o[2];let v=1;this.projection.wrap&&(this.center=this.center.wrap()),_>0&&(v=Math.min((c-f)/_,1)),this._camera.position=s.scaleAndAdd([],this._camera.position,o,v),this._updateStateFromCamera()}_updateStateFromCamera(){const o=this._camera.position,c=this._camera.forward(),{pitch:f,bearing:_}=this._camera.getPitchBearing(),v=s.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,E=this._mercatorZfromZoom(this._maxZoom)*Math.cos(s.degToRad(this._maxPitch)),S=Math.max((o[2]-v)/Math.cos(f),E),C=this._zoomFromMercatorZ(S);s.scaleAndAdd(o,o,c,S),this._pitch=s.clamp(f,s.degToRad(this.minPitch),s.degToRad(this.maxPitch)),this.angle=s.wrap(_,-Math.PI,Math.PI),this._setZoom(s.clamp(C,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new s.MercatorCoordinate(o[0],o[1],o[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(o){return Math.pow(2,o)*this.tileSize}_mercatorZfromZoom(o){return this.cameraToCenterDistance/this._worldSizeFromZoom(o)}_minimumHeightOverTerrain(){const o=Math.min((this._seaLevelZoom!=null?this._seaLevelZoom:this._zoom)+4,this._maxZoom);return this._mercatorZfromZoom(o)}_zoomFromMercatorZ(o){return this.scaleZoom(this.cameraToCenterDistance/(o*this.tileSize))}zoomFromMercatorZAdjusted(o){let c=0,f=s.GLOBE_ZOOM_THRESHOLD_MAX,_=0,v=1/0;for(;f-c>1e-6&&f>c;){const E=c+.5*(f-c),S=this.tileSize*Math.pow(2,E),C=this.getCameraToCenterDistance(this.projection,E,S),z=this.scaleZoom(C/(o*this.tileSize)),P=Math.abs(E-z);Pz||j.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+s.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new s.Point(0,0),new s.Point(this.width,this.height))}zoomDeltaToMovement(o,c){const f=s.length(s.sub([],this._camera.position,o)),_=this._zoomFromMercatorZ(f)+c;return f-this._mercatorZfromZoom(_)}getCameraPoint(){if(this.projection.name==="globe"){const o=function([c,f,_],v){const E=[c,f,_,1];s.transformMat4$1(E,E,v);const S=E[3]=Math.max(E[3],1e-6);return E[0]/=S,E[1]/=S,E[2]/=S,E}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new s.Point(o[0],o[1])}{const o=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.Point(0,o))}}getCameraToCenterDistance(o,c=this.zoom,f=this.worldSize){const _=Tc(o,c,this.width,this.height,1024),v=o.pixelSpaceConversion(this.center.lat,f,_);return .5/Math.tan(.5*this._fov)*this.height*v}getWorldToCameraMatrix(){const o=this._camera.getWorldToCamera(this.worldSize,this.projection.zAxisUnit==="meters"?this.pixelsPerMeter:1);return this.projection.name==="globe"&&s.multiply(o,o,this.globeMatrix),o}}function ra(d,o){let c=!1,f=null;const _=()=>{f=null,c&&(d(),f=setTimeout(_,o),c=!1)};return()=>(c=!0,f||_(),f)}class xh{constructor(o){this._hashName=o&&encodeURIComponent(o),s.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=ra(this._updateHashUnthrottled.bind(this),300)}addTo(o){return this._map=o,s.window.addEventListener("hashchange",this._onHashChange,!1),o.on("moveend",this._updateHash),this}remove(){return this._map?(this._map.off("moveend",this._updateHash),s.window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const o=this._map;if(!o)return"";const c=fl(o);if(this._hashName){const f=this._hashName;let _=!1;const v=s.window.location.hash.slice(1).split("&").map(E=>{const S=E.split("=")[0];return S===f?(_=!0,`${S}=${c}`):E}).filter(E=>E);return _||v.push(`${f}=${c}`),`#${v.join("&")}`}return`#${c}`}_getCurrentHash(){const o=s.window.location.hash.replace("#","");if(this._hashName){let c;return o.split("&").map(f=>f.split("=")).forEach(f=>{f[0]===this._hashName&&(c=f)}),(c&&c[1]||"").split("/")}return o.split("/")}_onHashChange(){const o=this._map;if(!o)return!1;const c=this._getCurrentHash();if(c.length>=3&&!c.some(f=>isNaN(f))){const f=o.dragRotate.isEnabled()&&o.touchZoomRotate.isEnabled()?+(c[3]||0):o.getBearing();return o.jumpTo({center:[+c[2],+c[1]],zoom:+c[0],bearing:f,pitch:+(c[4]||0)}),!0}return!1}_updateHashUnthrottled(){const o=s.window.location.href.replace(/(#.+)?$/,this.getHashString());s.window.history.replaceState(s.window.history.state,null,o)}}function fl(d,o){const c=d.getCenter(),f=Math.round(100*d.getZoom())/100,_=Math.ceil((f*Math.LN2+Math.log(512/360/.5))/Math.LN10),v=Math.pow(10,_),E=Math.round(c.lng*v)/v,S=Math.round(c.lat*v)/v,C=d.getBearing(),z=d.getPitch();let P=o?`/${E}/${S}/${f}`:`${f}/${S}/${E}`;return(C||z)&&(P+="/"+Math.round(10*C)/10),z&&(P+=`/${Math.round(z)}`),P}const ml={linearity:.3,easing:s.bezier(0,0,.3,1)},Ac=s.extend({deceleration:2500,maxSpeed:1400},ml),Cc=s.extend({deceleration:20,maxSpeed:1400},ml),ct=s.extend({deceleration:1e3,maxSpeed:360},ml),Er=s.extend({deceleration:1e3,maxSpeed:90},ml);class Gp{constructor(o){this._map=o,this.clear()}clear(){this._inertiaBuffer=[]}record(o){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:s.exported.now(),settings:o})}_drainInertiaBuffer(){const o=this._inertiaBuffer,c=s.exported.now();for(;o.length>0&&c-o[0].time>160;)o.shift()}_onMoveEnd(o){if(this._map._prefersReducedMotion()||(this._drainInertiaBuffer(),this._inertiaBuffer.length<2))return;const c={zoom:0,bearing:0,pitch:0,pan:new s.Point(0,0),pinchAround:void 0,around:void 0};for(const{settings:v}of this._inertiaBuffer)c.zoom+=v.zoomDelta||0,c.bearing+=v.bearingDelta||0,c.pitch+=v.pitchDelta||0,v.panDelta&&c.pan._add(v.panDelta),v.around&&(c.around=v.around),v.pinchAround&&(c.pinchAround=v.pinchAround);const f=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,_={};if(c.pan.mag()){const v=_l(c.pan.mag(),f,s.extend({},Ac,o||{}));_.offset=c.pan.mult(v.amount/c.pan.mag()),_.center=this._map.transform.center,gl(_,v)}if(c.zoom){const v=_l(c.zoom,f,Cc);_.zoom=this._map.transform.zoom+v.amount,gl(_,v)}if(c.bearing){const v=_l(c.bearing,f,ct);_.bearing=this._map.transform.bearing+s.clamp(v.amount,-179,179),gl(_,v)}if(c.pitch){const v=_l(c.pitch,f,Er);_.pitch=this._map.transform.pitch+v.amount,gl(_,v)}if(_.zoom||_.bearing){const v=c.pinchAround===void 0?c.around:c.pinchAround;_.around=v?this._map.unproject(v):this._map.getCenter()}return this.clear(),_.noMoveStart=!0,_}}function gl(d,o){(!d.duration||d.durationc.unproject(C)),S=v.reduce((C,z,P,D)=>C.add(z.div(D.length)),new s.Point(0,0));super(o,{points:v,point:S,lngLats:E,lngLat:c.unproject(S),originalEvent:f}),this._defaultPrevented=!1}}class Ic extends s.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(o,c,f){super(o,{originalEvent:f}),this._defaultPrevented=!1}}class wh{constructor(o,c){this._map=o,this._clickTolerance=c.clickTolerance}reset(){this._mousedownPos=void 0}wheel(o){return this._firePreventable(new Ic(o.type,this._map,o))}mousedown(o,c){return this._mousedownPos=c,this._firePreventable(new oi(o.type,this._map,o))}mouseup(o){this._map.fire(new oi(o.type,this._map,o))}preclick(o){const c=s.extend({},o);c.type="preclick",this._map.fire(new oi(c.type,this._map,c))}click(o,c){this._mousedownPos&&this._mousedownPos.dist(c)>=this._clickTolerance||(this.preclick(o),this._map.fire(new oi(o.type,this._map,o)))}dblclick(o){return this._firePreventable(new oi(o.type,this._map,o))}mouseover(o){this._map.fire(new oi(o.type,this._map,o))}mouseout(o){this._map.fire(new oi(o.type,this._map,o))}touchstart(o){return this._firePreventable(new yl(o.type,this._map,o))}touchmove(o){this._map.fire(new yl(o.type,this._map,o))}touchend(o){this._map.fire(new yl(o.type,this._map,o))}touchcancel(o){this._map.fire(new yl(o.type,this._map,o))}_firePreventable(o){if(this._map.fire(o),o.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Mc{constructor(o){this._map=o}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0}mousemove(o){this._map.fire(new oi(o.type,this._map,o))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new oi("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(o){this._delayContextMenu?this._contextMenuEvent=o:this._map.fire(new oi(o.type,this._map,o)),this._map.listens("contextmenu")&&o.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class $p{constructor(o,c){this._map=o,this._el=o.getCanvasContainer(),this._container=o.getContainer(),this._clickTolerance=c.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(o,c){this.isEnabled()&&o.shiftKey&&o.button===0&&(ue(),this._startPos=this._lastPos=c,this._active=!0)}mousemoveWindow(o,c){if(!this._active)return;const f=c,_=this._startPos,v=this._lastPos;if(!_||!v||v.equals(f)||!this._box&&f.dist(_){this._box&&(this._box.style.transform=`translate(${E}px,${C}px)`,this._box.style.width=S-E+"px",this._box.style.height=z-C+"px")})}mouseupWindow(o,c){if(!this._active)return;const f=this._startPos,_=c;if(f&&o.button===0){if(this.reset(),De(),f.x!==_.x||f.y!==_.y)return this._map.fire(new s.Event("boxzoomend",{originalEvent:o})),{cameraAnimation:v=>v.fitScreenCoordinates(f,_,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",o)}}keydown(o){this._active&&o.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",o))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),re(),delete this._startPos,delete this._lastPos}_fireEvent(o,c){return this._map.fire(new s.Event(o,{originalEvent:c}))}}function kc(d,o){const c={};for(let f=0;fthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===0&&(this.startTime=o.timeStamp),f.length===this.numTouches&&(this.centroid=function(_){const v=new s.Point(0,0);for(const E of _)v._add(E);return v.div(_.length)}(c),this.touches=kc(f,c)))}touchmove(o,c,f){if(this.aborted||!this.centroid)return;const _=kc(f,c);for(const v in this.touches){const E=_[v];(!E||E.dist(this.touches[v])>30)&&(this.aborted=!0)}}touchend(o,c,f){if((!this.centroid||o.timeStamp-this.startTime>500)&&(this.aborted=!0),f.length===0){const _=!this.aborted&&this.centroid;if(this.reset(),_)return _}}}class bh{constructor(o){this.singleTap=new oa(o),this.numTaps=o.numTaps,this.reset()}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset()}touchstart(o,c,f){this.singleTap.touchstart(o,c,f)}touchmove(o,c,f){this.singleTap.touchmove(o,c,f)}touchend(o,c,f){const _=this.singleTap.touchend(o,c,f);if(_){const v=o.timeStamp-this.lastTime<500,E=!this.lastTap||this.lastTap.dist(_)<30;if(v&&E||this.reset(),this.count++,this.lastTime=o.timeStamp,this.lastTap=_,this.count===this.numTaps)return this.reset(),_}}}class Yg{constructor(){this._zoomIn=new bh({numTouches:1,numTaps:2}),this._zoomOut=new bh({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(o,c,f){this._zoomIn.touchstart(o,c,f),this._zoomOut.touchstart(o,c,f)}touchmove(o,c,f){this._zoomIn.touchmove(o,c,f),this._zoomOut.touchmove(o,c,f)}touchend(o,c,f){const _=this._zoomIn.touchend(o,c,f),v=this._zoomOut.touchend(o,c,f);return _?(this._active=!0,o.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:E=>E.easeTo({duration:300,zoom:E.getZoom()+1,around:E.unproject(_)},{originalEvent:o})}):v?(this._active=!0,o.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:E=>E.easeTo({duration:300,zoom:E.getZoom()-1,around:E.unproject(v)},{originalEvent:o})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}const qp={0:1,2:2};class sa{constructor(o){this.reset(),this._clickTolerance=o.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0}_correctButton(o,c){return!1}_move(o,c){return{}}mousedown(o,c){if(this._lastPoint)return;const f=lt(o);this._correctButton(o,f)&&(this._lastPoint=c,this._eventButton=f)}mousemoveWindow(o,c){const f=this._lastPoint;if(f){if(o.preventDefault(),this._eventButton!=null&&function(_,v){const E=qp[v];return _.buttons===void 0||(_.buttons&E)!==E}(o,this._eventButton))this.reset();else if(this._moved||!(c.dist(f)0&&(this._active=!0);const _=kc(f,c),v=new s.Point(0,0),E=new s.Point(0,0);let S=0;for(const z in _){const P=_[z],D=this._touches[z];D&&(v._add(P),E._add(P.sub(D)),S++,_[z]=P)}if(this._touches=_,S{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","null")},500)}}class vl{constructor(){this.reset()}reset(){this._active=!1,this._firstTwoTouches=void 0}_start(o){}_move(o,c,f){return{}}touchstart(o,c,f){this._firstTwoTouches||f.length<2||(this._firstTwoTouches=[f[0].identifier,f[1].identifier],this._start([c[0],c[1]]))}touchmove(o,c,f){const _=this._firstTwoTouches;if(!_)return;o.preventDefault();const[v,E]=_,S=xl(f,c,v),C=xl(f,c,E);if(!S||!C)return;const z=this._aroundCenter?null:S.add(C).div(2);return this._move([S,C],z,o)}touchend(o,c,f){if(!this._firstTwoTouches)return;const[_,v]=this._firstTwoTouches,E=xl(f,c,_),S=xl(f,c,v);E&&S||(this._active&&De(),this.reset())}touchcancel(){this.reset()}enable(o){this._enabled=!0,this._aroundCenter=!!o&&o.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}function xl(d,o,c){for(let f=0;fMath.abs(d.x)}class Hp extends vl{constructor(o){super(),this._map=o}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0}_start(o){this._lastPoints=o,Uo(o[0].sub(o[1]))&&(this._valid=!1)}_move(o,c,f){const _=this._lastPoints;if(!_)return;const v=o[0].sub(_[0]),E=o[1].sub(_[1]);return this._map._cooperativeGestures&&!s.isFullscreen()&&f.touches.length<3||(this._valid=this.gestureBeginsVertically(v,E,f.timeStamp),!this._valid)?void 0:(this._lastPoints=o,this._active=!0,{pitchDelta:(v.y+E.y)/2*-.5})}gestureBeginsVertically(o,c,f){if(this._valid!==void 0)return this._valid;const _=o.mag()>=2,v=c.mag()>=2;if(!_&&!v)return;if(!_||!v)return this._firstMove==null&&(this._firstMove=f),f-this._firstMove<100&&void 0;const E=o.y>0==c.y>0;return Uo(o)&&Uo(c)&&E}}const Xp={panStep:100,bearingStep:15,pitchStep:10};class Jg{constructor(){const o=Xp;this._panStep=o.panStep,this._bearingStep=o.bearingStep,this._pitchStep=o.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(o){if(o.altKey||o.ctrlKey||o.metaKey)return;let c=0,f=0,_=0,v=0,E=0;switch(o.keyCode){case 61:case 107:case 171:case 187:c=1;break;case 189:case 109:case 173:c=-1;break;case 37:o.shiftKey?f=-1:(o.preventDefault(),v=-1);break;case 39:o.shiftKey?f=1:(o.preventDefault(),v=1);break;case 38:o.shiftKey?_=1:(o.preventDefault(),E=-1);break;case 40:o.shiftKey?_=-1:(o.preventDefault(),E=1);break;default:return}return this._rotationDisabled&&(f=0,_=0),{cameraAnimation:S=>{const C=S.getZoom();S.easeTo({duration:300,easeId:"keyboardHandler",easing:Kp,zoom:c?Math.round(C)+c*(o.shiftKey?2:1):C,bearing:S.getBearing()+f*this._bearingStep,pitch:S.getPitch()+_*this._pitchStep,offset:[-v*this._panStep,-E*this._panStep],center:S.getCenter()},{originalEvent:o})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function Kp(d){return d*(2-d)}const Ih=4.000244140625;class Yp{constructor(o,c){this._map=o,this._el=o.getCanvasContainer(),this._handler=c,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,s.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this)}setZoomRate(o){this._defaultZoomRate=o}setWheelZoomRate(o){this._wheelZoomRate=o}isEnabled(){return!!this._enabled}isActive(){return this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(o){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!o&&o.around==="center",this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(o){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(o.ctrlKey||o.metaKey||this.isZooming()||s.isFullscreen()))return void this._showBlockerAlert();this._alertContainer.style.visibility!=="hidden"&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let c=o.deltaMode===s.window.WheelEvent.DOM_DELTA_LINE?40*o.deltaY:o.deltaY;const f=s.exported.now(),_=f-(this._lastWheelEventTime||0);this._lastWheelEventTime=f,c!==0&&c%Ih==0?this._type="wheel":c!==0&&Math.abs(c)<4?this._type="trackpad":_>400?(this._type=null,this._lastValue=c,this._timeout=setTimeout(this._onTimeout,40,o)):this._type||(this._type=Math.abs(_*c)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,c+=this._lastValue)),o.shiftKey&&c&&(c/=4),this._type&&(this._lastWheelEvent=o,this._delta-=c,this._active||this._start(o)),o.preventDefault()}_onTimeout(o){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(o)}_start(o){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const c=je(this._el,o);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:c,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const o=this._map.transform;this._type==="wheel"&&o.projection.wrap&&(o._center.lng>=180||o._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);const c=()=>o._terrainEnabled()&&this._aroundCoord?o.computeZoomRelativeTo(this._aroundCoord):o.zoom;if(this._delta!==0){const C=this._type==="wheel"&&Math.abs(this._delta)>Ih?this._wheelZoomRate:this._defaultZoomRate;let z=2/(1+Math.exp(-Math.abs(this._delta*C)));this._delta<0&&z!==0&&(z=1/z);const P=c(),D=Math.pow(2,P),j=typeof this._targetZoom=="number"?o.zoomScale(this._targetZoom):D;this._targetZoom=Math.min(o.maxZoom,Math.max(o.minZoom,o.scaleZoom(j*z))),this._type==="wheel"&&(this._startZoom=P,this._easing=this._smoothOutEasing(200)),this._delta=0}const f=typeof this._targetZoom=="number"?this._targetZoom:c(),_=this._startZoom,v=this._easing;let E,S=!1;if(this._type==="wheel"&&_&&v){const C=Math.min((s.exported.now()-this._lastWheelEventTime)/200,1),z=v(C);E=s.number(_,f,z),C<1?this._frameId||(this._frameId=!0):S=!0}else E=f,S=!0;return this._active=!0,S&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!S,zoomDelta:E-c(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(o){let c=s.ease;if(this._prevEase){const f=this._prevEase,_=(s.exported.now()-f.start)/f.duration,v=f.easing(_+.01)-f.easing(_),E=.27/Math.sqrt(v*v+1e-4)*.01,S=Math.sqrt(.0729-E*E);c=s.bezier(E,S,.25,1)}return this._prevEase={start:s.exported.now(),duration:o,easing:c},c}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=oe("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(s.window.navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","null")},200)}}class Jp{constructor(o,c){this._clickZoom=o,this._tapZoom=c}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()}}class xi{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(o,c){return o.preventDefault(),{cameraAnimation:f=>{f.easeTo({duration:300,zoom:f.getZoom()+(o.shiftKey?-1:1),around:f.unproject(c)},{originalEvent:o})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Qg{constructor(){this._tap=new bh({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset()}touchstart(o,c,f){this._swipePoint||(this._tapTime&&o.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?f.length>0&&(this._swipePoint=c[0],this._swipeTouch=f[0].identifier):this._tap.touchstart(o,c,f))}touchmove(o,c,f){if(this._tapTime){if(this._swipePoint){if(f[0].identifier!==this._swipeTouch)return;const _=c[0],v=_.y-this._swipePoint.y;return this._swipePoint=_,o.preventDefault(),this._active=!0,{zoomDelta:v/128}}}else this._tap.touchmove(o,c,f)}touchend(o,c,f){this._tapTime?this._swipePoint&&f.length===0&&this.reset():this._tap.touchend(o,c,f)&&(this._tapTime=o.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Qp{constructor(o,c,f){this._el=o,this._mousePan=c,this._touchPan=f}enable(o){this._inertiaOptions=o||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class e_{constructor(o,c,f){this._pitchWithRotate=o.pitchWithRotate,this._mouseRotate=c,this._mousePitch=f}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class t_{constructor(o,c,f,_){this._el=o,this._touchZoom=c,this._touchRotate=f,this._tapDragZoom=_,this._rotationDisabled=!1,this._enabled=!0}enable(o){this._touchZoom.enable(o),this._rotationDisabled||this._touchRotate.enable(o),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}const ar=d=>d.zoom||d.drag||d.pitch||d.rotate;class ef extends s.Event{}class n_{constructor(){this.constants=[1,1,.01],this.radius=0}setup(o,c){const f=s.sub([],c,o);this.radius=s.length(f[2]<0?s.div([],f,this.constants):[f[0],f[1],0])}projectRay(o){s.div(o,o,this.constants),s.normalize(o,o),s.mul$1(o,o,this.constants);const c=s.scale$2([],o,this.radius);if(c[2]>0){const f=s.scale$2([],[0,0,1],s.dot(c,[0,0,1])),_=s.scale$2([],s.normalize([],[c[0],c[1],0]),this.radius),v=s.add([],c,s.scale$2([],s.sub([],s.add([],_,f),c),2));c[0]=v[0],c[1]=v[1]}return c}}function Tr(d){return d.panDelta&&d.panDelta.mag()||d.zoomDelta||d.bearingDelta||d.pitchDelta}class Gr{constructor(o,c){this._map=o,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Gp(o),this._bearingSnap=c.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new n_,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(c),s.bindAll(["handleEvent","handleWindowEvent"],this);const f=this._el;this._listeners=[[f,"touchstart",{passive:!0}],[f,"touchmove",{passive:!1}],[f,"touchend",void 0],[f,"touchcancel",void 0],[f,"mousedown",void 0],[f,"mousemove",void 0],[f,"mouseup",void 0],[s.window.document,"mousemove",{capture:!0}],[s.window.document,"mouseup",void 0],[f,"mouseover",void 0],[f,"mouseout",void 0],[f,"dblclick",void 0],[f,"click",void 0],[f,"keydown",{capture:!1}],[f,"keyup",void 0],[f,"wheel",{passive:!1}],[f,"contextmenu",void 0],[s.window,"blur",void 0]];for(const[_,v,E]of this._listeners)_.addEventListener(v,_===s.window.document?this.handleWindowEvent:this.handleEvent,E)}destroy(){for(const[o,c,f]of this._listeners)o.removeEventListener(c,o===s.window.document?this.handleWindowEvent:this.handleEvent,f)}_addDefaultHandlers(o){const c=this._map,f=c.getCanvasContainer();this._add("mapEvent",new wh(c,o));const _=c.boxZoom=new $p(c,o);this._add("boxZoom",_);const v=new Yg,E=new xi;c.doubleClickZoom=new Jp(E,v),this._add("tapZoom",v),this._add("clickZoom",E);const S=new Qg;this._add("tapDragZoom",S);const C=c.touchPitch=new Hp(c);this._add("touchPitch",C);const z=new Th(o),P=new Sh(o);c.dragRotate=new e_(o,z,P),this._add("mouseRotate",z,["mousePitch"]),this._add("mousePitch",P,["mouseRotate"]);const D=new Eh(o),j=new Pc(c,o);c.dragPan=new Qp(f,D,j),this._add("mousePan",D),this._add("touchPan",j,["touchZoom","touchRotate"]);const $=new Wp,W=new Zp;c.touchZoomRotate=new t_(f,W,$,S),this._add("touchRotate",$,["touchPan","touchZoom"]),this._add("touchZoom",W,["touchPan","touchRotate"]),this._add("blockableMapEvent",new Mc(c));const Z=c.scrollZoom=new Yp(c,this);this._add("scrollZoom",Z,["mousePan"]);const H=c.keyboard=new Jg;this._add("keyboard",H);for(const O of["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"])o.interactive&&o[O]&&c[O].enable(o[O])}_add(o,c,f){this._handlers.push({handlerName:o,handler:c,allowed:f}),this._handlersById[o]=c}stop(o){if(!this._updatingCamera){for(const{handler:c}of this._handlers)c.reset();this._inertia.clear(),this._fireEvents({},{},o),this._changes=[]}}isActive(){for(const{handler:o}of this._handlers)if(o.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!ar(this._eventsInProgress)||this.isZooming()}_isDragging(){return!!this._eventsInProgress.drag}_blockedByActive(o,c,f){for(const _ in o)if(_!==f&&(!c||c.indexOf(_)<0))return!0;return!1}handleWindowEvent(o){this.handleEvent(o,`${o.type}Window`)}_getMapTouches(o){const c=[];for(const f of o)this._el.contains(f.target)&&c.push(f);return c}handleEvent(o,c){this._updatingCamera=!0;const f=o.type==="renderFrame",_=f?void 0:o,v={needsRenderFrame:!1},E={},S={},C=o.touches?this._getMapTouches(o.touches):void 0,z=C?tt(this._el,C):f?void 0:je(this._el,o);for(const{handlerName:j,handler:$,allowed:W}of this._handlers){if(!$.isEnabled())continue;let Z;this._blockedByActive(S,W,j)?$.reset():$[c||o.type]&&(Z=$[c||o.type](o,z,C),this.mergeHandlerResult(v,E,Z,j,_),Z&&Z.needsRenderFrame&&this._triggerRenderFrame()),(Z||$.isActive())&&(S[j]=$)}const P={};for(const j in this._previousActiveHandlers)S[j]||(P[j]=_);this._previousActiveHandlers=S,(Object.keys(P).length||Tr(v))&&(this._changes.push([v,E,P]),this._triggerRenderFrame()),(Object.keys(S).length||Tr(v))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:D}=v;D&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],D(this._map))}mergeHandlerResult(o,c,f,_,v){if(!f)return;s.extend(o,f);const E={handlerName:_,originalEvent:f.originalEvent||v};f.zoomDelta!==void 0&&(c.zoom=E),f.panDelta!==void 0&&(c.drag=E),f.pitchDelta!==void 0&&(c.pitch=E),f.bearingDelta!==void 0&&(c.rotate=E)}_applyChanges(){const o={},c={},f={};for(const[_,v,E]of this._changes)_.panDelta&&(o.panDelta=(o.panDelta||new s.Point(0,0))._add(_.panDelta)),_.zoomDelta&&(o.zoomDelta=(o.zoomDelta||0)+_.zoomDelta),_.bearingDelta&&(o.bearingDelta=(o.bearingDelta||0)+_.bearingDelta),_.pitchDelta&&(o.pitchDelta=(o.pitchDelta||0)+_.pitchDelta),_.around!==void 0&&(o.around=_.around),_.aroundCoord!==void 0&&(o.aroundCoord=_.aroundCoord),_.pinchAround!==void 0&&(o.pinchAround=_.pinchAround),_.noInertia&&(o.noInertia=_.noInertia),s.extend(c,v),s.extend(f,E);this._updateMapTransform(o,c,f),this._changes=[]}_updateMapTransform(o,c,f){const _=this._map,v=_.transform,E=G=>[G.x,G.y,G.z];if((G=>{const J=this._eventsInProgress.drag;return J&&!this._handlersById[J.handlerName].isActive()})()&&!Tr(o)){const G=v.zoom;v.cameraElevationReference="sea",v.recenterOnTerrain(),v.cameraElevationReference="ground",G!==v.zoom&&this._map._update(!0)}if(v._isCameraConstrained&&_._stop(!0),!Tr(o))return void this._fireEvents(c,f,!0);let{panDelta:S,zoomDelta:C,bearingDelta:z,pitchDelta:P,around:D,aroundCoord:j,pinchAround:$}=o;v._isCameraConstrained&&(C>0&&(C=0),v._isCameraConstrained=!1),$!==void 0&&(D=$),(C||(G=>c[G]&&!this._eventsInProgress[G])("drag"))&&D&&(this._dragOrigin=E(v.pointCoordinate3D(D)),this._trackingEllipsoid.setup(v._camera.position,this._dragOrigin)),v.cameraElevationReference="sea",_._stop(!0),D=D||_.transform.centerPoint,z&&(v.bearing+=z),P&&(v.pitch+=P),v._updateCameraState();const W=[0,0,0];if(S)if(v.projection.name==="mercator"){const G=this._trackingEllipsoid.projectRay(v.screenPointToMercatorRay(D).dir),J=this._trackingEllipsoid.projectRay(v.screenPointToMercatorRay(D.sub(S)).dir);W[0]=J[0]-G[0],W[1]=J[1]-G[1]}else{const G=v.pointCoordinate(D);if(v.projection.name==="globe"){S=S.rotate(-v.angle);const J=v._pixelsPerMercatorPixel/v.worldSize;W[0]=-S.x*s.mercatorScale(s.latFromMercatorY(G.y))*J,W[1]=-S.y*s.mercatorScale(v.center.lat)*J}else{const J=v.pointCoordinate(D.sub(S));G&&J&&(W[0]=J.x-G.x,W[1]=J.y-G.y)}}const Z=v.zoom,H=[0,0,0];if(C){const G=E(j||v.pointCoordinate3D(D)),J={dir:s.normalize([],s.sub([],G,v._camera.position))};if(J.dir[2]<0){const Q=v.zoomDeltaToMovement(G,C);s.scale$2(H,J.dir,Q)}}const O=s.add(W,W,H);v._translateCameraConstrained(O),C&&Math.abs(v.zoom-Z)>1e-4&&v.recenterOnTerrain(),v.cameraElevationReference="ground",this._map._update(),o.noInertia||this._inertia.record(o),this._fireEvents(c,f,!0)}_fireEvents(o,c,f){const _=ar(this._eventsInProgress),v=ar(o),E={};for(const P in o){const{originalEvent:D}=o[P];this._eventsInProgress[P]||(E[`${P}start`]=D),this._eventsInProgress[P]=o[P]}!_&&v&&this._fireEvent("movestart",v.originalEvent);for(const P in E)this._fireEvent(P,E[P]);v&&this._fireEvent("move",v.originalEvent);for(const P in o){const{originalEvent:D}=o[P];this._fireEvent(P,D)}const S={};let C;for(const P in this._eventsInProgress){const{handlerName:D,originalEvent:j}=this._eventsInProgress[P];this._handlersById[D].isActive()||(delete this._eventsInProgress[P],C=c[D]||j,S[`${P}end`]=C)}for(const P in S)this._fireEvent(P,S[P]);const z=ar(this._eventsInProgress);if(f&&(_||v)&&!z){this._updatingCamera=!0;const P=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),D=j=>j!==0&&-this._bearingSnap{this._frameId=void 0,this.handleEvent(new ef("renderFrame",{timeStamp:o})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}const gs="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class zc extends s.Evented{constructor(o,c){super(),this._moving=!1,this._zooming=!1,this.transform=o,this._bearingSnap=c.bearingSnap,this._respectPrefersReducedMotion=c.respectPrefersReducedMotion!==!1,s.bindAll(["_renderFrameCallback"],this)}getCenter(){return new s.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(o,c){return this.jumpTo({center:o},c)}panBy(o,c,f){return o=s.Point.convert(o).mult(-1),this.panTo(this.transform.center,s.extend({offset:o},c),f)}panTo(o,c,f){return this.easeTo(s.extend({center:o},c),f)}getZoom(){return this.transform.zoom}setZoom(o,c){return this.jumpTo({zoom:o},c),this}zoomTo(o,c,f){return this.easeTo(s.extend({zoom:o},c),f)}zoomIn(o,c){return this.zoomTo(this.getZoom()+1,o,c),this}zoomOut(o,c){return this.zoomTo(this.getZoom()-1,o,c),this}getBearing(){return this.transform.bearing}setBearing(o,c){return this.jumpTo({bearing:o},c),this}getPadding(){return this.transform.padding}setPadding(o,c){return this.jumpTo({padding:o},c),this}rotateTo(o,c,f){return this.easeTo(s.extend({bearing:o},c),f)}resetNorth(o,c){return this.rotateTo(0,s.extend({duration:1e3},o),c),this}resetNorthPitch(o,c){return this.easeTo(s.extend({bearing:0,pitch:0,duration:1e3},o),c),this}snapToNorth(o,c){return Math.abs(this.getBearing())o.aspect?f/(2*Math.tan(.5*o.fovX)*o.aspect):_/(2*Math.tan(.5*o.fovY)*o.aspect)}_cameraForBoundsOnGlobe(o,c,f,_,v,E){const S=o.clone(),C=this._extendCameraOptions(E);S.bearing=_,S.pitch=v;const z=s.LngLat.convert(c),P=s.LngLat.convert(f),D=.5*(z.lat+P.lat),j=.5*(z.lng+P.lng),$=s.latLngToECEF(D,j),W=s.normalize([],$),Z=s.normalize([],s.cross([],W,[0,1,0])),H=s.cross([],Z,W),O=[Z[0],Z[1],Z[2],0,H[0],H[1],H[2],0,W[0],W[1],W[2],0,0,0,0,1],G=[$,s.latLngToECEF(z.lat,z.lng),s.latLngToECEF(P.lat,z.lng),s.latLngToECEF(P.lat,P.lng),s.latLngToECEF(z.lat,P.lng),s.latLngToECEF(D,z.lng),s.latLngToECEF(D,P.lng),s.latLngToECEF(z.lat,j),s.latLngToECEF(P.lat,j)];let J=s.Aabb.fromPoints(G.map(Ge=>[s.dot(Z,Ge),s.dot(H,Ge),s.dot(W,Ge)]));const Q=s.transformMat4([],J.center,O);s.squaredLength(Q)===0&&s.set(Q,0,0,1),s.normalize(Q,Q),s.scale$2(Q,Q,s.GLOBE_RADIUS),S.center=s.ecefToLatLng(Q);const he=S.getWorldToCameraMatrix(),pe=s.invert(new Float64Array(16),he);J=s.Aabb.applyTransform(J,s.multiply([],he,O)),s.transformMat4(Q,Q,he);const de=.5*(J.max[2]-J.min[2]),ye=this._minimumAABBFrustumDistance(S,J),_e=s.scale$2([],[0,0,1],de),Te=s.add(_e,Q,_e),Ze=ye+(S.pitch===0?0:s.distance(Q,Te)),we=S.globeCenterInViewSpace,Be=s.sub([],Q,[we[0],we[1],we[2]]);s.normalize(Be,Be),s.scale$2(Be,Be,Ze);const Ce=s.add([],Q,Be);s.transformMat4(Ce,Ce,pe);const qe=s.earthRadius/s.GLOBE_RADIUS,Ee=s.length(Ce),Oe=s.mercatorZfromAltitude(Math.max(Ee*qe-s.earthRadius,Number.EPSILON),0),He=Math.min(S.zoomFromMercatorZAdjusted(Oe),C.maxZoom);return He>.5*(s.GLOBE_ZOOM_THRESHOLD_MIN+s.GLOBE_ZOOM_THRESHOLD_MAX)?(S.setProjection({name:"mercator"}),S.zoom=He,this._cameraForBounds(S,c,f,_,v,E)):{center:S.center,zoom:He,bearing:_,pitch:v}}queryTerrainElevation(o,c){const f=this.transform.elevation;return f?(c=s.extend({},{exaggerated:!0},c),f.getAtPoint(s.MercatorCoordinate.fromLngLat(o),null,c.exaggerated)):null}_cameraForBounds(o,c,f,_,v,E){if(o.projection.name==="globe")return this._cameraForBoundsOnGlobe(o,c,f,_,v,E);const S=o.clone(),C=this._extendCameraOptions(E),z=S.padding;S.bearing=_,S.pitch=v;const P=s.LngLat.convert(c),D=s.LngLat.convert(f),j=new s.LngLat(P.lng,D.lat),$=new s.LngLat(D.lng,P.lat),W=S.project(P),Z=S.project(D),H=this.queryTerrainElevation(P),O=this.queryTerrainElevation(D),G=this.queryTerrainElevation(j),J=this.queryTerrainElevation($),Q=[[W.x,W.y,Math.min(H||0,O||0,G||0,J||0)],[Z.x,Z.y,Math.max(H||0,O||0,G||0,J||0)]];let he=s.Aabb.fromPoints(Q);const pe=S.getWorldToCameraMatrix(),de=s.invert(new Float64Array(16),pe);he=s.Aabb.applyTransform(he,pe);const ye=s.sub([],he.max,he.min),_e=z.left||0,Te=z.right||0,Ze=z.bottom||0,we=z.top||0,{left:Be,right:Ce,top:qe,bottom:Ee}=C.padding,Oe=.5*(_e+Te),He=.5*(we+Ze),Ge=Math.min(S.scaleZoom(S.scale*Math.min((S.width-(_e+Te+Be+Ce))/ye[0],(S.height-(Ze+we+Ee+qe))/ye[1])),C.maxZoom),Xe=S.scale/S.zoomScale(Ge);he=new s.Aabb([he.min[0]-(Be+Oe)*Xe,he.min[1]-(Ee+He)*Xe,he.min[2]],[he.max[0]+(Ce+Oe)*Xe,he.max[1]+(qe+He)*Xe,he.max[2]]);const gt=.5*ye[2],Et=this._minimumAABBFrustumDistance(S,he),dt=[0,0,1,0];s.transformMat4$1(dt,dt,pe),s.normalize$2(dt,dt);const wt=s.scale$2([],dt,Et+gt),Ut=s.add([],he.center,wt),Ot=(typeof C.offset.x=="number"&&typeof C.offset.y=="number"?new s.Point(C.offset.x,C.offset.y):s.Point.convert(C.offset)).rotate(-s.degToRad(_));he.center[0]-=Ot.x*Xe,he.center[1]+=Ot.y*Xe,s.transformMat4(he.center,he.center,de),s.transformMat4(Ut,Ut,de);const mt=[he.center[0],he.center[1],Ut[2]*S.pixelsPerMeter];s.scale$2(mt,mt,1/S.worldSize);const en=s.lngFromMercatorX(mt[0]),rn=s.latFromMercatorY(mt[1]),on=Math.min(S._zoomFromMercatorZ(mt[2]),C.maxZoom),sn=new s.LngLat(en,rn);return S.mercatorFromTransition&&on<.5*(s.GLOBE_ZOOM_THRESHOLD_MIN+s.GLOBE_ZOOM_THRESHOLD_MAX)?(S.setProjection({name:"globe"}),S.zoom=on,this._cameraForBounds(S,c,f,_,v,E)):{center:sn,zoom:on,bearing:_,pitch:v}}fitBounds(o,c,f){const _=this.cameraForBounds(o,c);return this._fitInternal(_,c,f)}fitScreenCoordinates(o,c,f,_,v){const E=s.Point.convert(o),S=s.Point.convert(c),C=new s.Point(Math.min(E.x,S.x),Math.min(E.y,S.y)),z=new s.Point(Math.max(E.x,S.x),Math.max(E.y,S.y));if(this.transform.projection.name==="mercator"&&this.transform.anyCornerOffEdge(E,S))return this;const P=this.transform.pointLocation3D(C),D=this.transform.pointLocation3D(z),j=this.transform.pointLocation3D(new s.Point(C.x,z.y)),$=this.transform.pointLocation3D(new s.Point(z.x,C.y)),W=[Math.min(P.lng,D.lng,j.lng,$.lng),Math.min(P.lat,D.lat,j.lat,$.lat)],Z=[Math.max(P.lng,D.lng,j.lng,$.lng),Math.max(P.lat,D.lat,j.lat,$.lat)],H=_&&_.pitch?_.pitch:this.getPitch(),O=this._cameraForBounds(this.transform,W,Z,f,H,_);return this._fitInternal(O,_,v)}_fitInternal(o,c,f){return o?(delete(c=s.extend(o,c)).padding,c.linear?this.easeTo(c,f):this.flyTo(c,f)):this}jumpTo(o,c){this.stop();const f=o.preloadOnly?this.transform.clone():this.transform;let _=!1,v=!1,E=!1;return"zoom"in o&&f.zoom!==+o.zoom&&(_=!0,f.zoom=+o.zoom),o.center!==void 0&&(f.center=s.LngLat.convert(o.center)),"bearing"in o&&f.bearing!==+o.bearing&&(v=!0,f.bearing=+o.bearing),"pitch"in o&&f.pitch!==+o.pitch&&(E=!0,f.pitch=+o.pitch),o.padding==null||f.isPaddingEqual(o.padding)||(f.padding=o.padding),o.preloadOnly?(this._preloadTiles(f),this):(this.fire(new s.Event("movestart",c)).fire(new s.Event("move",c)),_&&this.fire(new s.Event("zoomstart",c)).fire(new s.Event("zoom",c)).fire(new s.Event("zoomend",c)),v&&this.fire(new s.Event("rotatestart",c)).fire(new s.Event("rotate",c)).fire(new s.Event("rotateend",c)),E&&this.fire(new s.Event("pitchstart",c)).fire(new s.Event("pitch",c)).fire(new s.Event("pitchend",c)),this.fire(new s.Event("moveend",c)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||s.warnOnce(gs),this.transform.getFreeCameraOptions()}setFreeCameraOptions(o,c){const f=this.transform;if(!f.projection.supportsFreeCamera)return s.warnOnce(gs),this;this.stop();const _=f.zoom,v=f.pitch,E=f.bearing;f.setFreeCameraOptions(o);const S=_!==f.zoom,C=v!==f.pitch,z=E!==f.bearing;return this.fire(new s.Event("movestart",c)).fire(new s.Event("move",c)),S&&this.fire(new s.Event("zoomstart",c)).fire(new s.Event("zoom",c)).fire(new s.Event("zoomend",c)),z&&this.fire(new s.Event("rotatestart",c)).fire(new s.Event("rotate",c)).fire(new s.Event("rotateend",c)),C&&this.fire(new s.Event("pitchstart",c)).fire(new s.Event("pitch",c)).fire(new s.Event("pitchend",c)),this.fire(new s.Event("moveend",c)),this}easeTo(o,c){this._stop(!1,o.easeId),((o=s.extend({offset:[0,0],duration:500,easing:s.ease},o)).animate===!1||this._prefersReducedMotion(o))&&(o.duration=0);const f=this.transform,_=this.getZoom(),v=this.getBearing(),E=this.getPitch(),S=this.getPadding(),C="zoom"in o?+o.zoom:_,z="bearing"in o?this._normalizeBearing(o.bearing,v):v,P="pitch"in o?+o.pitch:E,D="padding"in o?o.padding:f.padding,j=s.Point.convert(o.offset);let $,W,Z;if(f.projection.name==="globe"){const _e=s.MercatorCoordinate.fromLngLat(f.center),Te=j.rotate(-f.angle);_e.x+=Te.x/f.worldSize,_e.y+=Te.y/f.worldSize;const Ze=_e.toLngLat(),we=s.LngLat.convert(o.center||Ze);this._normalizeCenter(we),$=f.centerPoint.add(Te),W=new s.Point(_e.x,_e.y).mult(f.worldSize),Z=new s.Point(s.mercatorXfromLng(we.lng),s.mercatorYfromLat(we.lat)).mult(f.worldSize).sub(W)}else{$=f.centerPoint.add(j);const _e=f.pointLocation($),Te=s.LngLat.convert(o.center||_e);this._normalizeCenter(Te),W=f.project(_e),Z=f.project(Te).sub(W)}const H=f.zoomScale(C-_);let O,G;o.around&&(O=s.LngLat.convert(o.around),G=f.locationPoint(O));const J=this._zooming||C!==_,Q=this._rotating||v!==z,he=this._pitching||P!==E,pe=!f.isPaddingEqual(D),de=_e=>Te=>{if(J&&(_e.zoom=s.number(_,C,Te)),Q&&(_e.bearing=s.number(v,z,Te)),he&&(_e.pitch=s.number(E,P,Te)),pe&&(_e.interpolatePadding(S,D,Te),$=_e.centerPoint.add(j)),O)_e.setLocationAtPoint(O,G);else{const Ze=_e.zoomScale(_e.zoom-_),we=C>_?Math.min(2,H):Math.max(.5,H),Be=Math.pow(we,1-Te),Ce=_e.unproject(W.add(Z.mult(Te*Be)).mult(Ze));_e.setLocationAtPoint(_e.renderWorldCopies?Ce.wrap():Ce,$)}return o.preloadOnly||this._fireMoveEvents(c),_e};if(o.preloadOnly){const _e=this._emulate(de,o.duration,f);return this._preloadTiles(_e),this}const ye={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=J,this._rotating=Q,this._pitching=he,this._padding=pe,this._easeId=o.easeId,this._prepareEase(c,o.noMoveStart,ye),this._ease(de(f),_e=>{f.recenterOnTerrain(),this._afterEase(c,_e)},o),this}_prepareEase(o,c,f={}){this._moving=!0,this.transform.cameraElevationReference="sea",c||f.moving||this.fire(new s.Event("movestart",o)),this._zooming&&!f.zooming&&this.fire(new s.Event("zoomstart",o)),this._rotating&&!f.rotating&&this.fire(new s.Event("rotatestart",o)),this._pitching&&!f.pitching&&this.fire(new s.Event("pitchstart",o))}_fireMoveEvents(o){this.fire(new s.Event("move",o)),this._zooming&&this.fire(new s.Event("zoom",o)),this._rotating&&this.fire(new s.Event("rotate",o)),this._pitching&&this.fire(new s.Event("pitch",o))}_afterEase(o,c){if(this._easeId&&c&&this._easeId===c)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";const f=this._zooming,_=this._rotating,v=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,f&&this.fire(new s.Event("zoomend",o)),_&&this.fire(new s.Event("rotateend",o)),v&&this.fire(new s.Event("pitchend",o)),this.fire(new s.Event("moveend",o))}flyTo(o,c){if(this._prefersReducedMotion(o)){const Ge=s.pick(o,["center","zoom","bearing","pitch","around"]);return this.jumpTo(Ge,c)}this.stop(),o=s.extend({offset:[0,0],speed:1.2,curve:1.42,easing:s.ease},o);const f=this.transform,_=this.getZoom(),v=this.getBearing(),E=this.getPitch(),S=this.getPadding(),C="zoom"in o?s.clamp(+o.zoom,f.minZoom,f.maxZoom):_,z="bearing"in o?this._normalizeBearing(o.bearing,v):v,P="pitch"in o?+o.pitch:E,D="padding"in o?o.padding:f.padding,j=f.zoomScale(C-_),$=s.Point.convert(o.offset);let W=f.centerPoint.add($);const Z=f.pointLocation(W),H=s.LngLat.convert(o.center||Z);this._normalizeCenter(H);const O=f.project(Z),G=f.project(H).sub(O);let J=o.curve;const Q=Math.max(f.width,f.height),he=Q/j,pe=G.mag();if("minZoom"in o){const Ge=s.clamp(Math.min(o.minZoom,_,C),f.minZoom,f.maxZoom),Xe=Q/f.zoomScale(Ge-_);J=Math.sqrt(Xe/pe*2)}const de=J*J;function ye(Ge){const Xe=(he*he-Q*Q+(Ge?-1:1)*de*de*pe*pe)/(2*(Ge?he:Q)*de*pe);return Math.log(Math.sqrt(Xe*Xe+1)-Xe)}function _e(Ge){return(Math.exp(Ge)-Math.exp(-Ge))/2}function Te(Ge){return(Math.exp(Ge)+Math.exp(-Ge))/2}const Ze=ye(0);let we=function(Ge){return Te(Ze)/Te(Ze+J*Ge)},Be=function(Ge){return Q*((Te(Ze)*(_e(Xe=Ze+J*Ge)/Te(Xe))-_e(Ze))/de)/pe;var Xe},Ce=(ye(1)-Ze)/J;if(Math.abs(pe)<1e-6||!isFinite(Ce)){if(Math.abs(Q-he)<1e-6)return this.easeTo(o,c);const Ge=heo.maxDuration&&(o.duration=0);const qe=v!==z,Ee=P!==E,Oe=!f.isPaddingEqual(D),He=Ge=>Xe=>{const gt=Xe*Ce,Et=1/we(gt);Ge.zoom=Xe===1?C:_+Ge.scaleZoom(Et),qe&&(Ge.bearing=s.number(v,z,Xe)),Ee&&(Ge.pitch=s.number(E,P,Xe)),Oe&&(Ge.interpolatePadding(S,D,Xe),W=Ge.centerPoint.add($));const dt=Xe===1?H:Ge.unproject(O.add(G.mult(Be(gt))).mult(Et));return Ge.setLocationAtPoint(Ge.renderWorldCopies?dt.wrap():dt,W),Ge._updateCameraOnTerrain(),o.preloadOnly||this._fireMoveEvents(c),Ge};if(o.preloadOnly){const Ge=this._emulate(He,o.duration,f);return this._preloadTiles(Ge),this}return this._zooming=!0,this._rotating=qe,this._pitching=Ee,this._padding=Oe,this._prepareEase(c,!1),this._ease(He(f),()=>this._afterEase(c),o),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(o,c){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const f=this._onEaseEnd;this._onEaseEnd=void 0,f.call(this,c)}if(!o){const f=this.handlers;f&&f.stop(!1)}return this}_ease(o,c,f){f.animate===!1||f.duration===0?(o(1),c()):(this._easeStart=s.exported.now(),this._easeOptions=f,this._onEaseFrame=o,this._onEaseEnd=c,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){const o=Math.min((s.exported.now()-this._easeStart)/this._easeOptions.duration,1),c=this._onEaseFrame;c&&c(this._easeOptions.easing(o)),o<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(o,c){o=s.wrap(o,-180,180);const f=Math.abs(o-c);return Math.abs(o-360-c)180?-360:f<-180?360:0}_prefersReducedMotion(o){return this._respectPrefersReducedMotion&&s.exported.prefersReducedMotion&&!(o&&o.essential)}_emulate(o,c,f){const _=Math.ceil(15*c/1e3),v=[],E=o(f.clone());for(let S=0;S<=_;S++){const C=E(S/_);v.push(C.clone())}return v}}class ht{constructor(o={}){this.options=o,s.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(o){const c=this.options&&this.options.compact;return this._map=o,this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=oe("button","mapboxgl-ctrl-attrib-button",this._container),oe("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden","true"),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=oe("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),c&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),c===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0}_setElementTitle(o,c){const f=this._map._getUIString(`AttributionControl.${c}`);o.setAttribute("aria-label",f),o.removeAttribute("title"),o.firstElementChild&&o.firstElementChild.setAttribute("title",f)}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"))}_updateEditLink(){let o=this._editLink;o||(o=this._editLink=this._container.querySelector(".mapbox-improve-map"));const c=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||s.config.ACCESS_TOKEN}];if(o){const f=c.reduce((_,v,E)=>(v.value&&(_+=`${v.key}=${v.value}${E_.length-v.length),o=o.filter((_,v)=>{for(let E=v+1;E=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?o=[...this.options.customAttribution,...o]:o.unshift(this.options.customAttribution));const f=o.join(" | ");f!==this._attribHTML&&(this._attribHTML=f,o.length?(this._innerContainer.innerHTML=f,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")}}class Mh{constructor(){s.bindAll(["_updateLogo","_updateCompact"],this)}onAdd(o){this._map=o,this._container=oe("div","mapboxgl-ctrl");const c=oe("a","mapboxgl-ctrl-logo");return c.target="_blank",c.rel="noopener nofollow",c.href="https://www.mapbox.com/",c.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),c.setAttribute("rel","noopener nofollow"),this._container.appendChild(c),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)}getDefaultPosition(){return"bottom-left"}_updateLogo(o){o&&o.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;const o=this._map.style._sourceCaches;if(Object.entries(o).length===0)return!0;for(const c in o){const f=o[c].getSource();if(f.hasOwnProperty("mapbox_logo")&&!f.mapbox_logo)return!1}return!0}_updateCompact(){const o=this._container.children;if(o.length){const c=o[0];this._map.getCanvasContainer().offsetWidth<250?c.classList.add("mapboxgl-compact"):c.classList.remove("mapboxgl-compact")}}}class kh{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(o){const c=++this._id;return this._queue.push({callback:o,id:c,cancelled:!1}),c}remove(o){const c=this._currentlyRunning,f=c?this._queue.concat(c):this._queue;for(const _ of f)if(_.id===o)return void(_.cancelled=!0)}run(o=0){const c=this._currentlyRunning=this._queue;this._queue=[];for(const f of c)if(!f.cancelled&&(f.callback(o),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}function aa(d,o,c){if(d=new s.LngLat(d.lng,d.lat),o){const f=new s.LngLat(d.lng-360,d.lat),_=new s.LngLat(d.lng+360,d.lat),v=360*Math.ceil(Math.abs(d.lng-c.center.lng)/360),E=c.locationPoint(d).distSqr(o),S=o.x<0||o.y<0||o.x>c.width||o.y>c.height;c.locationPoint(f).distSqr(o)180;){const f=c.locationPoint(d);if(f.x>=0&&f.y>=0&&f.x<=c.width&&f.y<=c.height)break;d.lng>c.center.lng?d.lng-=360:d.lng+=360}return d}const _s={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%)"};class st extends s.Evented{constructor(o,c){if(super(),(o instanceof s.window.HTMLElement||c)&&(o=s.extend({element:o},c)),s.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=o&&o.anchor||"center",this._color=o&&o.color||"#3FB1CE",this._scale=o&&o.scale||1,this._draggable=o&&o.draggable||!1,this._clickTolerance=o&&o.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=o&&o.rotation||0,this._rotationAlignment=o&&o.rotationAlignment||"auto",this._pitchAlignment=o&&o.pitchAlignment&&o.pitchAlignment||"auto",this._updateMoving=()=>this._update(!0),this._occludedOpacity=o&&o.occludedOpacity||.2,o&&o.element)this._element=o.element,this._offset=s.Point.convert(o&&o.offset||[0,0]);else{this._defaultMarker=!0,this._element=oe("div");const _=41,v=27,E=Ae("svg",{display:"block",height:_*this._scale+"px",width:v*this._scale+"px",viewBox:`0 0 ${v} ${_}`},this._element),S=Ae("radialGradient",{id:"shadowGradient"},Ae("defs",{},E));Ae("stop",{offset:"10%","stop-opacity":.4},S),Ae("stop",{offset:"100%","stop-opacity":.05},S),Ae("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},E),Ae("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},E),Ae("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},E),Ae("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},E),this._offset=s.Point.convert(o&&o.offset||[0,-14])}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",_=>{_.preventDefault()}),this._element.addEventListener("mousedown",_=>{_.preventDefault()});const f=this._element.classList;for(const _ in _s)f.remove(`mapboxgl-marker-anchor-${_}`);f.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(o){return o===this._map||(this.remove(),this._map=o,o.getCanvasContainer().appendChild(this._element),o.on("move",this._updateMoving),o.on("moveend",this._update),o.on("remove",this._clearFadeTimer),o._addMarker(this),this.setDraggable(this._draggable),this._update(),o.on("click",this._onMapClick)),this}remove(){const o=this._map;return o&&(o.off("click",this._onMapClick),o.off("move",this._updateMoving),o.off("moveend",this._update),o.off("mousedown",this._addDragHandler),o.off("touchstart",this._addDragHandler),o.off("mouseup",this._onUp),o.off("touchend",this._onUp),o.off("mousemove",this._onMove),o.off("touchmove",this._onMove),o.off("remove",this._clearFadeTimer),o._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(o){return this._lngLat=s.LngLat.convert(o),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(o){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),o){if(!("offset"in o.options)){const _=Math.sqrt(Math.pow(13.5,2)/2);o.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[_,-1*(38.1-13.5+_)],"bottom-right":[-_,-1*(38.1-13.5+_)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=o,o._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false")}return this}_onKeyPress(o){const c=o.code,f=o.charCode||o.keyCode;c!=="Space"&&c!=="Enter"&&f!==32&&f!==13||this.togglePopup()}_onMapClick(o){const c=o.originalEvent.target,f=this._element;this._popup&&(c===f||f.contains(c))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){const o=this._popup;return o?(o.isOpen()?(o.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(o.addTo(this._map),this._element.setAttribute("aria-expanded","true")),this):this}_behindTerrain(){const o=this._map,c=this._pos;if(!o||!c)return!1;const f=o.unproject(c),_=o.getFreeCameraOptions();if(!_.position)return!1;const v=_.position.toLngLat();return v.distanceTo(f)<.9*v.distanceTo(this._lngLat)}_evaluateOpacity(){const o=this._map;if(!o)return;const c=this._pos;if(!c||c.x<0||c.x>o.transform.width||c.y<0||c.y>o.transform.height)return void this._clearFadeTimer();const f=o.unproject(c);let _;o._showingGlobe()&&s.isLngLatBehindGlobe(o.transform,this._lngLat)?_=0:(_=1-o._queryFogOpacity(f),o.transform._terrainEnabled()&&o.getTerrain()&&this._behindTerrain()&&(_*=this._occludedOpacity)),this._element.style.opacity=`${_}`,this._element.style.pointerEvents=_>0?"auto":"none",this._popup&&this._popup._setOpacity(_),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_updateDOM(){const o=this._pos;if(!o||!this._map)return;const c=this._offset.mult(this._scale);this._element.style.transform=` + translate(${o.x}px,${o.y}px) + ${_s[this._anchor]} + ${this._calculateXYTransform()} ${this._calculateZTransform()} + translate(${c.x}px,${c.y}px) + `}_calculateXYTransform(){const o=this._pos,c=this._map,f=this.getPitchAlignment();if(!c||!o||f!=="map")return"";if(!c._showingGlobe()){const C=c.getPitch();return C?`rotateX(${C}deg)`:""}const _=s.radToDeg(s.globeTiltAtLngLat(c.transform,this._lngLat)),v=o.sub(s.globeCenterToScreenPoint(c.transform)),E=Math.abs(v.x)+Math.abs(v.y);if(E===0)return"";const S=_/E;return`rotateX(${-v.y*S}deg) rotateY(${v.x*S}deg)`}_calculateZTransform(){const o=this._pos,c=this._map;if(!c||!o)return"";let f=0;const _=this.getRotationAlignment();if(_==="map")if(c._showingGlobe()){const v=c.project(new s.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),E=c.project(new s.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(v);f=s.radToDeg(Math.atan2(E.y,E.x))-90}else f=-c.getBearing();else if(_==="horizon"){const v=s.smoothstep(4,6,c.getZoom()),E=s.globeCenterToScreenPoint(c.transform);E.y+=v*c.transform.height;const S=o.sub(E),C=s.radToDeg(Math.atan2(S.y,S.x));f=(C>90?C-270:C+90)*(1-v)}return f+=this._rotation,f?`rotateZ(${f}deg)`:""}_update(o){s.window.cancelAnimationFrame(this._updateFrameId);const c=this._map;c&&(c.transform.renderWorldCopies&&(this._lngLat=aa(this._lngLat,this._pos,c.transform)),this._pos=c.project(this._lngLat),o===!0?this._updateFrameId=s.window.requestAnimationFrame(()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),c._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(c._showingGlobe()||c.getTerrain()||c.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))}))}getOffset(){return this._offset}setOffset(o){return this._offset=s.Point.convert(o),this._update(),this}_onMove(o){const c=this._map;if(!c)return;const f=this._pointerdownPos,_=this._positionDelta;if(f&&_){if(!this._isDragging){const v=this._clickTolerance||c._clickTolerance;if(o.point.dist(f)=this._endTime)return this._end;const c=s.easeCubicInOut((o-this._startTime)/(this._endTime-this._startTime));return this._start*(1-c)+this._end*c}isEasing(o){return o>=this._startTime&&o<=this._endTime}jumpTo(o){this._startTime=-1/0,this._endTime=-1/0,this._start=o,this._end=o}easeTo(o,c,f){this._start=this.getValue(c),this._end=o,this._startTime=c,this._endTime=c+f}}const nf={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use ⌘ + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"},rf={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,respectPrefersReducedMotion:!0,crossSourceCollisions:!0},r_={showCompass:!0,showZoom:!0,visualizePitch:!1};class o_{constructor(o,c,f=!1){this._clickTolerance=10,this.element=c,this.mouseRotate=new Th({clickTolerance:o.dragRotate._mouseRotate._clickTolerance}),this.map=o,f&&(this.mousePitch=new Sh({clickTolerance:o.dragRotate._mousePitch._clickTolerance})),s.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),c.addEventListener("mousedown",this.mousedown),c.addEventListener("touchstart",this.touchstart,{passive:!1}),c.addEventListener("touchmove",this.touchmove),c.addEventListener("touchend",this.touchend),c.addEventListener("touchcancel",this.reset)}down(o,c){this.mouseRotate.mousedown(o,c),this.mousePitch&&this.mousePitch.mousedown(o,c),ue()}move(o,c){const f=this.map,_=this.mouseRotate.mousemoveWindow(o,c),v=_&&_.bearingDelta;if(v&&f.setBearing(f.getBearing()+v),this.mousePitch){const E=this.mousePitch.mousemoveWindow(o,c),S=E&&E.pitchDelta;S&&f.setPitch(f.getPitch()+S)}}off(){const o=this.element;o.removeEventListener("mousedown",this.mousedown),o.removeEventListener("touchstart",this.touchstart,{passive:!1}),o.removeEventListener("touchmove",this.touchmove),o.removeEventListener("touchend",this.touchend),o.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){re(),s.window.removeEventListener("mousemove",this.mousemove),s.window.removeEventListener("mouseup",this.mouseup)}mousedown(o){this.down(s.extend({},o,{ctrlKey:!0,preventDefault:()=>o.preventDefault()}),je(this.element,o)),s.window.addEventListener("mousemove",this.mousemove),s.window.addEventListener("mouseup",this.mouseup)}mousemove(o){this.move(o,je(this.element,o))}mouseup(o){this.mouseRotate.mouseupWindow(o),this.mousePitch&&this.mousePitch.mouseupWindow(o),this.offTemp()}touchstart(o){o.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=tt(this.element,o.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>o.preventDefault()},this._startPos))}touchmove(o){o.targetTouches.length!==1?this.reset():(this._lastPos=tt(this.element,o.targetTouches)[0],this.move({preventDefault:()=>o.preventDefault()},this._lastPos))}touchend(o){o.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)d.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(d.minPitch!=null&&d.maxPitch!=null&&d.minPitch>d.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(d.minPitch!=null&&d.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(d.maxPitch!=null&&d.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(d.antialias&&s.isSafariWithAntialiasingBug(s.window)&&(d.antialias=!1,s.warnOnce("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new ia(d.minZoom,d.maxZoom,d.minPitch,d.maxPitch,d.renderWorldCopies),d),this._interactive=d.interactive,this._minTileCacheSize=d.minTileCacheSize,this._maxTileCacheSize=d.maxTileCacheSize,this._failIfMajorPerformanceCaveat=d.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=d.preserveDrawingBuffer,this._antialias=d.antialias,this._useWebGL2=d.useWebGL2,this._trackResize=d.trackResize,this._bearingSnap=d.bearingSnap,this._refreshExpiredTiles=d.refreshExpiredTiles,this._fadeDuration=d.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=d.crossSourceCollisions,this._collectResourceTiming=d.collectResourceTiming,this._optimizeForTerrain=d.optimizeForTerrain,this._language=this._parseLanguage(d.language),this._worldview=d.worldview,this._renderTaskQueue=new kh,this._domRenderTaskQueue=new kh,this._controls=[],this._markers=[],this._popups=[],this._mapId=s.uniqueId(),this._locale=s.extend({},nf,d.locale),this._clickTolerance=d.clickTolerance,this._cooperativeGestures=d.cooperativeGestures,this._performanceMetricsCollection=d.performanceMetricsCollection,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new zh(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._requestManager=new s.RequestManager(d.transformRequest,d.accessToken,d.testMode),this._silenceAuthErrors=!!d.testMode,typeof d.container=="string"){if(this._container=s.window.document.getElementById(d.container),!this._container)throw new Error(`Container '${d.container}' not found.`)}else{if(!(d.container instanceof s.window.HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=d.container}if(this._container.childNodes.length>0&&s.warnOnce("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),d.maxBounds&&this.setMaxBounds(d.maxBounds),s.bindAll(["_onWindowOnline","_onWindowResize","_onVisibilityChange","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),s.window!==void 0&&(s.window.addEventListener("online",this._onWindowOnline,!1),s.window.addEventListener("resize",this._onWindowResize,!1),s.window.addEventListener("orientationchange",this._onWindowResize,!1),s.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1),s.window.addEventListener("visibilitychange",this._onVisibilityChange,!1)),this.handlers=new Gr(this,d),this._localFontFamily=d.localFontFamily,this._localIdeographFontFamily=d.localIdeographFontFamily,d.style&&this.setStyle(d.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),d.projection&&this.setProjection(d.projection),this._hash=d.hash&&new xh(typeof d.hash=="string"&&d.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:d.center,zoom:d.zoom,bearing:d.bearing,pitch:d.pitch}),d.bounds&&(this.resize(),this.fitBounds(d.bounds,s.extend({},d.fitBoundsOptions,{duration:0})))),this.resize(),d.attributionControl&&this.addControl(new ht({customAttribution:d.customAttribution})),this._logoControl=new Mh,this.addControl(this._logoControl,d.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",o=>{this._update(o.dataType==="style"),this.fire(new s.Event(`${o.dataType}data`,o))}),this.on("dataloading",o=>{this.fire(new s.Event(`${o.dataType}dataloading`,o))})}_getMapId(){return this._mapId}addControl(d,o){if(o===void 0&&(o=d.getDefaultPosition?d.getDefaultPosition():"top-right"),!d||!d.onAdd)return this.fire(new s.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const c=d.onAdd(this);this._controls.push(d);const f=this._controlPositions[o];return o.indexOf("bottom")!==-1?f.insertBefore(c,f.firstChild):f.appendChild(c),this}removeControl(d){if(!d||!d.onRemove)return this.fire(new s.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const o=this._controls.indexOf(d);return o>-1&&this._controls.splice(o,1),d.onRemove(this),this}hasControl(d){return this._controls.indexOf(d)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(d){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const o=!this._moving;return o&&this.fire(new s.Event("movestart",d)).fire(new s.Event("move",d)),this.fire(new s.Event("resize",d)),o&&this.fire(new s.Event("moveend",d)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(d){return this.transform.setMaxBounds(s.LngLatBounds.convert(d)),this._update()}setMinZoom(d){if((d=d??-2)>=-2&&d<=this.transform.maxZoom)return this.transform.minZoom=d,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=d,this._update(),this.getZoom()>d?this.setZoom(d):this.fire(new s.Event("zoomstart")).fire(new s.Event("zoom")).fire(new s.Event("zoomend")),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(d){if((d=d??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(d>=0&&d<=this.transform.maxPitch)return this.transform.minPitch=d,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(d>=this.transform.minPitch)return this.transform.maxPitch=d,this._update(),this.getPitch()>d?this.setPitch(d):this.fire(new s.Event("pitchstart")).fire(new s.Event("pitch")).fire(new s.Event("pitchend")),this;throw new Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(d){return this.transform.renderWorldCopies=d,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(d){return d==="auto"?s.window.navigator.language:Array.isArray(d)?d.length===0?void 0:d.map(o=>o==="auto"?s.window.navigator.language:o):d}setLanguage(d){const o=this._parseLanguage(d);if(!this.style||o===this._language)return this;this._language=o,this.style._reloadSources();for(const c of this._controls)c._setLanguage&&c._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(d){return this.style&&d!==this._worldview?(this._worldview=d,this.style._reloadSources(),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return this.transform.projection.name==="globe"}setProjection(d){return this._lazyInitEmptyStyle(),d?typeof d=="string"&&(d={name:d}):d=null,this._useExplicitProjection=!!d,this._prioritizeAndUpdateProjection(d,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){if(this.getProjection().name!=="globe")return;const d=this.transform,o=d.projection.name;let c;o==="globe"&&d.zoom>=s.GLOBE_ZOOM_THRESHOLD_MAX?(d.setMercatorFromTransition(),c=!0):o==="mercator"&&d.zoom=s.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(d),this.style.applyProjectionUpdate(),o){this.painter.clearBackgroundTiles();for(const c in this.style._sourceCaches)this.style._sourceCaches[c].clearTiles();this._update(!0),this._forceMarkerAndPopupUpdate(!0)}return this}project(d){return this.transform.locationPoint3D(s.LngLat.convert(d))}unproject(d){return this.transform.pointLocation3D(s.Point.convert(d))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(d,o,c){if(d==="mouseenter"||d==="mouseover"){let f=!1;const _=E=>{const S=o.filter(z=>this.getLayer(z)),C=S.length?this.queryRenderedFeatures(E.point,{layers:S}):[];C.length?f||(f=!0,c.call(this,new oi(d,this,E.originalEvent,{features:C}))):f=!1},v=()=>{f=!1};return{layers:new Set(o),listener:c,delegates:{mousemove:_,mouseout:v}}}if(d==="mouseleave"||d==="mouseout"){let f=!1;const _=E=>{const S=o.filter(C=>this.getLayer(C));(S.length?this.queryRenderedFeatures(E.point,{layers:S}):[]).length?f=!0:f&&(f=!1,c.call(this,new oi(d,this,E.originalEvent)))},v=E=>{f&&(f=!1,c.call(this,new oi(d,this,E.originalEvent)))};return{layers:new Set(o),listener:c,delegates:{mousemove:_,mouseout:v}}}{const f=_=>{const v=o.filter(S=>this.getLayer(S)),E=v.length?this.queryRenderedFeatures(_.point,{layers:v}):[];E.length&&(_.features=E,c.call(this,_),delete _.features)};return{layers:new Set(o),listener:c,delegates:{[d]:f}}}}on(d,o,c){if(c===void 0)return super.on(d,o);Array.isArray(o)||(o=[o]);const f=this._createDelegatedListener(d,o,c);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[d]=this._delegatedListeners[d]||[],this._delegatedListeners[d].push(f);for(const _ in f.delegates)this.on(_,f.delegates[_]);return this}once(d,o,c){if(c===void 0)return super.once(d,o);Array.isArray(o)||(o=[o]);const f=this._createDelegatedListener(d,o,c);for(const _ in f.delegates)this.once(_,f.delegates[_]);return this}off(d,o,c){if(c===void 0)return super.off(d,o);o=new Set(Array.isArray(o)?o:[o]);const f=(v,E)=>{if(v.size!==E.size)return!1;for(const S of v)if(!E.has(S))return!1;return!0},_=this._delegatedListeners?this._delegatedListeners[d]:void 0;return _&&(v=>{for(let E=0;E{_?this.fire(new s.ErrorEvent(_)):v&&this._updateDiff(v,o)})}else typeof d=="object"&&this._updateDiff(d,o)}_updateDiff(d,o){try{this.style.setState(d)&&this._update(!0)}catch(c){s.warnOnce(`Unable to perform style diff: ${c.message||c.error||c}. Rebuilding the style from scratch.`),this._updateStyle(d,o)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(s.warnOnce("There is no style added to the map."),!1)}addSource(d,o){return this._lazyInitEmptyStyle(),this.style.addSource(d,o),this._update(!0)}isSourceLoaded(d){return!!this.style&&this.style._isSourceCacheLoaded(d)}areTilesLoaded(){const d=this.style&&this.style._sourceCaches;for(const o in d){const c=d[o]._tiles;for(const f in c){const _=c[f];if(_.state!=="loaded"&&_.state!=="errored")return!1}}return!0}addSourceType(d,o,c){this._lazyInitEmptyStyle(),this.style.addSourceType(d,o,c)}removeSource(d){return this.style.removeSource(d),this._updateTerrain(),this._update(!0)}getSource(d){return this.style.getSource(d)}addImage(d,o,{pixelRatio:c=1,sdf:f=!1,stretchX:_,stretchY:v,content:E}={}){if(this._lazyInitEmptyStyle(),o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap){const{width:S,height:C,data:z}=s.exported.getImageData(o);this.style.addImage(d,{data:new s.RGBAImage({width:S,height:C},z),pixelRatio:c,stretchX:_,stretchY:v,content:E,sdf:f,version:0})}else if(o.width===void 0||o.height===void 0)this.fire(new s.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));else{const{width:S,height:C}=o,z=o;this.style.addImage(d,{data:new s.RGBAImage({width:S,height:C},new Uint8Array(z.data)),pixelRatio:c,stretchX:_,stretchY:v,content:E,sdf:f,version:0,userImage:z}),z.onAdd&&z.onAdd(this,d)}}updateImage(d,o){const c=this.style.getImage(d);if(!c)return void this.fire(new s.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const f=o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap?s.exported.getImageData(o):o,{width:_,height:v}=f;_!==void 0&&v!==void 0?_===c.data.width&&v===c.data.height?(c.data.replace(f.data,!(o instanceof s.window.HTMLImageElement||s.window.ImageBitmap&&o instanceof s.window.ImageBitmap)),this.style.updateImage(d,c)):this.fire(new s.ErrorEvent(new Error(`The width and height of the updated image (${_}, ${v}) + must be that same as the previous version of the image + (${c.data.width}, ${c.data.height})`))):this.fire(new s.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")))}hasImage(d){return d?!!this.style.getImage(d):(this.fire(new s.ErrorEvent(new Error("Missing required image id"))),!1)}removeImage(d){this.style.removeImage(d)}loadImage(d,o){s.getImage(this._requestManager.transformRequest(d,s.ResourceType.Image),(c,f)=>{o(c,f instanceof s.window.HTMLImageElement?s.exported.getImageData(f):f)})}listImages(){return this.style.listImages()}addLayer(d,o){return this._lazyInitEmptyStyle(),this.style.addLayer(d,o),this._update(!0)}moveLayer(d,o){return this.style.moveLayer(d,o),this._update(!0)}removeLayer(d){return this.style.removeLayer(d),this._update(!0)}getLayer(d){return this.style.getLayer(d)}setLayerZoomRange(d,o,c){return this.style.setLayerZoomRange(d,o,c),this._update(!0)}setFilter(d,o,c={}){return this.style.setFilter(d,o,c),this._update(!0)}getFilter(d){return this.style.getFilter(d)}setPaintProperty(d,o,c,f={}){return this.style.setPaintProperty(d,o,c,f),this._update(!0)}getPaintProperty(d,o){return this.style.getPaintProperty(d,o)}setLayoutProperty(d,o,c,f={}){return this.style.setLayoutProperty(d,o,c,f),this._update(!0)}getLayoutProperty(d,o){return this.style.getLayoutProperty(d,o)}setLight(d,o={}){return this._lazyInitEmptyStyle(),this.style.setLight(d,o),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(d){return this._lazyInitEmptyStyle(),!d&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(d),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(d){return this._lazyInitEmptyStyle(),this.style.setFog(d),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(d){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(s.LngLat.convert(d),this.transform):0}setFeatureState(d,o){return this.style.setFeatureState(d,o),this._update()}removeFeatureState(d,o){return this.style.removeFeatureState(d,o),this._update()}getFeatureState(d){return this.style.getFeatureState(d)}_updateContainerDimensions(){if(!this._container)return;const d=this._container.getBoundingClientRect().width||400,o=this._container.getBoundingClientRect().height||300;let c,f,_,v=this._container;for(;v&&(!f||!_);){const E=s.window.getComputedStyle(v).transform;E&&E!=="none"&&(c=E.match(/matrix.*\((.+)\)/)[1].split(", "),c[0]&&c[0]!=="0"&&c[0]!=="1"&&(f=c[0]),c[3]&&c[3]!=="0"&&c[3]!=="1"&&(_=c[3])),v=v.parentElement}this._containerWidth=f?Math.abs(d/f):d,this._containerHeight=_?Math.abs(o/_):o}_detectMissingCSS(){s.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&s.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")}_setupContainer(){const d=this._container;d.classList.add("mapboxgl-map"),(this._missingCSSCanary=oe("div","mapboxgl-canary",d)).style.visibility="hidden",this._detectMissingCSS();const o=this._canvasContainer=oe("div","mapboxgl-canvas-container",d);this._interactive&&o.classList.add("mapboxgl-interactive"),this._canvas=oe("canvas","mapboxgl-canvas",o),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const c=this._controlContainer=oe("div","mapboxgl-control-container",d),f=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(_=>{f[_]=oe("div",`mapboxgl-ctrl-${_}`,c)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(d,o){const c=s.exported.devicePixelRatio||1;this._canvas.width=c*Math.ceil(d),this._canvas.height=c*Math.ceil(o),this._canvas.style.width=`${d}px`,this._canvas.style.height=`${o}px`}_addMarker(d){this._markers.push(d)}_removeMarker(d){const o=this._markers.indexOf(d);o!==-1&&this._markers.splice(o,1)}_addPopup(d){this._popups.push(d)}_removePopup(d){const o=this._popups.indexOf(d);o!==-1&&this._popups.splice(o,1)}_setupPainter(){const d=s.extend({},F.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._useWebGL2&&this._canvas.getContext("webgl2",d),c=o||this._canvas.getContext("webgl",d)||this._canvas.getContext("experimental-webgl",d);c?(this._useWebGL2&&!o&&s.warnOnce("Failed to create WebGL 2 context. Using WebGL 1."),s.storeAuthState(c,!0),this.painter=new ta(c,this.transform,!!o),this.on("data",f=>{f.dataType==="source"&&this.painter.setTileLoadedFlag(!0)}),s.exported$1.testSupport(c)):this.fire(new s.ErrorEvent(new Error("Failed to initialize WebGL")))}_contextLost(d){d.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new s.Event("webglcontextlost",{originalEvent:d}))}_contextRestored(d){this._setupPainter(),this.resize(),this._update(),this.fire(new s.Event("webglcontextrestored",{originalEvent:d}))}_onMapScroll(d){if(d.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(d){return this.style?(this._styleDirty=this._styleDirty||d,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(d){return this._update(),this._renderTaskQueue.add(d)}_cancelRenderFrame(d){this._renderTaskQueue.remove(d)}_requestDomTask(d){!this.loaded()||this.loaded()&&!this.isMoving()?d():this._domRenderTaskQueue.add(d)}_render(d){let o;const c=this.painter.context.extTimerQuery,f=s.exported.now();if(this.listens("gpu-timing-frame")&&(o=c.createQueryEXT(),c.beginQueryEXT(c.TIME_ELAPSED_EXT,o)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],s.window.performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],s.window.performance.now())),this._renderTaskQueue.run(d),this._domRenderTaskQueue.run(d),this._removed)return;this._updateProjectionTransition();const _=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const S=this.transform.zoom,C=this.transform.pitch,z=s.exported.now(),P=new s.EvaluationParameters(S,{now:z,fadeDuration:_,pitch:C,transition:this.style.getTransition()});this.style.update(P)}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let v=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),v=this._updateAverageElevation(f),this.style._updateSources(this.transform),this._forceMarkerAndPopupUpdate()):v=this._updateAverageElevation(f),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,_,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:_,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new s.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new s.Event("load"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),o){const S=s.exported.now()-f;c.endQueryEXT(c.TIME_ELAPSED_EXT,o),setTimeout(()=>{const C=c.getQueryObjectEXT(o,c.QUERY_RESULT_EXT)/1e6;c.deleteQueryEXT(o),this.fire(new s.Event("gpu-timing-frame",{cpuTime:S,gpuTime:C})),s.window.performance.mark("frame-gpu",{startTime:f,detail:{gpuTime:C}})},50)}if(this.listens("gpu-timing-layer")){const S=this.painter.collectGpuTimers();setTimeout(()=>{const C=this.painter.queryGpuTimers(S);this.fire(new s.Event("gpu-timing-layer",{layerTimes:C}))},50)}if(this.listens("gpu-timing-deferred-render")){const S=this.painter.collectDeferredRenderGpuQueries();setTimeout(()=>{const C=this.painter.queryGpuTimeDeferredRender(S);this.fire(new s.Event("gpu-timing-deferred-render",{gpuTime:C}))},50)}const E=this._sourcesDirty||this._styleDirty||this._placementDirty||v;if(E||this._repaint)this.triggerRepaint();else{const S=!this.isMoving()&&this.loaded();if(S&&(v=this._updateAverageElevation(f,!0)),v)this.triggerRepaint();else if(this._triggerFrame(!1),S&&(this.fire(new s.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const C=this._calculateSpeedIndex();this.fire(new s.Event("speedindexcompleted",{speedIndex:C})),this.speedIndexTiming=!1}}!this._loaded||this._fullyLoaded||E||(this._fullyLoaded=!0,s.LivePerformanceUtils.mark(s.PerformanceMarkers.fullLoad),this._performanceMetricsCollection&&s.postPerformanceEvent(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate())}_forceMarkerAndPopupUpdate(d){for(const o of this._markers)d&&!this.getRenderWorldCopies()&&(o._lngLat=o._lngLat.wrap()),o._update();for(const o of this._popups)!d||this.getRenderWorldCopies()||o._trackPointer||(o._lngLat=o._lngLat.wrap()),o._update()}_updateAverageElevation(d,o=!1){const c=f=>(this.transform.averageElevation=f,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return this.transform.averageElevation!==0&&c(0);if((o||d-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(d)){const f=this.transform.averageElevation;let _=this.transform.sampleAverageElevation(),v=!1;this.transform.elevation&&(v=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(_)?_=0:this._averageElevationLastSampledAt=d;const E=Math.abs(f-_);if(E>1){if(this._isInitialLoad||v)return this._averageElevation.jumpTo(_),c(_);this._averageElevation.easeTo(_,d,300)}else if(E>1e-4)return this._averageElevation.jumpTo(_),c(_)}return!!this._averageElevation.isEasing(d)&&c(this._averageElevation.getValue(d))}_authenticate(){s.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,d=>{if(d&&(d.message===s.AUTH_ERR_MSG||d.status===401)){const o=this.painter.context.gl;s.storeAuthState(o,!1),this._logoControl instanceof Mh&&this._logoControl._updateLogo(),o&&o.clear(o.DEPTH_BUFFER_BIT|o.COLOR_BUFFER_BIT|o.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new s.ErrorEvent(new Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")))}}),s.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_updateTerrain(){const d=this._isDragging();this.painter.updateTerrain(this.style,d)}_calculateSpeedIndex(){const d=this.painter.canvasCopy(),o=this.painter.getCanvasCopiesAndTimestamps();o.timeStamps.push(performance.now());const c=this.painter.context.gl,f=c.createFramebuffer();function _(v){c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_2D,v,0);const E=new Uint8Array(c.drawingBufferWidth*c.drawingBufferHeight*4);return c.readPixels(0,0,c.drawingBufferWidth,c.drawingBufferHeight,c.RGBA,c.UNSIGNED_BYTE,E),E}return c.bindFramebuffer(c.FRAMEBUFFER,f),this._canvasPixelComparison(_(d),o.canvasCopies.map(_),o.timeStamps)}_canvasPixelComparison(d,o,c){let f=c[1]-c[0];const _=d.length/4;for(let v=0;v{const c=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,c&&this._render(o)}))}_preloadTiles(d){const o=this.style?Object.values(this.style._sourceCaches):[];return s.asyncAll(o,(c,f)=>c._preloadTiles(d,f),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(d){this._trackResize&&this.resize({originalEvent:d})._update()}_onVisibilityChange(){s.window.document.visibilityState==="hidden"&&this._visibilityHidden++}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(d){this._showTileBoundaries!==d&&(this._showTileBoundaries=d,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(d){this._showTerrainWireframe!==d&&(this._showTerrainWireframe=d,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(d){this._speedIndexTiming!==d&&(this._speedIndexTiming=d,this._update())}get showPadding(){return!!this._showPadding}set showPadding(d){this._showPadding!==d&&(this._showPadding=d,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(d){this._showCollisionBoxes!==d&&(this._showCollisionBoxes=d,d?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(d){this._showOverdrawInspector!==d&&(this._showOverdrawInspector=d,this._update())}get repaint(){return!!this._repaint}set repaint(d){this._repaint!==d&&(this._repaint=d,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(d){this._vertices=d,this._update()}get showTileAABBs(){return!!this._showTileAABBs}set showTileAABBs(d){this._showTileAABBs!==d&&(this._showTileAABBs=d,d&&this._update())}_setCacheLimits(d,o){s.setCacheLimits(d,o)}get version(){return s.version}},NavigationControl:class{constructor(d){this.options=s.extend({},r_,d),this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",o=>o.preventDefault()),this.options.showZoom&&(s.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",o=>{this._map&&this._map.zoomIn({},{originalEvent:o})}),oe("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",o=>{this._map&&this._map.zoomOut({},{originalEvent:o})}),oe("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(s.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",o=>{const c=this._map;c&&(this.options.visualizePitch?c.resetNorthPitch({},{originalEvent:o}):c.resetNorth({},{originalEvent:o}))}),this._compassIcon=oe("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}_updateZoomButtons(){const d=this._map;if(!d)return;const o=d.getZoom(),c=o===d.getMaxZoom(),f=o===d.getMinZoom();this._zoomInButton.disabled=c,this._zoomOutButton.disabled=f,this._zoomInButton.setAttribute("aria-disabled",c.toString()),this._zoomOutButton.setAttribute("aria-disabled",f.toString())}_rotateCompassArrow(){const d=this._map;if(!d)return;const o=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(d.transform.pitch*(Math.PI/180)),.5)}) rotateX(${d.transform.pitch}deg) rotateZ(${d.transform.angle*(180/Math.PI)}deg)`:`rotate(${d.transform.angle*(180/Math.PI)}deg)`;d._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=o)})}onAdd(d){return this._map=d,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),d.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&d.on("pitch",this._rotateCompassArrow),d.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new o_(d,this._compass,this.options.visualizePitch)),this._container}onRemove(){const d=this._map;d&&(this._container.remove(),this.options.showZoom&&d.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&d.off("pitch",this._rotateCompassArrow),d.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0)}_createButton(d,o){const c=oe("button",d,this._container);return c.type="button",c.addEventListener("click",o),c}_setButtonTitle(d,o){if(!this._map)return;const c=this._map._getUIString(`NavigationControl.${o}`);d.setAttribute("aria-label",c),d.firstElementChild&&d.firstElementChild.setAttribute("title",c)}},GeolocateControl:class extends s.Evented{constructor(d){super(),this.options=s.extend({geolocation:s.window.navigator.geolocation},Lh,d),s.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=ra(this._updateMarkerRotation,20),this._numberOfWatches=0}onAdd(d){return this._map=d,this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){this._geolocationWatchID!==void 0&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1}_checkGeolocationSupport(d){const o=(c=!!this.options.geolocation)=>{this._supportsGeolocation=c,d(c)};this._supportsGeolocation!==void 0?d(this._supportsGeolocation):s.window.navigator.permissions!==void 0?s.window.navigator.permissions.query({name:"geolocation"}).then(c=>o(c.state!=="denied")).catch(()=>o()):o()}_isOutOfMapMaxBounds(d){const o=this._map.getMaxBounds(),c=d.coords;return!!o&&(c.longitudeo.getEast()||c.latitudeo.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}}_onSuccess(d){if(this._map){if(this._isOutOfMapMaxBounds(d))return this._setErrorState(),this.fire(new s.Event("outofmaxbounds",d)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=d,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(d),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(d),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new s.Event("geolocate",d)),this._finish()}}_updateCamera(d){const o=new s.LngLat(d.coords.longitude,d.coords.latitude),c=d.coords.accuracy,f=this._map.getBearing(),_=s.extend({bearing:f},this.options.fitBoundsOptions);this._map.fitBounds(o.toBounds(c),_,{geolocateSource:!0})}_updateMarker(d){if(d){const o=new s.LngLat(d.coords.longitude,d.coords.latitude);this._accuracyCircleMarker.setLngLat(o).addTo(this._map),this._userLocationDotMarker.setLngLat(o).addTo(this._map),this._accuracy=d.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){const d=this._map.transform,o=s.mercatorZfromAltitude(1,d._center.lat)*d.worldSize,c=Math.ceil(2*this._accuracy*o);this._circleElement.style.width=`${c}px`,this._circleElement.style.height=`${c}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&typeof this._heading=="number"?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(d){if(this._map){if(this.options.trackUserLocation)if(d.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const o=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(d.code===3&&this._noTimeout)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new s.Event("error",d)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(d){if(this._map!==void 0){if(this._container.addEventListener("contextmenu",o=>o.preventDefault()),this._geolocateButton=oe("button","mapboxgl-ctrl-geolocate",this._container),oe("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",d===!1){s.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const o=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}else{const o=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=oe("div","mapboxgl-user-location"),this._dotElement.appendChild(oe("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(oe("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new st({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=oe("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new st({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",o=>{o.geolocateSource||this._watchState!=="ACTIVE_LOCK"||o.originalEvent&&o.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new s.Event("trackuserlocationend")))})}}_onDeviceOrientation(d){this._userLocationDotMarker&&(d.webkitCompassHeading?this._heading=d.webkitCompassHeading:d.absolute===!0&&(this._heading=-1*d.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return s.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new s.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new s.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let d;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(d={maximumAge:6e5,timeout:0},this._noTimeout=!0):(d=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,d),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){const d=()=>{s.window.addEventListener("ondeviceorientationabsolute"in s.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientation)};s.window.DeviceMotionEvent!==void 0&&typeof s.window.DeviceMotionEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(o=>{o==="granted"&&d()}).catch(console.error):d()}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),s.window.removeEventListener("deviceorientation",this._onDeviceOrientation),s.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},AttributionControl:ht,ScaleControl:class{constructor(d){this.options=s.extend({},Rh,d),this._isNumberFormatSupported=function(){try{return new Intl.NumberFormat("en",{style:"unit",unitDisplay:"short",unit:"meter"}),!0}catch{return!1}}(),s.bindAll(["_update","_setScale","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_update(){const d=this.options.maxWidth||100,o=this._map,c=o._containerHeight/2,f=o._containerWidth/2-d/2,_=o.unproject([f,c]),v=o.unproject([f+d,c]),E=_.distanceTo(v);if(this.options.unit==="imperial"){const S=3.2808*E;S>5280?this._setScale(d,S/5280,"mile"):this._setScale(d,S,"foot")}else this.options.unit==="nautical"?this._setScale(d,E/1852,"nautical-mile"):E>=1e3?this._setScale(d,E/1e3,"kilometer"):this._setScale(d,E,"meter")}_setScale(d,o,c){this._map._requestDomTask(()=>{const f=function(v){const E=Math.pow(10,`${Math.floor(v)}`.length-1);let S=v/E;return S=S>=10?10:S>=5?5:S>=3?3:S>=2?2:S>=1?1:function(C){const z=Math.pow(10,Math.ceil(-Math.log(C)/Math.LN10));return Math.round(C*z)/z}(S),E*S}(o),_=f/o;this._container.innerHTML=this._isNumberFormatSupported&&c!=="nautical-mile"?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"short",unit:c}).format(f):`${f} ${Dh[c]}`,this._container.style.width=d*_+"px"})}onAdd(d){return this._map=d,this._language=d.getLanguage(),this._container=oe("div","mapboxgl-ctrl mapboxgl-ctrl-scale",d.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0}_setLanguage(d){this._language=d,this._update()}setUnit(d){this.options.unit=d,this._update()}},FullscreenControl:class{constructor(d){this._fullscreen=!1,d&&d.container&&(d.container instanceof s.window.HTMLElement?this._container=d.container:s.warnOnce("Full screen control 'container' must be a DOM element.")),s.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in s.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in s.window.document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(d){return this._map=d,this._container||(this._container=this._map.getContainer()),this._controlContainer=oe("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",s.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,s.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!s.window.document.fullscreenEnabled&&!s.window.document.webkitFullscreenEnabled)}_setupUI(){const d=this._fullscreenButton=oe("button","mapboxgl-ctrl-fullscreen",this._controlContainer);oe("span","mapboxgl-ctrl-icon",d).setAttribute("aria-hidden","true"),d.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),s.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){const d=this._getTitle();this._fullscreenButton.setAttribute("aria-label",d),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",d)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(s.window.document.fullscreenElement||s.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())}_onClickFullscreen(){this._isFullscreen()?s.window.document.exitFullscreen?s.window.document.exitFullscreen():s.window.document.webkitCancelFullScreen&&s.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends s.Evented{constructor(d){super(),this.options=s.extend(Object.create(Ph),d),s.bindAll(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(d&&d.className?d.className.trim().split(/\s+/):[])}addTo(d){return this._map&&this.remove(),this._map=d,this.options.closeOnClick&&d.on("preclick",this._onClose),this.options.closeOnMove&&d.on("move",this._onClose),d.on("remove",this.remove),this._update(),d._addPopup(this),this._focusFirstElement(),this._trackPointer?(d.on("mousemove",this._onMouseEvent),d.on("mouseup",this._onMouseEvent),d._canvasContainer.classList.add("mapboxgl-track-pointer")):d.on("move",this._update),this.fire(new s.Event("open")),this}isOpen(){return!!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const d=this._map;return d&&(d.off("move",this._update),d.off("move",this._onClose),d.off("preclick",this._onClose),d.off("click",this._onClose),d.off("remove",this.remove),d.off("mousemove",this._onMouseEvent),d.off("mouseup",this._onMouseEvent),d.off("drag",this._onMouseEvent),d._canvasContainer&&d._canvasContainer.classList.remove("mapboxgl-track-pointer"),d._removePopup(this),this._map=void 0),this.fire(new s.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(d){this._lngLat=s.LngLat.convert(d),this._pos=null,this._trackPointer=!1,this._update();const o=this._map;return o&&(o.on("move",this._update),o.off("mousemove",this._onMouseEvent),o._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const d=this._map;return d&&(d.off("move",this._update),d.on("mousemove",this._onMouseEvent),d.on("drag",this._onMouseEvent),d._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(d){return this.setDOMContent(s.window.document.createTextNode(d))}setHTML(d){const o=s.window.document.createDocumentFragment(),c=s.window.document.createElement("body");let f;for(c.innerHTML=d;f=c.firstChild,f;)o.appendChild(f);return this.setDOMContent(o)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(d){return this.options.maxWidth=d,this._update(),this}setDOMContent(d){let o=this._content;if(o)for(;o.hasChildNodes();)o.firstChild&&o.removeChild(o.firstChild);else o=this._content=oe("div","mapboxgl-popup-content",this._container||void 0);if(o.appendChild(d),this.options.closeButton){const c=this._closeButton=oe("button","mapboxgl-popup-close-button",o);c.type="button",c.setAttribute("aria-label","Close popup"),c.setAttribute("aria-hidden","true"),c.innerHTML="×",c.addEventListener("click",this._onClose)}return this._update(),this._focusFirstElement(),this}addClassName(d){return this._classList.add(d),this._updateClassList(),this}removeClassName(d){return this._classList.delete(d),this._updateClassList(),this}setOffset(d){return this.options.offset=d,this._update(),this}toggleClassName(d){let o;return this._classList.delete(d)?o=!1:(this._classList.add(d),o=!0),this._updateClassList(),o}_onMouseEvent(d){this._update(d.point)}_getAnchor(d){if(this.options.anchor)return this.options.anchor;const o=this._map,c=this._container,f=this._pos;if(!o||!c||!f)return"bottom";const _=c.offsetWidth,v=c.offsetHeight,E=f.x<_/2,S=f.x>o.transform.width-_/2;if(f.y+do.transform.height-v){if(E)return"bottom-left";if(S)return"bottom-right"}return E?"left":S?"right":"bottom"}_updateClassList(){const d=this._container;if(!d)return;const o=[...this._classList];o.push("mapboxgl-popup"),this._anchor&&o.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&o.push("mapboxgl-popup-track-pointer"),d.className=o.join(" ")}_update(d){const o=this._map,c=this._content;if(!o||!this._lngLat&&!this._trackPointer||!c)return;let f=this._container;if(f||(f=this._container=oe("div","mapboxgl-popup",o.getContainer()),this._tip=oe("div","mapboxgl-popup-tip",f),f.appendChild(c)),this.options.maxWidth&&f.style.maxWidth!==this.options.maxWidth&&(f.style.maxWidth=this.options.maxWidth),o.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=aa(this._lngLat,this._pos,o.transform)),!this._trackPointer||d){const _=this._pos=this._trackPointer&&d?d:o.project(this._lngLat),v=tf(this.options.offset),E=this._anchor=this._getAnchor(v.y),S=tf(this.options.offset,E),C=_.add(S).round();o._requestDomTask(()=>{this._container&&E&&(this._container.style.transform=`${_s[E]} translate(${C.x}px,${C.y}px)`)})}if(!this._marker&&o._showingGlobe()){const _=s.isLngLatBehindGlobe(o.transform,this._lngLat)?0:1;this._setOpacity(_)}this._updateClassList()}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const d=this._container.querySelector(i_);d&&d.focus()}_onClose(){this.remove()}_setOpacity(d){this._container&&(this._container.style.opacity=`${d}`),this._content&&(this._content.style.pointerEvents=d?"auto":"none")}},Marker:st,Style:jr,LngLat:s.LngLat,LngLatBounds:s.LngLatBounds,Point:s.Point,MercatorCoordinate:s.MercatorCoordinate,FreeCameraOptions:Up,Evented:s.Evented,config:s.config,prewarm:function(){$s().acquire(Fr)},clearPrewarmedResources:function(){const d=Ci;d&&(d.isPreloaded()&&d.numActive()===1?(d.release(Fr),Ci=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return s.config.ACCESS_TOKEN},set accessToken(d){s.config.ACCESS_TOKEN=d},get baseApiUrl(){return s.config.API_URL},set baseApiUrl(d){s.config.API_URL=d},get workerCount(){return ii.workerCount},set workerCount(d){ii.workerCount=d},get maxParallelImageRequests(){return s.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(d){s.config.MAX_PARALLEL_IMAGE_REQUESTS=d},clearStorage(d){s.clearTileCache(d)},workerUrl:"",workerClass:null,setNow:s.exported.setNow,restoreNow:s.exported.restoreNow};return la});var T=g;return T})})(KA);var wx=KA.exports;const b4=sv(wx),E4=AM({__proto__:null,default:b4},[wx]);const e0="pk.eyJ1IjoicnVyYWxpbm5vIiwiYSI6ImNqeHl0cW0xODBlMm0zY2x0dXltYzRuazUifQ.zZBovoCHzLIW0wCZveEKzA",p2="/examples/cori.data.rin/rin_service_areas.geojson";function T4(){var x;const t=ft.useContext(_A),i=ft.useRef(null),l=ft.useMemo(()=>(T,s,M,F)=>{console.log("Set popup: ",i.current);const q=new wx.Popup;return F.hasOwnProperty(M)?(q.setLngLat([T,s]),q.setText(F[M])):q.setText("Hello world!"),q},[]);let h=!1;function g(T,s,M,F,q,X,oe){return ft.createElement(yA,{ref:T,longitude:s,latitude:M,color:F,popup:q(s,M,X,oe),key:oe[X]+"-marker"})}return ft.useEffect(()=>{if(t&&!t.data.hasOwnProperty("placeData")&&!h){console.log("Initial place data fetch..."),console.log(p2),h=!0;const T=window.document.getElementById("info-wrapper");T!==null&&(T.style.opacity="1.0",T.style.position="absolute",T.style.background=`rgba(46, 60, 67, 0.5) url('${t.baseURL}/images/loading.gif') no-repeat fixed center`,T.style.backgroundSize="20px"),t.setData({...(t==null?void 0:t.data)||{},placeData:null}),t==null||t.apiClient.get(p2).then(s=>{s&&s.hasOwnProperty("data")&&(console.log("Data result:",s.data.features),t.setData({...t.data,placeData:s.data.features}),h=!1,T!==null&&(T.style.opacity="0.0",T.style.pointerEvents="none",setTimeout(()=>{T.style.background="transparent"},533)))}).catch(s=>{console.error("Error fetching data:",s),h=!1,T!==null&&(T.style.opacity="0.0",T.style.pointerEvents="none",setTimeout(()=>{T.style.background="transparent"},533))})}},[t==null?void 0:t.data]),ft.createElement(ft.Fragment,null,ft.createElement("div",{style:{position:"absolute",margin:"1em",zIndex:2}},ft.createElement("h3",null,"Amplify / React Frontend application template")),ft.createElement("div",{className:"slippy-map"},ft.createElement(Z3,{mapboxAccessToken:e0,initialViewState:{latitude:40,longitude:-100,pitch:45,zoom:3.5},style:{width:600,height:400},mapStyle:`https://api.mapbox.com/styles/v1/ruralinno/cl010e7b7001p15pe3l0306hv?access_token=${e0}`},!!(t!=null&&t.data)&&!!((x=t==null?void 0:t.data)!=null&&x.placeData)&&t.data.placeData.length>0&&!!i&&typeof i!==void 0&&t.data.placeData.map(T=>{console.log(T);const s=typeof T.geometry.coordinates[0]=="number"?T.geometry.coordinates[0]:0,M=typeof T.geometry.coordinates[1]=="number"?T.geometry.coordinates[1]:0;return g(i,s,M,"#247dc9",l,"rin_community",T.properties)}),ft.createElement(i4,{mapboxAccessToken:e0,position:"top-right"}),ft.createElement(H3,{position:"top-right"}),ft.createElement(W3,{position:"top-right"}),ft.createElement(X3,{position:"bottom-left",unit:"imperial"}))),ft.createElement("div",{id:"info-wrapper",style:{pointerEvents:"none",position:"absolute",top:0,minWidth:"100vw",minHeight:"100vh",transition:"opacity 5.05s ease-in-out 0.025s",opacity:"initial",background:"transparent",backgroundSize:"20px",zIndex:100}}))}const S4="https://cori-risi-apps.s3.amazonaws.com";function A4(t){TS(t).render(ft.createElement(ft.StrictMode,null,ft.createElement(m3,{baseURL:S4},ft.createElement(T4,null))))}A4(document.getElementById("app")); diff --git a/frontend b/frontend index 66f79b3..659127c 160000 --- a/frontend +++ b/frontend @@ -1 +1 @@ -Subproject commit 66f79b3459f69ebcccf67bc5bb3954b5389a2dd6 +Subproject commit 659127cf6a152bc33c48e5d83da96f673d2e5493

!B~ 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�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